E-Book

Kapitel 2

Nutzung von KI zur Entwicklung und Bereitstellung von Embedded Algorithmen


Bei einem klassischen Ansatz zur Algorithmenentwicklung würde man ein Programm schreiben, das Eingaben verarbeitet, um eine gewünschte Ausgabe zu erzeugen. Aber manchmal kommt es vor, dass die Gleichungen zu komplex sind, um sie aus den wissenschaftlichen Grundprinzipien abzuleiten, dass sie zu rechenintensiv sind, um implementiert zu werden, oder dass eine gewünschte Messung unmöglich oder zu kostspielig ist, um sie tatsächlich durchzuführen.

In diesen Fällen empfiehlt es sich, stattdessen ein KI-Modell zu erstellen. Embedded KI-Algorithmen können Folgendes unterstützen:

  • Regelungssysteme
  • Vorausschauende Instandhaltung
  • Fahrerassistenzsysteme (ADAS)
  • Pfadplanung
  • Verarbeitung natürlicher Sprache
  • Signalverarbeitung
  • Virtuelle Sensoren
  • Objekterkennung
Abschnitt

Erstellen eines virtuellen KI-Sensors: Beispiel zur Schätzung des Akkuladezustands

Lithium-Ionen-Batterien sind heute allgegenwärtig und man findet sie in tragbaren elektronischen Geräten, Mobiltelefonen, Laptops, Elektrofahrzeugen und Smart Grids. Für den sicheren und effizienten Betrieb dieser Batterien sorgen Batteriemanagementsysteme (BMS). Eine der Hauptaufgaben des BMS stellt die Schätzung des Ladezustands (State of Charge, SOC) dar.

Aus verschiedenen Gründen ist es in der Praxis nicht möglich, einen einsatzfähigen Sensor zur direkten Messung des SOC zu bauen. Das stellt branchenübergreifend eine Herausforderung für viele Systeme dar, nicht nur für Batterien.

Die Sensoren in vielen Anwendungen können wie folgt beschrieben werden:

  • Ungenau
  • Teuer
  • Langsam
  • Rauschend
  • Fragil
  • Unzuverlässig
  • In der Praxis nicht umsetzbar

Anstelle eines physischen Sensors können Sie daher auch einen virtuellen Sensor erstellen.

Ein Diagramm zeigt einen engen Zusammenhang zwischen den von einem Motor erfassten Daten und der Ausgabe eines virtuellen Sensors auf KI-Basis.

Emissionen eines realen Motors im Vergleich zur Ausgabe eines virtuellen KI-Sensors, der die NOX-Emissionen schätzt. (Bildquelle: Renault)

Eine naheliegende Möglichkeit ist die Schätzung des SOC mithilfe eines erweiterten Kalman-Filters (EKF). Ein EKF kann extrem genau sein, erfordert aber ein nichtlineares mathematisches Modell einer Batterie, das nicht immer verfügbar oder realisierbar ist. Zudem kann ein Kalman-Filter durchaus rechenintensiv sein, und wenn der Ausgangszustand falsch oder das Modell nicht korrekt ist, können die Ergebnisse ungenau sein.

Eine Alternative besteht darin, einen virtuellen Sensor mithilfe von KI zu entwickeln. Die KI ist unter Umständen in der Lage, besser zu generalisieren als ein Kalman-Filter und damit genaue Ergebnisse zu liefern, wenn sie mit den richtigen Daten trainiert wird.

Ein KI-Modell des Ladezustands (SOC) nimmt Spannung, Strom und Temperatur auf und ermittelt einen geschätzten Ladestand.

Um einen KI-basierten virtuellen Sensor zu erstellen, benötigen Sie Daten, um Ihr KI-Modell zu trainieren. Wenn Sie die Batteriewerte in einer kontrollierten Umgebung im Labor erfassen, können Sie die SOC-Werte durch eine Integration der Ströme (die sogenannte Coulomb-Zählung) genau berechnen.

