Tänk om du kunde skapa en virtuell prototyp av en styrenhet (ECU), testa dess funktioner och göra designändringar utan att behöva skapa en fysisk prototyp?
Detta är virtuell validering.
Virtuell validering är en process som används för att testa och verifiera mjukvaran i en styrenhet. Detta inkluderar simulering av ECU(-er) i flera miljöer och förhållanden för att säkerställa att styrenheten fungerar korrekt. Virtuell validering möjliggör design och implementation av systemet innan investering av ett betydande kapital. Med andra ord minskar virtuell validering kostnader och marknadsledtiden samt ökar även kvaliteten och robustheten av ECU:ns mjukvara.
Användningen av virtuell validering ökar inom fordonsindustrin och när fordonstillverkare testar ny teknik i både elektriska och autonoma fordon. Genom virtuell validering kan företag simulera batterier och elektroniska designsystem, testa miljontals kilometerkörning och miljontals kodrader utan att manuellt bygga en prototyp. Flyg och försvar är en annan bransch som drar stor nytta av virtuell validering. Virtuell validering kallas ofta Software-In-the-Loop-simulering (SIL) då det är testobjektets mjukvara som är inkopplad i simuleringsloopen.
Fördelarna med virtuell validering är bland annat:
- PC eller Cloud baserad simulering för validering av Virtuella ECU:er, V-ECU.
- Ingen hårdvara förutom en PC krävs för valideringen.
- Utveckla och genomför HIL-testfall utan tillgång till HIL-hårdvara (Frontloading).
- Återanvänd en PC-baserad V-ECU i en realtidssimulering i HIL systemet.
- Integrera V-ECU i ett funktionsutvecklingsscenario för att integrera redan utvecklade funktioner.
Genom virtuell validering går det dels att tidigarelägga delar av ett projekts integrationstestning genom simulering och genom att arbeta i en parallell process där de verkliga och de virtuella utvecklingsfaserna interagerar med varandra i tiden.
Virtuell Styrenhet
En virtuell styrenhet är en programvara som representerar en riktig styrenhet (ECU) i en simulering. Virtuella styrenheter kommer i många olika former, exempelvis som enbart funktionskoden, till mer avancerade implementationer med produktionskod och underliggande mjukvara.
I ett tidigt skede av testning och validering vill man ofta kunna testa den senaste versionen av sin funktion utan att behöva bygga in den i den hårdvaruspecifika mjukvaran. Då kan man enkelt simulera endast funktionskoden tillsammans med modellen för omgivningen. Detta kan man uppnå på olika sätt, till exempel genom att ha sin funktionskod i en FMU eller Docker-container.
Styrsystem som används till ADAS/AD funktioner tar ofta beslut baserat på sensorer och behöver därför verklighetstrogen sensordata för att funktionaliteten ska kunna valideras. I vissa fall räcker det att få information om vad sensorerna ser, en objektlista, men till slut måste funktionen ändå valideras tillsammans med dess algoritmer för tolkning av sensordata. Detta kräver att man injicerar rådata från sensorerna, antingen riktig inspelad data eller konstgjord, simulerad, sensordata. Oavsett var datan kommer ifrån måste man kunna injicera den i formatet som styrenheten väntar sig. När den riktiga hårdvaran testas behövs en enhet som samlar in och omvandlar sensordatan till testobjektets förväntade format. Denna enhet kan vara en dSPACE Environment Sensor Interface Unit (ESI Unit). ESI Unit:en kan omvandla flera dataströmmar från olika sensorer och spela upp informationen från dem till testobjektet i realtid och synkroniserade med varandra. I SIL-fallet används ingen hårdvara men det är ändå viktigt att strömmen med sensordata är rätt format och att datan från de olika sensorerna spelas upp i rätt tid. För detta användningsområde finns en virtuell ESI Unit (v-ESI) som integreras mellan sensorsimuleringen/uppspelningen och testobjektet och även sluter loopen med återmatning av data från testobjektet till simuleringen.
I ett senare skede behöver man testa sin färdiga produktionskod i en miljö så lik den verkliga som möjligt. I dessa fall kan man använda en så kallad virtuell ECU, V-ECU. En V-ECU består bara av en verklig produktionskod och kräver ingen speciell hårdvara, till skillnad från en vad vi kallar Soft ECU, som bara är en förenklad modell av beteendet.
V-ECU:er kan ha olika abstraktionsnivåer, beroende på vad de används för:
- V-ECU: er på applikationsnivå innehåller utvalda delar av applikationsprogramvaran, och ett kompletterande ramverk för att få dem exekverbara
- V-ECU kan också inkludera applikationsprogramvaran och delar av produktionens grundläggande programvara, såsom diagnostik och kommunikationsmoduler.
- V-ECU kan inkludera komplett applikationsprogramvara och hårdvaruoberoende grundläggande programvara, dvs allt utom det hårdvaruberoende MicroController Abstraction Layer.
dSPACE Verktygkedja
Med dSPACE:s verktygskedja finns alla möjligheter att skapa en komplett valideringsprocess. Fengco och dSPACE erbjuder verktyg för alla steg i processen, både för skapandet av den virtuella ECU och testmiljön som genererar stimuli/sensordata i den form som förväntas.
Generering av V-ECU:er
Det finns olika sätt att skapa en V-ECU, beroende på vad den ska användas till, projektets behov och om utvecklingen är baserad på AUTOSAR eller ej.
Funktions- och programvaruutvecklare som bara arbetar med enskilda komponenter kan skapa en V-ECU direkt med TargetLink i Simulink. Resultatet är en enkel V-ECU med endast en specifik del av applikationsskiktet i ECU-programvaran. Det möjliggör grundläggande funktionstester.
Integrationstestare som vill testa ett mer komplext nätverk av funktioner kan kombinera programvarukomponenter, funktioner eller icke-AUTOSAR-kod från olika källor i SystemDesk för att skapa ECU: s programvaruarkitektur. De kan sedan använda SystemDesk V-ECU Generation Module för att skapa en komplett V-ECU. Detta inkluderar run-time- environment (RTE) och, om det behövs, grundläggande programvara utöver applikationslagret. V-ECU: erna används för PC-baserad simulering med VEOS.
Simulering av virtuella styrenheter
När det kommer till simulering av virtuella styrenheter och omvärldsmodeller kan det ske på allt mellan användarens egen dator till en extern lösning i molnet.
Används en tredjepartslösning för att skapa den virtuella ECU:n så kan man integrera den via dSPACE V-ESI.
För PC-baserad simulering används simuleringsplatformen VEOS, som exekverar hela miljön direkt på en PC i simulerad realtid med hög prestanda. Här kan tiden skalas så snabbt som hårdvaran tillåter medan exekveringsordningen och den av ECU:erna uppfattade tiden förblir deterministisk. Här kan vi koppla ihop olika ECU:er och omvärldsmodeller antingen direkt via portar eller via simulerade bussar såsom CAN, Lin eller Ethernet.
En av de största fördelarna med virtuell validering är oberoendet av on-site hårdvara. När testobjektet endast är mjukvara finns det inget krav på att ha testmiljön på plats. Genom att istället flytta testmiljön till molnet öppnas flera nya möjligheter, som parallell simulering, där olika tester kan köras mot samma testobjekt samtidigt.
dSPACE VEOS integreras enkelt i kundens on-site datacenter eller direkt i molnet och med SIMPHERA erbjuds en komplett testmiljö i molnet som inkluderar allt från simuleringsmodeller och testplattform till hanteringen av parameterset och schemaläggning av tester. Genom att använda SIMPHERA i ett moln som sköts av dSPACE behöver man inte heller tänka på underhåll och uppdateringar och kan istället fokusera på det viktiga – testning. En ren molnlösning ger också möjligheten till flexibel och skalbar beräkningskraft – öka eller minska antalet beräkningsnoder efter just ert behov.
Vill man koppla ihop sin produktionskod med det som ska styras, så som aktuatorer, innan hårdvaran finns tillgänglig så finns möjlighet att exekvera V-ECU:er på dSPACE prototypinglösningar, såsom MicroAutoBox.
Vill man testa integration av den virtuella ECU:n och befintliga fysiska ECU:er finns möjlighet att blanda dem i en SCALEXIO HIL-simulator. Här kopplas V-ECUns portar till fysiskt IO och buskommunikationen dras ut till fysiska bussar så att övriga ECU:er kan kommunicera med den med samma interface som den skulle med den färdiga ECU:n.