Große Simulink Modelle mit Bus Objects effizienter gestalten
Sebastian Bewersdorf, TESIS DYNAware
In der Automobilindustrie ist die Simulation auf Basis von MATLAB® und Simulink® weit verbreitet. Je nach Anwendung kommen unterschiedlich komplexe Modelle zum Einsatz. Fahrzeugdynamik, Elektrik, Bus-Kommunikation und andere Domänen werden abgebildet. Gesamtmodelle sind häufig in Komponenten unterteilt, um die Baugruppen eines Fahrzeugs separat modellieren und in verschiedenen Komplexitätsstufen einbinden zu können. Beim Zusammenstellen des Gesamtmodells steht dabei im Fokus, dass Komponenten wiederverwendet werden können und sich unterschiedliche Modelle einer Baugruppe gegeneinander austauschen lassen. Bei allen Unterschieden müssen Komponentenmodelle Eins gemeinsam haben: eine einheitliche Schnittstellendefinition. Der klassische Ansatz, Subsysteme über lokal erzeugte Vektor- oder Bussignale zu verbinden, stößt in der abteilungsübergreifenden Modellbildung an Grenzen. Bei einer großen Fülle an Modellen kommt es schnell zu Inkompatibilitäten zwischen Komponenten aufgrund fehlender oder falsch interpretierter Signale.
Simulink Bus Objects helfen dabei, diese Herausforderung zu beherrschen. Mit ihnen ist es möglich, alle Schnittstellensignale außerhalb des Modells zu definieren und versionierbar zu speichern. Mit Bus Objects als Port-Datentyp wird automatisch die dort anliegende Bus-Struktur geprüft. Durch weniger dynamische Port-Dimensionen läuft der Model Update schneller ab. Die Trennung von Schnittstellendefinition und Komponentenmodellierung unterstützt zudem die Rollenverteilung von Modellarchitekten und Komponentenentwicklern.
Ist die Schnittstellenkonformität sichergestellt, stößt man mit zunehmender Größe der Modelle auf eine andere Problematik: Performance. Moderne Fahrzeuge verfügen über Kommunikations-Busse mit mehreren Tausend Signalen. Für eine flexibel einsetzbare Modellstruktur ist es notwendig, diese Busse mit nahezu allen Signalen auch im virtuellen Gesamtfahrzeugmodell abzubilden. Sehr breite Bus-Signale müssen durch mehrere Subsystem-Ebenen gezogen und mit Bus Selector oder Assignment bearbeitet werden, was sich nachteilig auf Modellupdate und -laufzeit auswirkt.
Auch hierbei hilft der Einsatz von Bus Objects. Zusammen mit Data Store Memory lassen sich bus-ähnliche Datenstrukturen im Hintergrund des Modells erzeugen. Diese Datenstrukturen werden über Data Store Write/Read analog zum Bus Assignment und Selector bearbeitet. Für den Komponentenmodellierer ändert sich dadurch wenig. Im Gesamtmodell hingegen werden die Komponenten nun nicht mehr „verdrahtet“. Somit kann und sollte der Modellarchitekt die Reihenfolge der Komponenten selbst definieren und über Subsystem-Prioritäten festlegen.
Sehr umfangreiche Busse werden so mit einem einzigen Block erzeugt. Einzelne Signale können an jeder Stelle des Modells gelesen und geschrieben werden, ohne den ganzen Bus über Subsystem-Grenzen zu senden. Die Entkopplung von Subsystemen reduziert die Gefahr des Auftretens von algebraischen Schleifen. Neben Vorteilen in der Modell-Entwicklung wird eine deutliche Steigerung der Modell-Performance erzielt. Gleichzeitig ist die Schnittstellenkonformität von Komponenten sichergestellt. Die Praxistauglichkeit dieser Technologie wurde bereits in Kundenprojekten nachgewiesen: Komponentenmodelle lassen sich abteilungsübergreifend einfacher austauschen und werden für verschiedenste Anwendungen am PC oder im HiL-Prüfstand kombiniert.
Aufgezeichnet: 12 Mai 2015
Ausgewähltes Produkt