Auch diese Methode ist einfach und rechenfreundlich. Könnte man es also in einem BMS verwenden, um den SOC zu schätzen? Das Verfahren ist allerdings fehleranfällig, wenn es nicht in einer Laborumgebung durchgeführt wird, in der der Strom exakt gemessen werden kann, und eignet sich daher nicht für die Verwendung in Ihrem BMS zur Schätzung des SOC. Es ist jedoch eine effiziente Möglichkeit, die für den Aufbau eines fehlerresistenten virtuellen Sensors erforderlichen Daten zu erhalten.

Sobald Sie Ihre sorgfältig ermittelten Eingangs-/Ausgangsdaten gesammelt haben, können Sie diesen Datensatz verwenden, um ein KI-basiertes virtuelles Sensormodell zu trainieren, das als Teil des Batteriemanagementsystems bereitgestellt werden kann.

Zur Erstellung und Integration eines KI-Modells in Simulink gibt es drei Möglichkeiten:

1. Training im Machine Learning Framework in MATLAB

2. Importieren des Modells aus TensorFlow oder PyTorch

3. Training im Deep Learning Framework in MATLAB

Das KI-Modell besitzt den Vorteil, dass es direkt anhand von Messdaten trainiert wird. Die Trainingsdaten erfassen die komplexen Zusammenhänge zwischen dem Ladezustand und Eingaben wie Strom, Spannung, Temperatur und dem gleitenden Durchschnitt von Strom und Temperatur, wodurch diese Erkenntnisse in das Modell einfließen.

Infolgedessen könnte das KI-Modell nicht nur schneller, sondern auch genauer sein als ein auf Grundprinzipien basierendes mathematisches Modell.

Sobald Sie in die Erstellung eines qualitativ hochwertigen Trainingsdatensatzes einsteigen, können Sie mit MATLAB® oder anderen Tools mehrere KI-Modelle mithilfe verschiedener Techniken des Machine Learning oder Deep Learning erstellen. Sie können herausfinden, welches der Modelle am besten abschneidet, indem Sie die verschiedenen Modelle in Simulink integrieren und im direkten Vergleich auswerten.

Hinweis zur Datenbeschaffung

Das Sammeln von geeigneten Trainingsdaten ist mitunter sehr mühsam und aufwendig. Im Bereich der KI haben öffentlich verfügbare Datensätze die KI-Forschung vorangetrieben. Mithilfe derselben Datensätze können Wissenschaftler auf einfache Weise Vergleiche anstellen und Benchmarks für verschiedene KI-Techniken durchführen. Gemeinsame Datensätze und Modelle erleichtern dabei die Reproduzierbarkeit und fördern das Vertrauen in die KI.

In der Industrie stammen die Daten jedoch häufig aus sorgfältig kuratierten Datensätzen, die manchmal durch spezielle Prüfstände in der realen Welt oder komplexe realitätsnahe Simulationen anhand der wissenschaftlichen Grundprinzipien erzeugt werden. Diese Experimente können kostspielig und zeitaufwändig sein, doch kann der Wert eines gut trainierten KI-Modells die Vorabinvestition wert sein. Ingenieure mit dem entsprechenden Fachwissen können bei der Erstellung von KI-Modellen einen Mehrwert schaffen, indem sie Experimente entwickeln, mit denen hochwertige Trainingsdaten erzeugt werden.

Abschnitt

Simulieren und Testen des KI-basierten virtuellen Sensors

Sobald Sie Ihre KI-Modelle trainiert haben, können Sie diese in Simulink integrieren und testen. Mithilfe von Simulink können Sie herausfinden, welches KI-Modell am besten abschneidet und feststellen, ob es andere Alternativen, wie den nicht KI-basierten EKF-Ansatz, übertrifft. Wie bereits erwähnt, erfordert der Kalman-Filter ein internes Batteriemodell, das möglicherweise nicht verfügbar ist.

