12.07.2015 Aufrufe

Vom Modell zum Seriencode - dSPACE

Vom Modell zum Seriencode - dSPACE

Vom Modell zum Seriencode - dSPACE

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

<strong>Vom</strong> <strong>Modell</strong> <strong>zum</strong> <strong>Seriencode</strong>In der Automobilelektronik wird die Funktionsentwicklung fürSteuergeräte (ECUs) heute immer mehr von Entwurfsmethodenbestimmt, die auf mathematischen <strong>Modell</strong>en der betreffendenSteuer- und Regelkreise basieren. Diese Tendenz beruht vorallem darauf, dass im Gegensatz zu formalen Beschreibungenvon Funktionen nichtformale Beschreibungen wie <strong>zum</strong> Beispielreine Textdarstellungen häufig zu Qualitätsmängeln imgesamten Entwicklungsprozess führen können.<strong>Modell</strong>basierterReglerentwurfBeim modellbasiertenEntwurf werden die Reglergrafisch mit Hilfe vonBlock- und Zustandsdiagrammendargestellt. Am weitestenverbreitet zur Beschreibung der <strong>Modell</strong>esind dabei die Software-WerkzeugeMATLAB ® /Simulink ® /Stateflow ® vonThe MathWorks. Durch die Integrationvon Simulink (für Blockdiagramme) undStateflow (für Zustandsdiagramme)können die unterschiedlichsten Artenvon komplexen Steuerungen und Regelungenin einem einzigen <strong>Modell</strong> miteinanderkombiniert werden.Durch Branchenexperten derAutomobilelektronik wurde in den letztenJahren herausgefunden, dass zwischen15 und 40 Prozent aller Software-Fehler, die bei der Serienüberführungvon Steuergeräte-Funktionen gefundenwurden, ihre Ursache in unvollständigenund mehrdeutigen Spezifikationen hatten.Zwischen 40 und 60 Prozent allerProbleme entstanden wiederum durchProgrammierfehler während der Software-Implementierung.Der niedrigereWert von 40 Prozent wurde hier vor 2Jahren von einem Lkw-Hersteller berichtet.Im Bereich Pkws haben zweiverschiedene Fahrzeughersteller (OEM)– der eine im Jahr 1999, der andere imJahr 2002 – unabhängig voneinandereine Fehlerquote von 60 Prozent bestätigt.Bei der Implementierung und Programmierungvon Steuergeräte-Softwarekann offensichtlich noch einiges verbessertwerden.Mit der Verwendung mathematischer<strong>Modell</strong>e – die letztlich ausführbare (d.h. simulierbare) Spezifikationen sind –lässt sich ein Großteil der durch mehrdeutigeund unvollständige Spezifikationenhervorgerufenen Probleme ausräumen.Verständlichkeit und Transparenzinnerhalb des Entwicklungsprozessessteigen für alle Beteiligten erheblich. Die<strong>Modell</strong>e sind gleichzeitig Grundlage fürEchtzeit-Anwendungen im RapidControl Prototyping (RCP). Sehr komplexeRegel- und Steuerkreise bleibendarüber hinaus mit Hilfe mathematischer<strong>Modell</strong>e selbst dort noch kontrollierbar,wo mit nichtformalen Beschreibungenschon jeglicher Überblick verlorenwäre. Vor allem in den Automobil-Entwicklungsbereichen Antriebsstrangund Fahrwerk besteht seit etwa 10 Jahrenein deutlicher Trend hin <strong>zum</strong> modellbasiertenEntwurf. Jedoch werden in derIndustrie immer noch verbreitet nichtformaleBeschreibungen für Spezifikationenverwendet – mit einem großenAufwand für Nachbesserungen innerhalbdes gesamten Entwicklungsprozessesals Folge.Die mathematischen <strong>Modell</strong>e dienen nebender reinen Beschreibung der SteuerundRegelkreise einerseits als Grundlagefür menschliche Programmierer. Genausokönnen sie aber auch von automatischenCode-Generatoren in qualitativhochwertigen Steuergerätecode umgesetztwerden. Gute Code-Generatorenreduzieren nicht nur die Entwicklungszeit,sondern bringen auch eine erhöhteSoftware-Qualität hervor und verhindernmenschliche Programmierfehler. ZurZeit werden automatische Code-Generatorenprimär für neue funktionale Software-Bestandteilein elektronischenSteuergeräten eingesetzt, d. h. für dieSteuerungs- und Regelungsfunktionen.Die hardwarenahe Software und dieSoftware-Infrastruktur werden manuellerstellt. Da der Funktionscode in Steuergeräteneinen Anteil von etwa 70 Prozenteinnimmt, hat die Verwendung automatischerCode-Generatoren in derAutomobilelektronik eine große Bedeutunggewonnen, sowohl bei der Erhöhungder Code-Effizienz und -qualitätin Steuergeräten als auch für die Verbesserungder Sicherheit elektronischerSteuergeräte.Code für das Rapid ControlPrototyping (RCP)Wenn möglich solltenRegler- und Steuerungsentwürfeimmer mit einemRCP-System erprobtwerden. Dafür wird der Regler aufder experimentellen Echtzeit-Hardwareimplementiert, entweder als Ersatz desgeplanten Steuergerätes (Fullpass-


Effizienz-Zuwachs durch RCP und TargetLink bei einem japanischerFahrzeughersteller (OEM)Prototyping) oder als separate, ausgelagerteSteuergeräte-Funktion (Bypass-Prototyping). Für die Implementierungwird eine automatische Code-Generierungbenötigt. Jedoch ist dieser automatischerzeugte Code für das RCP imVergleich zur automatischen <strong>Seriencode</strong>-Generierung für möglichst viele Freiheitenbeim Testen ausgelegt und ist somitnicht für die bei Seriensteuergeräten limitiertenRessourcen wie Speicher oderEin- und Ausgänge optimiert. Dafür istRCP-Hardware besonders leistungsstarkund flexibel. Die MicroAutoBox –ein RCP-System von <strong>dSPACE</strong> – kanndarüber hinaus durch die kompaktenAbmessungen und die Robustheit direktim Fahrzeug eingesetzt werden. Obwohles Überdeckungen zwischen Code-Generatorenfür RCP und solchen für<strong>Seriencode</strong> gibt, sind kommerzielleCode-Generatoren in der Regel auf eineder beiden Anwendungen spezialisiert.Die Bedeutung des RCP liegt vor allemin der Verifizierung des Reglerentwurfsund der Erzeugung einer tatsächlich ausführbarenSpezifikation. Mögliche Problemedurch fehlerhafte Spezifikationenwerden so ausgeschaltet. Der gesamteEntwicklungsprozess wird zudem effizienter,denn Ideen können schnell undunkompliziert mit der RCP-Hardwareausprobiert und Erfolg versprechendeLösungswege zügig verifiziert werden.Ein japanischer OEM-Hersteller berichtete,dass durch RCP die Entwurfsphaseum 70 Prozent verkürzt werdenkonnte. Durch den Einsatz eines <strong>Seriencode</strong>-Generatorskonnten 30 Prozentder Implementierungszeit eingespartwerden, obwohl der <strong>Seriencode</strong>-Generatorerstmals eingesetzt wurde, noch eineLernkurve zu durchlaufen war und derProzessor des Steuergerätes nur Festkomma-Arithmetikverarbeiten konnte.Anforderungen an<strong>Seriencode</strong>-Generatoren<strong>Seriencode</strong>-Generatorenmüssen eine ganze Reihevon Anforderungen erfüllen,die beim RCP nichtso wichtig sind. Im Gegensatz zu handprogrammiertemCode müssen <strong>Seriencode</strong>-Generatorenautomatisch Codemit äußerst hoher Effizienz erzeugen.Darüber hinaus erwartet man völligeFehlerfreiheit, Reproduzierbarkeit undeine gute Dokumentation des erzeugtenCodes. Die hohe Code-Qualität mussauch über Versionen des Code-Generators hinweg eingehalten werden.Dies ist eine absolut nichttriviale Forderung,solange sich die <strong>Modell</strong>ierungswerkzeugenoch erheblich weiterentwikkelnmüssen und auch der <strong>Seriencode</strong>-Generator schon allein deshalb permanenterWeiterentwicklung unterliegt. Oftkommt es zudem vor, dass schon längstCode für bestimmte <strong>Modell</strong>teile existiert.Dieser Code muss dann in denautomatisch erzeugten Code integriertwerden können (und auch umgekehrt).Für maximale Flexibilität bei der Code-Erzeugung ist es für den Entwickler erforderlich,Variablenklassen selber definierenzu können und Variablen freinach den Projekterfordernissen und vorhandenenKonventionen benennen zukönnen. Außerdem möchte man bei derCode-Partitionierung so wenig wie möglicheingeschränkt sein, um Funktionenwiederverwenden und Multitaskingdurchführen zu können. Es sei auchnoch die oft geforderte Anbindung anApplikationssysteme erwähnt, wofürASAP2-Kompatibilität notwendig ist.Alles in allem ist automatische <strong>Seriencode</strong>-Generierungangesichts der hiergeschilderten Anforderungen eine sehranspruchsvolle Aufgabe für das entsprechendeSoftware-Werkzeug.Effizienz von automatischerzeugtem <strong>Seriencode</strong>Lange Zeit mochten Software-Spezialistennicht glauben, dass <strong>Seriencode</strong>-Generatoreneinmal so gut wie menschlicheProgrammierer sein oder diese sogarübertreffen würden. Schlechte Erfahrungenmit frühen Code-Generatoren habendiese Skepsis gefördert. Heute können<strong>Seriencode</strong>-Generatoren sehr wohl dieEffizienz von handprogrammiertemCode für die funktionalen Bestandteilevon Steuergeräten erreichen. TargetLink,der <strong>Seriencode</strong>-Generator von <strong>dSPACE</strong>,hat bereits viele Vergleichstests hintersich, und Benutzer in aller Welt habenberichtet, dass die Effizienz des mitTargetLink erzielten Codes sich hinsichtlichTempo und Speicherbedarfohne weiteres mit handprogrammiertemVergleich der Effizienz von handprogrammiertem undgeneriertem Code (Antriebsstrang / Chassis)Code messen kann. Oft wurden sogardie Ergebnisse der handcodierten Softwareübertroffen. Denn während der<strong>Seriencode</strong>-Generator zu jeder Zeit denCode optimiert, haben menschliche Programmiereroft nicht die Zeit, um nachwiederholten <strong>Modell</strong>änderungen immerund immer wieder den Code zu optimieren.Als Besonderheit ist zu erwähnen,dass TargetLink für verschiedeneCompiler-Mikrocontroller-Kombinatio-


