Annons

Modellbaserad utveckling av avancerade motorstyrsystem

Tack vare modellbaserad utveckling, med MATLAB och Simulink, kan konstruktörer optimera motorstyrsystemens funktioner och minimera den totala utvecklingstiden. Genom att återanvända simuleringsmodeller kan de dessutom säkerställa korrekta funktioner och önskade prestanda i ett systems  slutmarknadstillämpning. Anders Frederiksen, Analog Devices ber här en bakgrund till hur motorstyrsystem konstrueras idag.

MBD (Model-Based Design) har varit ett diskussionsämne i decennier men har först under de senaste åren utvecklats till ett komplett utvecklingsflöde – från modellskapande till full-ständig implementation.
Under 70-talet var analoga platt-formar tillgängliga för simulering men implementationen av styrmaskinvaran skedde på transistornivå.
Framstegen inom simuleringsverktyg fram till 2000-talet innefattade lanseringen av grafiska verktyg för inmatning av styrdiagram och verktyg för styrfunktionsutveckling som avsevärt förenklat utvecklingen och utvärderingen av komplexa styrfunktioner.
Men styrsystemsutvecklare fortsatte att utveckla maskinvarustyralgoritmen genom att skriva C-kod som speglade den simulerade konstruktionen.
Nu, i början av detta årtionde, ger en komplett MBD en gemensam styrutveckling för simulerings- och maskinvaruimplementationsplattformar så komplexa styralgoritmer snabbt kan tas i drift på maskinvaruplattformar.

Fig 1. Historisk utveckling av konstruktionsmetoder.

Bygger på systemmodell

MBD är en process som använder en systemmodell som en körbar specifikation under hela utvecklingen. Denna simuleringsbaserade metod ger dig en bättre förståelse av designalternativ och kompromisser än traditionella maskinvaruprototypbaserade utvecklingsmetoder, så att du kan optimera din konstruktion till fördefinierade prestandakriterier.
Snarare än att använda komplexa strukturer och omfattande programkod, kan utvecklare definiera modeller med avancerade funktionella egenskaper med byggblock för kontinuerlig tid och diskret tid. Befintlig C-kod kan integreras med standardbiblioteks styrblock för att maximera konstruktionseffektiviteten. Dessa modeller, använda med simuleringsverktyg, kan leda till snabb framtagning av prototyper, programvarutest och HIL-simulering (Hardware-in-the-loop). Med hjälp av simulering kan man hitta avvikelser och modelleringsfel direkt, istället för senare i utvecklingscykeln. Automatisk kod-generering eliminerar de manuella stegen i implementeringen av samma algoritm som ska köras på maskinvaruplattformen. Detta förenklar utvecklings och minimerar fel i maskinvaruutvecklingens implementation och minskar den totala tiden till marknaden.
Det finns flera steg inom MBD som tillåter optimering av enskilda uppgifter i den övergripande utvecklingen. Dessa uppgifter kan utföras av olika utvecklingsingenjörer eller -grupper och sedan kombineras till den övergripande konstruktionen och det kompletta systemet.

Fig 2. Konceptet modellbaserad konstruktion.

Med denna metod kan en högre grad av abstraktion av de individuella uppgifterna tillämpas. Det resulterar i ett övergripande utvecklingsflöde som är optimerat för den givna sluttillämpningen. Kort sagt kan utvecklare med hjälp av MBD expandera från mer klassisk konstruktionsmetodik och gå direkt från modellskapande till simulering, kodgenerering och HIL-test, på ett kontrollerat sätt som gör inkrementella förändringar i systemet beteende möjliga utan att systemet måste göras om totalt.

Fig 3. Här visas koncept för implementering av modellbaserad konstruktion.