Dieses Beispiel umfasst ein EKF- und drei KI-Modelle, die alle mithilfe derselben Daten, aber mit unterschiedlichen KI-Ansätzen trainiert wurden:

  • Feingliedriger Regressionsbaum: Ein Ansatz des Machine Learning, bei dem ein Baum mit immer spezifischeren Indikatorwerten zur Interpretation der Eingabedaten erstellt wird. Ein feingliedriger Regressionsbaum hat viele kleine Blätter für eine sehr flexible Antwortfunktion.
  • Feed-Forward-Netzwerk (DL-FFN): Ein lernfähiges Deep-Learning-System, das mithilfe von miteinander verbundenen Knoten, die Eingaben clustern oder klassifizieren, dazulernt. Während der Inferenz bewegen sich die Informationen vorwärts durch das Netzwerk, niemals rückwärts.
  • Long Short-Term Memory-Netz (DL-LSTM): Ein adaptives und mithilfe von miteinander verbundenen Knoten arbeitendes Deep-Learning-System, das Rückmeldungen über das Netz nutzt, um nicht nur einzelne Eingaben, sondern zusammenhängende Sequenzen von Eingaben zu verarbeiten.
 Ein Simulink-Screenshot mit vier Blöcken, die die gleichen Eingaben erhalten und zum Vergleich unterschiedliche Ausgaben erzeugen.

Die virtuellen Sensormodelle – EKF, ML, DL-FFN und DL-LSTM – werden in Simulink integriert, um die Leistung zu vergleichen. Die Modelle berücksichtigen die Spannung, den Strom und die Temperatur und schätzen den Ladezustand der Batterie.

Zur Evaluierung der Modelle werden simultane Parallelvergleiche in Simulink durchgeführt. Visualisieren und messen Sie die Genauigkeit und die Anpassungsergebnisse der einzelnen Modelle an einen Validierungsdatensatz. Mithilfe dieser Informationen können Sie feststellen, ob Ihre Modelle die Genauigkeitsanforderungen erfüllen, bevor Sie sie auf der Systemhardware bereitstellen.

Ein Simulink-Screenshot mit einem Diagramm der Ausgaben der vier virtuellen Sensormodelle. Die Linien überschneiden sich, aber die Linie für die EKF-Modellergebnisse weicht am meisten ab. Auch die Linie für ML-Ausgänge weicht von den anderen ab.

Stellen Sie die Ausgaben der vier virtuellen Sensormodelle mithilfe von Simulink in einem einzigen Diagramm dar, um die Unterschiede in puncto Genauigkeit zu verstehen.

Sie können Ihre KI-Modelle auch zusammen mit anderen Algorithmen für eine Simulation auf Systemebene verwenden. Sie können Ihr KI-Modell beispielsweise als Teil einer Gesamtsystem-Simulation laufen lassen, bei der das BMS-Subsystem zusammen mit anderen Subsystemen, wie dem Motor oder dem Getriebe, arbeitet. Darüber hinaus lassen sich Ihre Modelle und andere integrierte Komponenten testen und optimieren, um sicherzustellen, dass sie zusammenarbeiten und die Anforderungen auf Systemebene erfüllen.

Das Schema eines Batteriemanagementsystems in Simulink zeigt Eingänge und Ausgänge, die drei Blöcke miteinander verbinden: Zustandsmaschine, Schätzung des Ladezustands (State-of-Charge, S O C) und Ausgleichslogik.

Verwenden Sie die Blockbibliotheken der Statistics and Machine Learning Toolbox™ und der Deep Learning Toolbox, um KI-Modelle des SOC_Estimation-Blocks für Tests auf Systemebene in Simulink zu integrieren.

Abschnitt

Bereitstellung eines Embedded KI-Modells