nen jeweils automatisch das optimaleCodierungsmuster auswählen kann, undzwar ohne vom ANSI C Standard abzuweichen.Bei einer Chassis-Anwendungauf einem Infineon C167-Prozessorkonnten durch die automatische Wahldes optimalen Codierungsmusters27 Prozent Geschwindigkeitsvorteil erreichtund der Speicherbedarf um10 Prozent reduziert werden.Signalverarbeitung) hervorragendeOptimierungsergebnisse erzielt.Da hinsichtlich der Portabilität das Zieldarin bestehen sollte, <strong>Modell</strong>e zu portierenund nicht den Code selbst, spielenAbweichungen vom ANSI C Standardfür die automatische Code-Generierungeigentlich keine große Rolle.Solche Abweichungen entsprechenzwar nicht den im Allgemeinen vorzufindendenbisherigenProgrammierrichtlinien, denn diesewurden zur Disziplinierung dermenschlichen Programmierer eingeführt.Der Code kann aber andererseitszu jeder Zeit passend für einen neuenMikrocontroller oder eine neue Steuergeräte-Umgebungwieder generiert wer-den. Der Aufwand für die Portierung reduziertesich um 75 Prozent im Vergleichzu vorher, als noch keine automatischeCode-Generierung eingesetztwurde.Es gibt Situationen, in denen grafischdargestellte, mathematische <strong>Modell</strong>e dieCode-Generatoren vor besondere Herausforderungenstellen. Software-Werkzeugewie Simulink und Stateflow lassenden Anwendern große Freiheitendarin, auf welche Art und Weise eine bestimmteFunktionalität beschriebenwird. Dadurch können auf Code-Ebenesehr einfache Operationen wie if-thenelse-Konstrukteim grafischen <strong>Modell</strong>komplexer aussehen und auch auf verschiedeneWeise modelliert werden (z.B. Logik-Blöcke und Schalter oder Zustandsautomaten,Art der Zusammenschaltungder Blöcke). Trotzdem erwartetman vom Code-Generator effizientenCode. TargetLink ist speziell fürsolche Situationen gerüstet und kann dieBedeutung von <strong>Modell</strong>konstrukten überdie Grenzen zwischen Zustandsdiagrammenund Flussdiagrammen hinwegerfassen.Auswahl des optimalen Codierungsmusters in TargetLink (Vergleichstest)TargetLink ist außerdem in der Lage – indiesen Fällen abweichend vom ANSI CStandard –, sich auf verschiedensteCompiler-Erweiterungen (spezielleDatentypen, spezielle Funktionen) einzustellenoder auch vereinzelte und gutbegründete Einfügungen in Assembler-Sprache vorzunehmen, wenn die Effizienzdes Codes dadurch erheblich gesteigertwerden kann.Die hier beschriebenen Optimierungen(„Target Optimization“) sind spezielleFeatures von TargetLink und solltennicht mit sogenannter Target IntegrationSoftware verwechselt werden, wie sievon manchen Code-Generatoren angebotenwird. Target Integration Softwareumfasst meist nur Make-Files und einigeHilfswerkzeuge. Hingegen bedeutet„Target Optimization“ einen erheblichenEntwicklungsaufwand beim Herstellerdes Code-Generators. Durch„Target Optimization“ werden besondersfür kleinere Mikrocontroller mitbeschränkten Ressourcen sowie fürProzessoren mit spezieller Hardware(z. B. integrierten Features für digitaleden („Just-in-Time-Generierung“). Eskann dann sogar Code für einen Festkomma-Controllergeneriert werden,wenn vorher für einen Fließkomma-Controller entwickelt wurde und umgekehrt.Ein japanischer Automobilelektronik-Zuliefererhat eineEvaluierung von TargetLink durchgeführtmit Blick auf die Portierung vonReglerfunktionen zwischen verschiedenenMikrocontrollern. Für die mitSimulink/Stateflow beschriebenenFunktionen eines elektronischenStabilitätsprogramms (ESP) wurde mitTargetLink Code für vier verschiedeneMikrocontroller erzeugt. Selbst ohnespezielle Optimierung („TargetOptimization“, s. o.) konnten hinsichtlichder Effizienz des Codes exzellentebis akzeptable Ergebnisse erreicht wer-Mit dem Processor-in-the-Loop-Modusbietet TargetLink den Benutzern dieMöglichkeit, den generierten Code genauzu analysieren und mögliche Auswirkungendes eigenen <strong>Modell</strong>ierungsstilszu betrachten. Im Processor-inthe-Loop-Moduswird der generierteCode auf einem realen Mikrocontrollerausgeführt, mit demselben Kern wiedem Seriensteuergerät. Mit Hilfe der automatischenInstrumentierung könnendann die Ausführungszeiten pro Schritt,der Stack-Speicherbedarf und derRAM-Speicherbedarf aufgezeichnet,grafisch oder numerisch analysiert undnachträglich verändert werden.Qualitäts- undSicherheitsaspekteIn Unternehmen, die noch keine praktischenErfahrungen mit der automatischen<strong>Seriencode</strong>-Generierung sammelnkonnten, bestehen häufig Vorbehaltehinsichtlich der Sicherheit und der Qualitätdes automatisch erzeugten Codes.Dort, wo TargetLink bereits benutzt


Neue Anwendungen:tendenzieller Anstieg des Prozentanteils an automatisch generiertem Codewird, hat sich jedoch die Zuverlässigkeitdes auf diese Weise erhaltenen Codesbewiesen. Angesichts der unendlichenKombinationsmöglichkeiten von<strong>Modell</strong>konstrukten und Parameternkann es natürlich keine Garantie dafürgeben, dass niemals ein Fehler in automatischerzeugtem Code auftreten wird,trotz intensiver Tests und Qualitätskontrollen.Jedoch ist die Wahrscheinlichkeiteines Code-Fehlers bei Code-Generatoren im Vergleich zu menschlichenProgrammierern sehr gering. Dennder Mensch hat gute und weniger guteTage, lernt und vergisst wieder, und Arbeitsplätzevon Programmierern werdenauch mal neu besetzt. Der Code-Generatorhingegen lernt mit jeder Verbesserung,jeder Fehlerbehebung und jederneuen Situation dazu und „vergisst“ dasGelernte niemals. Bei einem Fahrzeughersteller(OEM) bestätigten die dortigenTargetLink-Benutzer: „Beim Überprüfendes automatisch generierten Codesfür unsere sicherheitskritischen Anwendungenhaben wir regelmäßig<strong>Modell</strong>ierungs- und Entwurfsfehler gefundenaber keine Fehler im Code.“Generatoren machen nicht die typischenFehler menschlicher Programmierer. AlsBeispiel seien Bit-Shift-Operationen genannt,die laut MISRA nicht erlaubtsind und durch zeitintensivere Divisionenersetzt werden müssen. Für Programmiererist es normalerweise ein guterRat, sich an die entsprechendeMISRA-Regel zu halten. Der automatischeCode-Generator ist aber in derLage, eine Situation komplett zu analysierenund jedes Mal korrekten Code zuerzeugen. Deshalb kann – wenn vor allemEffizienz gewünscht ist – eineMISRA-Regel vom Code-Generator gutenGewissens außer Acht gelassen werden.Um die systematische Entwicklung vonTargetLink bei <strong>dSPACE</strong> sicherzustellen,zu verbessern und nach einer anerkanntenQualitätsnorm auszurichten,arbeitet das TargetLink-Entwicklungsteam zur Zeit aufden Assessment-Level 3 derNorm ISO/IEC 15504 (SPICE;Software Process ImprovementCapability dEtermination) zu.SPICE verbindet Konzepte vonISO9001 und CMM, wobei diesogenannten „Audits“ von unabhängigenOrganisationendurchgeführt werden. Bei derEinhaltung des Entwicklungsprozessesnach SPICE wird einsehr hoher Software-Qualitätsstandard– auch nach revisionsbedingtenÄnderungen – erreicht. Dies ist angesichtsder notwendigen Weiterentwicklungenäußerst wichtig. Eine irgendwiegeartete Zertifizierung nur eines Codesin einer bestimmten Anwendung odereines Code-Generators einer ganz bestimmtenVersionsnummer unter ganzbestimmten Bedingungen hat demgegenübernur begrenzten Wert. Aus diesemGrund wurde SPICE von einer deutschenAutomobil-OEM-Initiative <strong>zum</strong>Auditing von Steuergeräte-Software-Anbietern und konsequenterweise auchvon Werkzeug-Anbietern ausgewählt.Mitglieder der „Herstellerinitiative Software“sind Volkswagen,DaimlerChrysler, BMW, Porsche undAudi.Zur Vermeidung mangelnder Code-Sicherheitund fehlender Portabilität beider Handprogrammierung sicherheitsrelevanterSysteme für Autos hat sichder MISRA-Standard (Motor IndustrySoftware Reliability Association) alsProgrammierleitfaden durchgesetzt. DerMISRA-Standard wird von TargetLinkeingehalten, wo dies sinnvoll ist. Es gibtallerdings begründete Ausnahmen, wiesie vom Standard auch durchaus zugelassensind. Denn automatische Code-Erfolgreicher Einsatz von automatisch generiertem Code für Seriensteuergeräte


Auch in der Luftfahrt konnte mitTargetLink erzeugter Code bereits seinehohe Qualität beweisen. Bei einem Herstellervon Kabinendruck-Kontrollsystemenwurde für TargetLink-Code derhöchste Zertifizierungsgrad in der Zivilluftfahrtinnerhalb des DO178B-Standardserreicht.Trotz des systematischen Entwicklungsprozessesmuss ein <strong>Seriencode</strong>-Generator sorgfältig getestet werden.Auf der ersten Testebene werden elementareCode-Konstrukte (ANSI C,ANSI C mit Erweiterungen, ANSI C mitErweiterungen und ausgewählten Einfügungenin Assembler-Sprache) für alleMikrocontroller und alle unterstütztenCompiler getestet. Das Testprogrammumfasst zur Zeit eine halbe MillionTestmuster. Alle Testmuster werdenmit unterschiedlichen Parametern getestet,was zu 8 Millionen Testfällenführt. Ein einziger Test pro Compiler-Mikrocontroller-Kombination brauchtautomatisiert eine volle Woche rund umdie Uhr. Selbst Compiler-Fehler könnenin dieser Phase aufgedeckt werden. Aufder zweiten Testebene werden speziellkonstruierte sowie „echte“ Simulink/Stateflow-<strong>Modell</strong>e herangezogen. Simulationendes Idealverhaltens und desVerhaltens des tatsächlich erzeugtenCodes werden automatisch miteinanderverglichen. Aktuell sind 1 500 <strong>Modell</strong>eund 100 000 Testmuster im Einsatz,wobei ein voller Testdurchlauf zehnoder mehr Tage beansprucht. Die Zahlder verwendeten Testfälle wächst mitjedem gefundenen Fehler, so dass sichdie Sicherheit des Code-Generators immerweiter erhöht.Automatisch erzeugter Code– bereit für die Serie?Da mit automatischer <strong>Seriencode</strong>-Generierungdie Entwicklungszeit verkürztund gleichzeitig die Qualität verbessertwerden kann, ist das Interesse der Industriean Code-Generatoren sehr groß.Eine Reihe von Fahrzeugen ist mit generiertemCode schon in Serie gegangen.Etwa 50 Prozent aller TargetLink-Lizenzensind bisher an Fahrzeughersteller(OEM) ausgeliefert worden und etwa35 Prozent an Zulieferer von elektronischenSystemen und mechatronischenKomponenten. Außerdem zählenIngenieurdienstleister und Forschungseinrichtungenzu den TargetLink-Benutzern.Die ersten Serienanwendungen für automatischerzeugten Code lagen im Bereichder Add-on-Funktionen und nichtsicherheitskritischenSysteme. Dazuzählt <strong>zum</strong> Beispiel eine mit TargetLinkfür den Nissan Sentra umgesetzteMotormanagement-Anwendung nachdem kalifornischen SULEV-Standard,mit dem die Autohersteller sich verpflichten,die Schadstoffemissionen beiKraftfahrzeugen auf ein Minimum zureduzieren. Das Fahrzeug war bereits6 Monate nach der TargetLink-Einführung,im Frühjahr 2000, fertig zur Auslieferung.Mittlerweile werden kompletteMotormanagementsysteme vonSerienfahrzeugen mit TargetLink realisiert.Für solche Anwendungen ist eswichtig, dass sich die Code-Generierungnahtlos in die Software-Architektur derSteuergeräte integriert. Somit wird auchdie vollständig integrierte Unterstützungvon Echtzeit-Betriebssystemennach dem OSEK-Standard wichtig. Bisherwurde TargetLink-Funktionscodenach manueller Vorbereitung in die Software-Infrastrukturdes Steuergerätes integriert.Die nächste Version ermöglichtdie Code-Generierung für OSEK/VDXkonformeEchtzeit-Betriebssysteme direktaus MATLAB/Simulink. Auchmodellübergreifendes Datenmanagementwird mit Hilfe des neuen <strong>dSPACE</strong> DataDictionary möglich sein.SchlussfolgerungDie automatische Code-Generierung fürSeriensteuergeräte ist im Bereich derAutomobilelektronik bereits sehr erfolgreichim Einsatz. Die Bereitschaft zurEinführung und der Einführungszeitpunktunterscheiden sich je nachFahrzeughersteller, jedoch ist die Technologieselbst als ebenso unausweichlichanzusehen wie seinerzeit die Einführungder Programmiersprache C. NegativeBefürchtungen hinsichtlich derEffizienz des automatisch erzeugtenCodes haben sich nicht bestätigt. Ebensoerfüllt der automatisch erzeugte Codedie geforderten hohen Qualitätsansprücheund im Zuge der zunehmenden Erfahrungensowie mit Blick auf die vielenabgeschlossenen Projekte wird sich dieseErkenntnis auch durchsetzen.Der AutorDr.-Ing. Herbert Hanselmann (54) istgeschäftsführender Gesellschafter(President & CEO) der <strong>dSPACE</strong> GmbH,Paderborn. Er studierte Elektrotechnikan der Universität Karlsruhe und promoviertedort <strong>zum</strong> Thema Regelungssysteme.Danach forschte und lehrte eram heutigen Mechatronik-Labor derUniversität Paderborn. 1988 gründete ermit drei weiteren Ingenieuren die<strong>dSPACE</strong> GmbH.

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!