I fig 3 visas de olika utvecklingsfaserna och omfattningen av enskilda steg i flödet. Dessa steg beskriver tillsammans "standardflödet" för MBD. Från ett motorstyrdesignsperspektiv är de:
* Konceptet med drift. Allmänna funktioner i motorsystemet.
* Anläggningsmodellering/arkitektur. Utveckling av motormodeller, belastning, kraftelektronik, signalbehandling etc.
* Styrenhetsmodellering och krav. Kodarbaserad fältorienterad styrning av 3-fas PM-motor.
* Analys och syntes – detaljerad konstruktion. Modeller skapade ovan används för att identifiera dynamiska egenskaper av anläggningsmodellen. Finjustering och konfiguration av systemet.
* Validering och test. Offlinesimulering och/eller realtidssimulering. Utredning av tidsrespons av det dynamiska systemet.
* Installation på inbäddat mål – Full drift. Automatisk kodgenerering. Test och verifiering. Uppdatering av styrenhetsmodell.
Tillsammans utgör detta en flerstegs metod för inpassning av den allmänna designen och gör så att individuella styrsteg kan analyseras separat. När maskin- och programvaruspecifikationen har slutförts, kan den kompletta systemarkitekturen konfigureras för installation av såväl specifika algoritmer och funktioner för systemet som helhet. Se fig 4.

Fig 4. MBD-konfiguration.

Simulering av styrenhet och anläggningsmodeller kan utvärderas. Offlineutveckling av algoritmer utan tillgång till maskinvara kan utformas och finjusteras för att möta övergripande systemprestandakrav. Initial kodgenerering, antingen med "återanvändnings" av befintlig kod eller med kod genererad av ett kodgenereringsverktyg, kan installeras på den inbyggda styrenheten för att jämföra systemsimuleringen på en PC med de faktiska implementerade data på en maskinvarumål. En utvecklare måste ta hänsyn till komplexiteten av modellen när han eller hon definierar en korrekt balanserad struktur för MBD.
När ett balanserat koncept realiseras är det däremot möjligt att snabbt ändra oberoende modeller inom konstruktionen och uppnå mer exakta resultat från hela drivsystemet.
Den experimentella konfigurationen som används som bakgrund för denna rapport bygger på en ARM Cortex M4 styrkrets i blandsignalteknik från Analog Devices som används med en kombination av verktyg från IAR och Mathworks, för att uppnå en fullständig implementation av MBD-plattformen.
Varje steg som beskrivs ovan har en direkt länk till de tillgängliga verktygen och den övergripande implementationen. Som kan ses i bild 5, erbjuder varje verktygskedja olika värden. I MBD, måste utvecklaren välja hur man ska balansera mellan användningen av dessa verktygskedjor med avseende på det övergripande värde som den oberoende MBD-plattformen skapar.

Fig 5. Mathworks & IAR-systemets styrka.

För målplattformen är ny en realtidsutvecklingsmiljö på plats för att modellera, simulera, utvärdera, installera och optimera systemets totala prestanda och kapacitet. Allt detta bygger på MBD och det balanserade urvalet av systemparametrar, vilket resulterar i en klassbästa flexibilitet där specifik optimering behövs. På detta sätt har en skalbar modell realiserats av ett system som underlättar användning och återanvändning av kod, antingen baserat på befintlig äldre kod
eller funktioner, eller helt nya byggblock baserade på standard C- eller grafiska funktioner (Simulink/MATLAB-modeller i linje med den kompletta simuleringen och utvecklingsfasen). Det är inte bara från programvaru-perspektiv möjligt att ändra den övergripande konfigurationen, utan så snart rätt enhetsdrivrutiner för ett system utvecklats kan en utvecklare ändra systemets resurser, maskinvaru-elementen och övergripande programvara för sluttillämpningen eller systemet. Genom att man kan styra realtidsaspekterna av systemtimingen som helhet blir det dessutom möjligt att optimera systemets schemaläggning direkt via denna miljö.

Fig 6. Installationsmiljö.

Genom att ta en djupare titt på den klassiska bilden av ett drivsystem kan man nu visualisera kapaciteten hos denna arkitektur. Det är möjligt att optimera varje element i "drivningen" och fokusera arbetet på det element som är mest kritiskt för det slutliga systemet. Det innebär att, om till exempel skyddsfunktioner och skalning är av central betydelse, kan fokus läggas på det mekaniska systemet i kombination med den elektriska styrningen och strömsystemet.

Fig 7. Skiss över ”drivsystemet”.