Der nächste Schritt ist das Testen Ihres KI-Modells auf der Hardware, auf der es schließlich bereitgestellt werden soll. In diesem Schritt können Sie eine Evaluierung der Modellleistung unter realen Bedingungen durchführen.

Nutzen Sie MATLAB- und Simulink-Codegenerierungstools, um bibliotheksfreien C/C++ Code für Deep-Learning-Netzwerke oder Machine-Learning-Modelle zu erzeugen. Implementieren Sie diesen Code auf Ihrem Prozessor, um seinen Betrieb als Teil eines Processor-in-the-Loop-Tests (PIL) zu erproben, bei dem der Prozessor mit der simulierten Anlage (die mit Simscape™- und Simscape Electrical™-Komponenten entwickelt wurde) verbunden ist, die in diesem Fall die simulierte Batteriedynamik darstellt.

Ein Diagramm eines KI-Modells, das in Code umgewandelt, auf einem Chip bereitgestellt und in einer simulierten Testumgebung getestet wird.

Generieren Sie den Code für Ihr KI-Modell und stellen Sie ihn auf dem Prozessor für Processor-in-the-Loop-Tests bereit.

Nachdem das Modell die PIL-Tests durchlaufen hat, ist es für die Bereitstellung auf der Produktionshardware freigegeben. Diese Hardware wird das Batteriemanagement-System im Fahrzeug steuern.

Ein Prozessdiagramm eines KI-Modells, das in Code umgewandelt, auf einem Chip bereitgestellt und in einem Fahrzeug getestet wird.

Generieren Sie den Code für Ihr KI-Modell und stellen Sie ihn auf Hardware für Tests in einem Fahrzeug bereit.

Abschnitt

Bewertung der Leistung

Die PIL-Tests zeigen leistungsbezogene Zielkonflikte auf, die für Ihr reales System von Bedeutung sein werden. So bietet das feingliedrige Regressionsbaummodell zwar eine zusätzliche Interpretierbarkeit, die bei der Fehlersuche hilfreich sein kann, aber dessen Größe und Genauigkeit möglicherweise nicht im Rahmen der Projektanforderungen liegen. In diesem Fall könnte ein Feed-Forward-Netzwerk die bessere Wahl sein.

Weitere relevante Attribute sind:

  • Inferenzgeschwindigkeit, d. h. die Zeit, die das KI-Modell benötigt, um eine Vorhersage zu berechnen
  • Trainingsgeschwindigkeit, d. h. die Zeit, die für das Training des KI-Modells mithilfe von Trainingsdaten benötigt wird
  • Vorverarbeitungsaufwand, da bestimmte Modelle die Berechnung zusätzlicher Merkmale, wie etwa gleitende Durchschnitte, erfordern, um Prädiktor-Informationen über die Vergangenheit zu erhalten
Tabelle der Leistungsabwägungen mit vier Spalten für jedes Modell, in der Trainingsgeschwindigkeit, Interpretierbarkeit, Inferenzgeschwindigkeit, Modellgröße und Genauigkeit verglichen werden. Das DLL STM-Modell weist zum Beispiel eine langsame Inferenzgeschwindigkeit, eine erhebliche Modellgröße und eine hohe Genauigkeit auf.

Vergleich wichtiger Attribute für verschiedene Techniken zur Modellierung virtueller Sensoren. DL-FNN zeichnet sich durch eine hohe Inferenzgeschwindigkeit und hohe Genauigkeit aus, erfordert jedoch einigen Vorverarbeitungsaufwand, benötigt mehr Zeit zum Trainieren und ist nicht interpretierbar.

Abschnitt

Komprimierung eines KI-Modells

Die Modellkomprimierung ist eine Abwägung, die Analyse, Verständnis, Iteration und Optimierung erfordert. Für Entwickler von Embedded Software ist dies jedoch oft eine Notwendigkeit, da ein KI-Modell in manchen Fällen einen Umfang hat, der die Speicherkapazität der Hardware übersteigt.

