Programmerbar SoC för intelligenta bilar
Steget från en simulerad motormodell till en färdig implementering kan förenklas med hjälp av programmerbara SoC-kretsar, t ex Zynq från Xilinx. Giulio Corradi och Tom Hill från Xilinx beskriver här ett komplett modellbaserat konstruktionsflöde.
Modellbaserade motorkontroller är vanliga metoder inom industriutveckling för att testa styrenheter mot en simulerad motormodell för att undvika dyra prototyper och samtidigt testa gränsfallstillstånd. Sådana metoder har även fördelen att de minskar risken för skada på den riktiga motorn.
Mappa till arkitektur
När du har validerat modellen och dess simulerade system måste du mappa den i en lämplig arkitektur. Designverktygen Matlab/Simulink från MathWorks har ett arbetsflöde för utveckling och distribution av algoritmer för motorkontroll. Dagens sofistikerade elbilar kräver både kontrollalgoritmer och industrinätverk som EtherCAT, Profinet, Powerlink eller SercosIII som absorberar viktiga processorresurser. Dessutom uppstår andra krav för elbilar, som rörelsekontrollnivåer, PLC-nivåer, diagnostiknivåer, användargränssnitt för provision och underhåll eller fjärrövervakning.
Sådana krav översätts till en logisk och fysisk partition mellan element som passar naturligt i informationssystem och element som passar bäst i maskinvaruassisterad avlastning och acceleration. Därför är det även viktigt att identifiera de rätta gränssnitten mellan de olika partitionerna med en metodik som skapar konsekvens mellan simuleringsfasen och utförandefasen.
När du har skapat en modell av systemet och förstår och har simulerat gränsfallstillstånd kan du distribuera det till en prototyp eller förserie. Helst skall konsekvensen också tillåta finjusteringar och upprepningar för att kalibrera modellen enligt resultaten som samlas in under prototyp- eller förseriefasen. Traditionella informationssystem har inte flexibiliteten som behövs för att implementera maskinvaruassisterad partitionering.
Fig 1. Plattform för elbilar
(klicka för större bild)
Plattformen skall även tillgodose alla sådana krav i ett stabilt och skalbart system. Xilinx Zynq-7000-enheten uppfyller alla dessa krav med ett högpresterande informationssystem som hanterar nätverk, rörelse, mjukvaru-PLC, diagnostik och fjärrunderhållning och programmerbar logik som kan fungera som en anpassad accelerator och avlastningsmotor.
Zynq-7000 har Dual Core ARM Cortex A9:or med NEON och vektorflyttal, programmerbar logik med massiv DSP-behandling. AMBA-4 AXI för höga genomflöden som ansluts till PL-direktanslutningar för dataöverföringar med över 3 000 PS gör att informationssystemet och den programmerbara logiken blir ordentligt sammankopplade.
Fig 2. – Zynq-7000 All Programmable SoC
(klicka för större bild)
Var är det bäst att skilja på gränssnittet mellan avlastningsdelen och den fasta processordelen, ur ett systemperspektiv, när du utför den praktiska implementeringen?
Många kontrollalgoritmer har systemtider och systemvariabler som sträcker sig över flera tiopotenser. Ett sådant stort intervall gör att det blir svårt att allokera partitionen. Var allokerar du sådana tidskritiska funktioner?
Fråga vilken ingenjör som helst hur många byten och upprepningar som krävs för att få ett elbilssystem att fungera så förstår du hur plågsamt det är på vägen.
För att illustrera detta visar vi en typisk elbil i fig 2. Strömkällan är vanligtvis 50–60 Hz och den korrigeras för att uppnå en jämn spänning (likström). Likströmsspänningen konverteras till en variabel frekvens som styr ett strömsteg, vilket förser motorns kopplingar med ström, läser av motorns basvariabler som ström och spänning, läser av eller uppskattar axelns position, dess hastighet och hanterar kommandon från kommunikationsnätverket eller en överordnad kontroller.
Så det är mycket viktigt med den bästa allokeringen av partitionen och förmåga att gå tillbaka från implementeringen till simuleringen för att omkalibrera implementeringen och det kräver en guidad eller möjligtvis automatiserad miljö.
Fig 3. Stora tidsbegränsningar för elbilar
(klicka för större bild)
Optimal partition mellan ”C” OCH HDL
Xilinx och MathWorks har gått samman för att förbättra produktiviteten hos det modellbaserade designfödet så att partitionen mellan informationssystemet och den programmerbara logiken assisteras av ett automatiskt arbetsflöde.
Fig 4. Automatiserat och snabbt prototypflöde för motorkontroll från Simulink
Sådan automatisering gör att programvaruutvecklare och kontrollingenjörer kan samarbeta med att ställa in partitioneringsscenarion och dela upp den översta modellen i en programvarumodell och maskinvarumodell. Modellen överförs till C-kod och HDL-kod med MathWorks Embedded Coder och HDL Coder. Arbetsflödet automatiserar framställningen av gränssnittet och systemsammansättningen.
Resultatet av implementeringen överförs till Xilinx inbyggda systemverktyg genom en specifik Zynq-7000-malldesign. På så sätt automatiserar även arbetsflödet versionen och nedladdningsstegen i Xilinx-verktygen.
Fig 5 Modellbaserat Zynq-designflöde
(klicka för större bild)
Fig 5 visar arbetsflödet på hög nivå, med vikt på design-, implementerings- och distributionsfaserna. Arbetsflödet hjälper designteamet att mappa implementeringarna i ett produktpaket som möjliggör sömlös integration mellan simuleringsmiljön, prototypfasen och den slutliga produktimplementeringen.
Den generella kvalitets- och designspårbarheten har förbättrats avsevärt eftersom flödet är helt integrerat och tillåter direktmappning mellan modellen och det slutliga utförandet med de uppenbara fördelarna att den kan återanvändas och observeras.
Fig 6. Från simulering till prototyp till produktion
(klicka för större bild)
För att förenkla inlärningen kan ett sådant modellflöde utvärderas med någon av Xilinx intelligenta elbilar som referensdesign. Den består av Avnet ZedBoard med Zynq-7020 All ProgrammableSoC. Sådana enheter har 220 DSP48E1-delar, 85K Logic Cells, 800 MHz Dual Core ARM Cortex-A9 informationssystem, 1 FMC-utbyggnadskortssocket.
Strömstyrningen och förvärvsstegen genomförs med AD-FMCMOTCON1-EBZ FMC Module från Analog Devices. En valfri ADI Dynamometer-motorkontroll kan användas som en textfixtur. Xilinx Vivado Design Suite System Edition som är låst till ZC7020 används som distributionsverktygskedja.
MATLAB, Simulink, HDL Coder, Embedded Coder, Control Systems Toolbox utgör den modellbaserade miljön. Zynqs referensdesign av Field Oriented Control med ramverket Ubuntu Linux gör hela uppsättningen fullständig.
Dr. Giulio Corradi Sr. System Architect ISM Xilinx
Tom Hill Sr. Manager DSP Solutions, Xilinx
Filed under: FPGA