En blandning av simulerade resultat och realtidsdata kan användas för att övervaka systemets beteende, vilket tillsammans bildar en "levande" optimering. Å andra sidan, om störande brus försämrar systemets totala effektivet, kan mätningar av dessa användas i skalbara filter och övervakare som i ett optimalt läge minimerar problem med brus i maskinvaran. När alla faktorer har modellerats och samlats ihop kan det sista steget i installationsfasen inledas och en fullständig implementeringsfas på målsystemet är en realitet.
Genom hela MBD-designflödet och via Mathworks och IAR, är det nu möjligt att implementera en övergripande modell och kompilera kod. Varje steg eller element i modellen av "drivsystemet" representeras nu av en MATLAB- och Simulink-modell som är skalad till rätt nivå för optimala designkriterier. Varje element i modellen baseras på standardverktygslådor och blockuppsättningar från Mathworks och kan återanvändas på alla element i en viss design. Dessa element representerar också de olika områdena i drivsystemet och kan finjusteras helt för att minimera felet modell-kontra-installation.

Fig 8. Implementering och kompilering.

Genom realtidsinstallationsmetoder och kompilering i denna blandade miljö, är det också möjligt att kombinera befintlig C-kod skriven för hand med ARM Cortex M4-optimerad C-kod genererad av Embedded Coder, verktyget för generering av produktionskod för MATLAB och Simulink. Hela denna process gör det möjligt för användare att återanvända befintlig kunskap om motorstyrningsdesign på rätt nivå.
Vid denna tidpunkt kan IAR Embedded Work Bench ta den genererade koden och kompilera hela projektet för ARM Cortex M4, som stänger MBD-implementeringsfasen för detta system.

Ifrågasatt

Sedan dess början har MBD ifrågasatts med avseende på sin kapacitet och sina funktioner jämfört med traditionell systemutveckling och på sitt utnyttjande av systemets totala resurser. Det är här starka insatser från komponentleverantörer, simulerings- och installationsleverantörer och verktygskompilatorleverantörer har "slagits ihop" och resultaten idag är jämförbara med traditionella installationsmetoder. Självklart kan all kodutveckling skriven för ett realtidssystem skapas på ett ineffektivt sätt, beroende på vilken implementeringsmetod som används.
Med MBD kan profilering, tväroptimeringsalternativ och starka fördelar inom säkerhetskritisk systemutveckling kombineras så att kodutvecklingskostnaderna minimeras och högsta prestanda uppnås. MathWorks erbjuder verktygskvalificering för användning av Embedded Coder med IEC 61508, ISO 26262 och relaterade funktionella säkerhetsnormer.
Denna blandning av egenskaper är mycket svårare att uppnå i ett vanligt konstruktionsflöde.
I exemplet ovan implementeras en vanlig FOC-modell på Analog Devices ADSP-CM40x-serien. I denna modell, utförs läges- och strömloopsåterkoppling på 15 µs, vilket stöder realtidsprofilering av både strömschemat och felsökningsegenskaperna. Det ger och spårningsfunktioner för det totala FOC-schemat. Både MBD-simuleringsresultat och realtidsdata kan nu utvärderas och jämföras med en ideal systemfunktionalitet i förhållande till målspecifikationen. Detta ger i slutändan utvecklaren möjlighet att ständigt förbättra systemets effektivitet, funktion och prestanda och att utvärdera hur ett visst element eller komponent i signalkedjan presterar mot specifikationen.

Ett nytt sätt
Denna rapport har beskrivit ett "nytt" sätt att utforma ett motorstyrsystem med användning av MBD. Dagens inbäddade processorer måste ha en balans mellan prestanda, pris och storlek för att möjliggöra utveckling och abstraktioner på högre nivå av grafiska verktyg, som utgör grunden för starkt optimerade system för att möta krav på tid till marknad, säkerhet, prestanda och skalbarhet. För mer information om dessa frågor och Analog Devices möjligheter, gå till motorcontrol.analog.com


Fig 9. Simulering och körtidsdata från ett MBD-byggt system (processordata kontra simulering).

 

Comments are closed.