Modellbasierte Entwicklung bietet viele Möglichkeiten
Die modellbasierte Entwicklung ist Teil eines Entwicklungsprozesses, z. B. des V-Modells. Hier wird mit der Beschreibung der Anforderungen an Funktionen oder Algorithmen gestartet, die das neue System abdecken soll. Schritt für Schritt werden aus einer ersten groben Beschreibung zunächst Detailanforderungen abgeleitet und anschließend ein Modell erstellt. Im weiteren Verlauf wird dann gegen die Anforderungen getestet. Bei der modellbasierten Entwicklung werden die Systemanforderungen mathematisch modelliert. Das dadurch beschriebene Modell wird dann in der Simulation getestet. Im Anschluss wird daraus – per Knopfdruck – der Programmcode erzeugt. Das Ziel: Am Ende der Entwicklung soll der C-Code für eine Reglerfunktion erzeugt und getestet sein.
Mit der modellbasierten Entwicklung können sehr verschiedene Anwendungsfälle abgedeckt werden. Bei dSPACE stehen häufig die Entwicklung, die Anpassung oder die Erweiterung von Regelfunktionen in elektronischen Steuergeräten im Vordergrund.
Im Rahmen eines Entwicklungsprojekts müssen Funktionen oder Geräte entwickelt, simuliert und getestet werden. Dabei kommen von der ersten Frage, was das System können soll, über die Erstellung von Prototypen, mit denen Funktionen ausprobiert werden (Rapid Control Prototyping, RCP), über die dazugehörigen Modelltests (Model-in-the-Loop, MIL) bis zu den Tests der Software und Hardware des fertigen Produkts (Software-in-the-Loop (SIL), Hardware-in-the-Loop (HIL)), viele verschiedene Methoden und Techniken zum Einsatz.
Software-Architektur entwickeln und mit MIL testen
Der erste Schritt in der modellbasierten Entwicklung ist immer die Beschreibung der Problemstellung: Welche Anforderungen habe ich? Was soll ein neues System können, welche Funktion soll entwickelt werden oder muss ein vorhandener Regelalgorithmus überarbeitet werden? Mit Hilfe verschiedener Software-Produkte werden ausführbare Modelle erstellt, mit denen diese Funktionen entwickelt, programmiert und getestet werden können.
Mit der Methode Model-in-the-Loop (MIL) kann mit Hilfe von MATLAB®/Simulink® ein Modell des technischen Systems am Rechner erstellt und anschließend simuliert werden, um erste Schlüsse über das System zu ziehen.
Rapid Control Prototyping (RCP): Testen in realer Umgebung
Mit Rapid Control Prototyping werden Funktionen oder Regler eines Steuergeräts entwickelt und getestet – und zwar in der realen Umgebung. In einem vorhandenen Testaufbau, zum Beispiel einem Fahrzeug, ersetzt das Echtzeit-Prototyping-System den Regler oder das Steuergerät.
Das Prototyping-System kann entweder als vollständiger Ersatz des vollen Zielsteuergerätefunktionsumfanges (Full passing) dienen oder als Erweiterung zum Zielsteuergerät, um neue zusätzliche Reglerfunktionen zu entwickeln (Bypassing).
Das RCP-System bietet eine hohe Rechenleistung, zahlreiche unterschiedliche Schnittstellen und erlaubt durch einen einfachen Zugriff auf die Plattform schnelle Entwicklungszyklen und effizientes Daten-Monitoring zur Laufzeit. Damit sind die Anwendungsmöglichkeiten für das Entwickeln und Testen deutlich größer, als würde man das eigentliche Steuergerät nutzen.
Code-Generierung: Automatische Code-Generierung TargetLink
Die Funktionen sind getestet und laufen. Am Ende wird ein Seriencode benötigt, der diese im Steuergerät abbildet. Die Seriencode-Generierung ist der logische Schritt für das Überführen von Modellen in einen effizienten, serienreifen Code. Hier bietet dSPACE eine breite Produktpalette, die bei diesem Prozess unterstützt. Vielseitige Optionen für die Code-Konfiguration stellen sicher, dass der Seriencode mit Einschränkungen auf Prozessorebene umgehen kann.
HIL-Test: Hardware-in-the-Loop-Simulation
Kurz gesagt: Beim Hardware-in-the-Loop-Test wird das reale Steuergerät mit einem Echtzeitsimulationssystem verbunden, dass die reale Umgebung des Steuergeräts mit Hilfe eines Simulationsmodells nachbildet. Durch die Interaktion zwischen Simulationssystem und Prüfling lassen sich Regelschleifen (in-the-Loop) schließen und neben der reinen Software-Funktionalität lässt sich auch das Systemverhalten validieren. Eine typische Aufgabe ist die Integration einer neuen Steuergerätefunktion in ein Fahrzeug. Der HIL-Test bietet den Vorteil, dass mit simulierten Fahrzeugen und Umgebungen auch sicherheitskritische Situationen ohne Gefahr für den Nutzer unter reproduzierbaren Bedingungen getestet werden können.
SIL: Software-in-the-Loop
Software-in-the-Loop (SIL)-Tests können zu fast allen Entwicklungsphasen innerhalb des Entwicklungs- und Realisierungsprozesses genutzt werden. Von frühen Einzelfunktionstests bis hin zur umfassenden Validierung ganzer Systeme. Für diese SIL-Tests wird nur die reine Software, d. h. der C-Code der Funktion, benötigt. Die reale Hardware eines Steuergeräts, auf der später der Code im Fahrzeug ausgeführt wird, ist für diese Testphase nicht notwendig. Die Simulation und Testdurchführung können auf ganz normalen PCs (oder auch in der Cloud) durchgeführt werden.
Die Tests können bereits in einer frühen Phase des Entwicklungsprozesses starten. Eventuell vorhandene Fehler im entwickelten Funktionscode können somit sehr früh entdeckt und behoben werden. Dadurch wird die Entwicklung der Steuergeräte beschleunigt. Außerdem können Kosten für aufwendige Hardware-Testverfahren eingespart werden.
SIL-Tests werden mit Hilfe von Simulationsplattformen auf normalen PCs durchgeführt. Die zu entwickelnden Funktionen können so auf Herz und Nieren getestet werden – und das so viel und so oft der Entwickler möchte bzw. muss. Die Testumgebung simuliert dabei sowohl die zu testende Regelfunktion als auch das zu regelnde System, z. B. ein Fahrzeug auf einer Straße. Mit SIL-Tests kann bereits ein Großteil an Fehlern erkannt und behoben werden, lange bevor das reale System, z.B. das Fahrzeug, verfügbar ist.