In diesem Zusammenhang untersuchen Ingenieure Möglichkeiten zur Reduzierung des Modellumfangs mit Techniken wie Pruning, Quantisierung und Festkomma-Konvertierung.

Eine neuartige Methode zur Reduzierung der Modellgröße in der Deep Learning Toolbox™ komprimiert ein Deep Learning-Netzwerk mithilfe von Projektion. Diese Technik ermöglicht es uns, einen Mittelweg zwischen Modellgröße, Inferenzgeschwindigkeit und Genauigkeit zu finden. Bei diesem Beispiel kam es zu keinem signifikanten Verlust an Genauigkeit. Durch die Komprimierung mithilfe von projizierten Schichten konnte der Speicherbedarf um 91% reduziert und die Inferenzgeschwindigkeit verdoppelt werden.

Eine Tabelle vergleicht unkomprimierte und komprimierte DLL STM-Modelle. Das komprimierte Modell ist schneller und viel kleiner als das unkomprimierte Modell, hat aber nicht an Genauigkeit eingebüßt.

Durch Komprimierung kann ein extrem genaues, aber großes und langsames Modell in ein kleineres und schnelleres Modell umgesetzt werden, ohne dabei an Genauigkeit zu verlieren.

Abschnitt

Überprüfung eines Kunden-BMS für ein Elektrofahrzeug

Gotion, ein Unternehmen, das sich auf moderne Energiespeichertechnologien konzentriert, hat sich zum Ziel gesetzt, ein neuronales Netzmodell zur Schätzung des Ladezustands beim Laden von Elektrofahrzeugen zu entwickeln. Das Modell musste mit einem Genauigkeitsspielraum von 3% arbeiten und so klein sein, dass es für den Produktionseinsatz geeignet war. Zudem musste das Modell in einem Fahrzeugtest verifiziert werden.

Die Deep Learning Toolbox bot dem Team einen Low-Code-Ansatz für das Training eines neuronalen Netzes mithilfe historischer Zell-Ladedaten. Das Unternehmen verwendete einen iterativen Workflow, um das Modell zu simulieren, zu verbessern und zu validieren. Die Ingenieure integrierten das Modell in Simulink und testeten es zusammen mit dem übrigen System. Anhand von Simulink Test™ wurde überprüft, ob das Modell die Genauigkeitsanforderungen während der Simulation erfüllt.

Sobald sie mit der Leistung des Modells zufrieden waren, generierten sie automatisch Code für HIL-Tests und Tests im Fahrzeug.

Dabei stellten die Ingenieure die wichtigsten Anwendungsvorteile von MATLAB und Simulink heraus:

  • Integration von KI in den bestehenden Verifikations-- und Validierungs-Workflow mithilfe der Requirements Toolbox, Deep Learning Toolbox, Simulink, Embedded Coder und Simulink Test
  • Durchführung des gesamten Workflows – von der Anforderungserfassung bis zur Modellentwicklung, Systemintegration, Modellbereitstellung und Produktionshardware
  • Bestätigung durch Simulation und HIL-Tests zum Nachweis, dass das Modell die Genauigkeitsanforderungen vor der Bereitstellung erfüllen würde
  • Automatisch generierter Code aus dem neuronalen Netz mit geringem Platzbedarf (< 2 KB ROM, < 100 B RAM)
Anhand von vier Diagrammen lässt sich erkennen, dass der angestrebte Ladezustand und der geschätzte Ladezustand unter verschiedenen Bedingungen wie Spannungs-, Strom- und Temperaturänderungen annähernd gleich sind.

Simulink Test ermöglicht die Überprüfung der Genauigkeit auf Systemebene unter verschiedenen Bedingungen, einschließlich solcher, die sich in realen Tests nur schwer simulieren lassen, wie beispielsweise Tests bei extremer Kälte.

Testen Sie Ihr Wissen