Künstliche Intelligenz (KI) entwickelt sich rasant und dringt in immer mehr Bereiche vor. Sie steckt in Chatbots, Bildverarbeitungssystemen und zunehmend auch in Fahrzeugen. Insbesondere künstliche neuronale Netze – ein zentrales Element des maschinellen Lernens – eröffnen neue Möglichkeiten, von virtuellen Sensoren bis hin zu komplexen Entscheidungslogiken. Dabei stellt sich eine entscheidende Frage: Wie bringt man neuronale Netze aus der Entwicklungsumgebung in das Steuergerät (Electronic Control Unit, ECU) eines Fahrzeugs?
Warum starten neuronale Netze jetzt so durch?
Die Anfänge künstlicher neuronaler Netze reichen bis in die 1940er Jahre zurück. Zum Durchbruch verhalf ihnen jedoch erst die Kombination aus leistungsfähiger Hardware – insbesondere GPUs (Graphics Processing Units), die für parallele Berechnungen optimiert sind – und Open-Source-Frameworks für Machine Learning wie TensorFlow, PyTorch und Keras.
Diese Frameworks bieten fertige Bausteine und eine aktive Community, was den Einstieg in die Entwicklung neuronaler Netze erheblich erleichtert. Mit nur wenigen Zeilen Code in einer leicht zugänglichen Programmiersprache wie Python lässt sich schnell ein erstes Modell erstellen, das mit GPU-Beschleunigung oder in der Cloud in kurzer Zeit trainiert werden kann. Anschließend können sowohl die Architektur als auch die Hyperparameter und die zu nutzenden Features des Datensatzes gezielt angepasst werden.
Diese Entwicklungen eröffnen im Automobilbereich neue Einsatzmöglichkeiten. Neben rechenintensiven Anwendungsfällen wie Sprachassistenten kommen im Fahrzeug auch deutlich kleinere neuronale Netze zum Einsatz, etwa für virtuelle Sensoren. Diese Modelle verfügen über wesentlich weniger Parameter und sind so kompakt, dass sie direkt auf Steuergeräten ausgeführt werden können. Dadurch ergeben sich mehrere Vorteile:
- Schnelle Entwicklung: Neuronale Netze können komplexe Algorithmen ersetzen, deren Entwicklung für ein Steuergerät Tage oder Wochen dauern kann.
- Kostenvorteile: Hardware-Sensoren können in geeigneten Anwendungen durch virtuelle Sensoren auf Basis neuronaler Netze ersetzt werden, die Sensordaten vorhersagen und sowohl die Herstellungskosten als auch den Wartungsaufwand reduzieren.
- Zuverlässigkeit: Geschlossene Berechnungsmodelle ermöglichen stabile Laufzeiten und damit robuste Echtzeitanwendungen.
Wie können neuronale Netze auf einem Steuergerät eingesetzt werden?
Die effiziente Entwicklung und das schnelle Trainieren machen neuronale Netze für viele Anwendungen interessant. Ein trainiertes Modell allein genügt jedoch nicht. Es muss auch dort eingesetzt werden können, wo die Daten entstehen. Dazu braucht es kleine KI-Algorithmen oder -Modelle, die nicht mehr in der Cloud laufen, sondern direkt auf einzelnen Geräten mit sehr begrenzter Leistung.
Was in der Entwicklungsumgebung problemlos funktioniert, lässt sich nicht ohne Weiteres auf einer im Fahrzeug vorhandenen Recheneinheit – beispielsweise einem Steuergerät im Randbereich einer domänenzentrierten E/E-Architektur (Elektrik/Elektronik-Architektur) – ausführen. Embedded-Systeme wie Steuergeräte verfügen nur über begrenzte Speicher-, Bandbreiten- und Rechenkapazitäten.
Es gibt zwei grundlegende Methoden, um ein neuronales Netz auf einem Embedded-System auszuführen:
- Interpretation: Das Modell wird als Datei bereitgestellt und von einer Laufzeitumgebung interpretiert. Dieser Ansatz ist flexibel, da Modelle schnell ausgetauscht werden können. Allerdings benötigt die Laufzeitumgebung zusätzlichen Speicher und Rechenleistung.
- C-/C++-Code: Das Modell wird in schlanken C- oder C++-Code übersetzt. Wenn das Modell angepasst wird, muss der C-/C++-Code neu erstellt werden, was jedoch mit den richtigen Tools effizient durchgeführt werden kann.
Warum ist C-/C++-Code die bessere Wahl, um ein neuronales Netz auf ein Steuergerät zu bringen?
Steuergeräte sind hochspezialisierte Embedded-Systeme, die unter strengen Echtzeitanforderungen arbeiten und nur über begrenzte Ressourcen verfügen. Wird ein neuronales Netz interpreterbasiert ausgeführt, benötigt die dafür notwendige Laufzeitumgebung, wie bereits erwähnt, zusätzlichen Speicher und zusätzliche Rechenleistung. Dadurch steigt der Aufwand, ein strikt vorhersehbares Zeitverhalten sicherzustellen, was insbesondere bei Anwendungen mit deterministischen Echtzeitanforderungen zum Nachteil wird.
C-/C++-Code hingegen wird direkt kompiliert, läuft ohne Interpreter und ist dadurch schlanker, weil er exakt auf das jeweilige Modell zugeschnitten ist. Das macht ihn insgesamt schneller und vorhersagbarer als generisch ausgelegte Interpreter. Diese Aspekte können insbesondere bei sicherheitskritischen Funktionen im Fahrzeug entscheidend sein, bei denen es auf jede Millisekunde ankommt. Je nach Anwendung stehen jedoch unterschiedliche Anforderungen im Vordergrund: In manchen Fällen hat die Laufzeit Priorität, in anderen ist ein geringer Speicherbedarf wichtiger.
Ein guter Code-Generator generiert den erforderlichen C-/C++-Code effizient aus dem trainierten Modell und bietet die nötigen Optionen für anwendungsabhängige Optimierungen. Die Vorteile der automatischen Code-Generierung sind dabei keineswegs neu – sie haben sich in der Automobilindustrie bereits in Bereichen wie AUTOSAR und der modellbasierten Entwicklung über viele Jahre hinweg bewährt und können auch im KI‑Kontext einen effizienten und verlässlichen Weg bieten.
Welche Sicherheitsstandards gilt es bei der Code-Generierung für neuronale Netze zu berücksichtigen?
Die Integration künstlicher neuronaler Netze in Steuergeräte stellt sowohl technische als auch regulatorische Anforderungen. Neben den regulatorischen Anforderungen an Training, Daten und KI-Entwicklung, z. B. ISO/PAS 8800, gelten für den Einsatz von neuronalen Netzen in Steuergeräten zusätzliche Anforderungen an die Steuergeräte-Software. In der Automobilindustrie ist häufig eine Zertifizierung des Entwicklungsprozesses nach ISO 26262 erforderlich. Daraus ergeben sich Anforderungen an den Code, die u. a. durch die Einhaltung der MISRA C Guidelines erfüllt werden können. Durch automatische Tests, geeignete Workflows und einen entsprechend zertifizierten Code-Generator kann sichergestellt werden, dass der generierte Code diesen Anforderungen entspricht.
Zusätzlich fordern die Standards umfangreiche Tests der Software auf der Ziel-Hardware. Wird der Code optimiert oder das Modell quantisiert, d. h. auf eine geringere numerische Genauigkeit umgestellt, muss überprüft werden, ob die Funktionalität erhalten bleibt. Für ein frühzeitiges Feedback – noch vor den Tests am Steuergerät selbst – können Back-to-Back-Tests der Software dienen. In diesem Fall wird der Code, der auf dem Steuergerät laufen soll, mit dem Originalmodell verglichen. Back-to-Back-Tests können beispielsweise unmittelbar nach der Code-Generierung toolgestützt durchgeführt werden.
Wie fügen sich neuronale Netze als Software-Komponenten in automotive Toolchains ein?
Neuronale Netze werden selten als eigenständige Lösung entwickelt. Sie erfüllen eine bestimmte Funktion innerhalb einer größeren Software-Architektur. Um produktiv eingesetzt werden zu können, müssen sie sich daher nahtlos in bestehende Toolchains und Software-Architekturen einfügen.
Gerade in der Automobilindustrie sind diese Toolchains seit Langem etabliert und basieren auf bewährten Standards. Sie erwarten vertraute Artefakte wie AUTOSAR-kompatible Software-Komponenten oder Modelle, die als FMU (Functional Mock-up Unit) oder V-ECU (Virtual Electronic Control Unit, virtuelles Steuergerät) vorliegen.
Generierter C-/C++-Code bietet hier einen entscheidenden Vorteil: Er lässt sich in modellbasierte Entwicklungsprozesse integrieren und mit Tools wie TargetLink oder Simulink® weiterverarbeiten. So wird aus einem trainierten neuronalen Netz eine standardkonforme Software-Komponente, die sich in den Gesamtprozess einfügt – ohne Brüche in der Toolchain.
Standardisierte Schnittstellen, deterministische Laufzeiten und werkzeuggestützte Verifikation gewährleisten eine zuverlässige C-/C++-Codegenerierung für neuronale Netze auf eingebetteter Hardware.
Ein Blick in die Praxis
dSPACE verfügt über fast 30 Jahre Erfahrung mit sicherheitskritischen Systemen und bietet Kunden modernste Hardware- und Software-Lösungen, die eine Software-Entwicklung nach aktuellen Standards ermöglichen. Dieses Know-how fließt konsequent in die Integration neuronaler Netze in moderne Entwicklungsprozesse ein.
Wie sieht das in der Praxis aus? In diesem Hands-on Walkthrough zeigen wir Ihnen, wie C-Code für ein neuronales Netz in ein TargetLink-Modell eingebunden wird, um es für den modellbasierten Entwicklungsprozess bereitzustellen. Dieses Vorgehen ermöglicht es, standardisierte Schnittstellen und bewährte Prozesse für sicherheitskritische Systeme auch im Kontext von KI-Algorithmen einzusetzen.
Fazit: So bringen Sie neuronale Netze am besten aufs Steuergerät
Neuronale Netze haben sich von einer theoretischen Idee zu einer Schlüsseltechnologie entwickelt, die heute in zahlreichen Anwendungen eingesetzt wird. Ihre effiziente Entwicklung und ihr schnelles Training machen sie attraktiv, doch für Anwendungen wie virtuelle Sensoren kann ihre Integration in ressourcenbeschränkte Embedded-Systeme wie Steuergeräte eine Herausforderung darstellen.
Die direkte Verwendung von C-/C++-Code ist dabei ein zentraler Baustein: Sie ermöglicht effiziente, deterministische und standardkonforme Implementierungen, die für sicherheitskritische Anwendungen unabdingbar sind. Mit der richtigen Toolchain lassen sich entsprechende neuronale Netze so nahtlos in etablierte Entwicklungsprozesse integrieren und als standardkonforme Software-Komponenten produktiv einsetzen.
Ausblick: Warum ist das Thema gerade jetzt so wichtig?
Die Automobilindustrie befindet sich in einem fortlaufenden Wandel: Elektrifizierung, autonomes Fahren und vernetzte Fahrzeuge stellen immer höhere Anforderungen an die Intelligenz und Flexibilität der Systeme. Edge AI ist dabei der Schlüssel, um Daten direkt dort zu verarbeiten, wo sie entstehen, und schnelle, lokale Entscheidungen zu ermöglichen. Gleichzeitig steigen die Anforderungen an Sicherheit, Normenkonformität und Effizienz.
Wer diese Herausforderungen meistert, legt den Grundstein für die nächste Generation von Fahrzeugfunktionen und verschafft sich einen entscheidenden Wettbewerbsvorteil.
Neugierig auf mehr?
Gerne bieten wir Ihnen eine interaktive Session mit unseren Experten an, in der wir tief in Ihre Fragestellungen eintauchen, uns fachlich austauschen und anhand einer Demo gemeinsam konkrete Anwendungsfälle beleuchten. So erhalten Sie individuelle Einblicke, die genau auf Ihre Bedürfnisse zugeschnitten sind.
Über die Autoren
Lars Wallbaum
Software Developer TargetLink, dSPACE
Sören Grannemann
Product Manager Code Generation, dSPACE