Newsletters

  • Vertrieb kontaktieren

Verifizieren von Beschleunigungsmodellen mithilfe des Model Advisor

Von Nishaat Vasi, MathWorks

In dem Maße, in dem System- und Software-Designs zunehmend komplexer werden und die geographischen Distanzen zwischen einzelnen Entwicklerteams wachsen, steigt auch der Bedarf an einheitlichen Modellierungsprozessen. Einzelne Teams sind häufig für eine ganz bestimmte Systemkomponente zuständig und diese Teams befinden sich nicht unbedingt in derselben Stadt, manchmal noch nicht einmal im selben Land. Mit Modellierungsstandards können Teams an unterschiedlichen Standorten effektiv beim Entwurf von komplexen Modellen zusammenarbeiten. Hinzu kommt, dass OEMs häufig darauf drängen, dass die Zulieferer ein bestimmtes Modellierungskonstrukt oder -terminologie für die Algorithmen-Entwicklung verwenden, um die Integration und Zertifizierung des Modells zu erleichtern. Des Weiteren tragen einheitliche Modellierungsverfahren dazu bei, dass Entwicklerteams bestimmte Richtlinien einhalten können, die in Industriestandards, z. B. den MAAB-Stilrichtlinien, ISO 26262, IEC 61508 und DO-178C vorgegeben sind.

Der Model Advisor in Simulink Verification and Validation™ unterstützt die Modellierungsstandards, indem ein Simulink®-Modell hinsichtlich Inkonsistenzen analysiert wird und zeigt detaillierte Empfehlungen für die Problemlösung auf. Wenn die Prüfungen auf großen Systemen ausgeführt werden, nimmt dies trotz Automatisierung sehr viel Verarbeitungszeit und Aufwand in Anspruch. Wenn z. B. überprüft werden soll, ob die Modellkomponenten gut zueinander passen, muss ein Unternehmen möglicherweise für alle Subsysteme spezielle Model Advisor-Prüfungen ausführen. Wenn die Prüfung für ein Subsystem negativ ausfällt, müssen alle Arbeiten an den anderen Komponenten ebenfalls gestoppt werden.

Eine Lösung besteht darin, den Umfang der Model Advisor-Analyse auf bestimmte Elemente des Modells zu beschränken. Mit dem Systemmodell eines Automobils als Beispiel wird in diesem Artikel gezeigt, wie die Ausschluss- und Hervorhebungsfunktionalität in Simulink Verification and Validation dazu beitragen kann, die Zeit zu reduzieren, die für das Analysieren und Beheben von Inkonsistenzen in den Modellen benötigt wird.

Ausführen von Prüfungen am Systemmodell eines Automobils

Wir gehen davon aus, dass wir ein Simulink-Modell eines Autos entwickeln, dass Subsysteme für die Getriebesteuerung, den Motor und die Schaltlogik enthält (Abb. 1). Unser Team ist verantwortlich für den Entwurf und das Testen des Schaltalgorithmus. Die Teams, die für die anderen Komponenten verantwortlich sind, befinden sich in verschiedenen Städten. Jedes Team hat Zugriff auf das gesamte Systemmodell.

Abb. 1. Systemmodell eines Automobils.
Abb. 1. Systemmodell eines Automobils.

Wir haben unser Stateflow®-Diagramm „shift_logic“ geändert und wollen die Änderungen in das zentrale Repository einstellen. Mit Model Advisor führen wir Prüfungen der Modellierungsstandards für das gesamte Modell „sf_car_demo“ durch. Model Advisor gibt eine Warnung zurück: „The following discrete controllers contain prohibited blocks: sf_car_demo/vehicle/wheel_speed“ (Die folgenden diskreten Controller enthalten unzulässige Blöcke: sf_car_demo/vehicle/wheel_speed") (Abb. 2).

Abb. 2. Model Advisor-Bericht mit Warnmeldung.
Abb. 2. Model Advisor-Bericht mit Warnmeldung.

Da der Bericht eine Warnmeldung enthält, können wir Änderungen nicht in das zentrale Repository eingestellen, was uns dazu zwingt, weitere Nachforschungen anzustellen. Die Warnung verweist auf einen Block im Fahrzeugsubsystem; da wir aber keinen Schreibzugriff haben, können wir diese Komponente nicht ändern. Auf der einen Seite haben wir möglicherweise ein schwerwiegendes Entwurfsproblem entdeckt. Auf der anderen Seite haben die Entwickler des Fahrzeugsubsystems diese Funktionalität möglicherweise absichtlich als Teil des Anforderungskatalogs integriert. Wenn es sich bei dem fehlerhaften Block um eine Anforderung handelt, können wir mit der Arbeit an den fehlerfreien Komponenten fortfahren, wenn wir den fehlerhaften Block aus unserer Model Advisor-Analyse ausschließen. Model Advisor generiert dann einen Bericht, der keine Warnmeldungen enthält.

Mit der Ausschlussfunktion in Model Advisor können wir dies in drei Schritten umsetzen:

  1. Auszuschließende Blöcke auswählen
  2. Grund für den Ausschluss erfassen
  3. Analyse erneut ausführen

Auswählen der auszuschließenden Blöcke

Um das auszuschließende Modellelement oder -subsystem auszuwählen, klicken wir mit der rechten Maustaste auf „right-click sf_car_demo/Vehicle/wheel_speed“ und wählen die Option aus, mit der dieser bestimmte Block aus allen Model Advisor-Prüfungen ausgeschlossen wird (Abb. 3). In Model Advisor haben wir auch die Möglichkeit, den Umfang der Ausschlüsse bestimmen.

Abb. 3. Auswählen der Elemente, die aus der Model Advisor-Analyse ausgeschlossen werden sollen.
Abb. 3. Auswählen der Elemente, die aus der Model Advisor-Analyse ausgeschlossen werden sollen.

Erfassen des Grunds für den Ausschluss

Wir definieren Einzelheiten des Ausschlusses und erläutern den Grund für den Ausschluss im Model Exclusion Editor (Abb. 4). Der Grund wird in den automatisch erstellten Model Advisor-Bericht kopiert. Die Ausschlüsse werden in einer XML-Datei gespeichert (in unserem Beispiel sf_car_demo_exclusions.xml) und bleiben weiterhin mit dem relevanten Modell verknüpft. Wir können den Namen und den Speicherort der XML-Datei im Exclusion Editor ändern.

Abb. 4. Model Advisor Exclusion Editor.
Abb. 4. Model Advisor Exclusion Editor.

Erneutes Ausführen der Analyse und Hervorheben der Ergebnisse

Beim erneuten Ausführen der Model Advisor-Analyse stellen wir fest, dass der Integrator-Block „Raddrehzahl“ grau hervorgehoben ist, was darauf hinweist, dass dieser Block von der Analyse ausgeschlossen ist. Mit Model Advisor können wir die Analyseergebnisse im Modell hervorheben, was eine modellzentrierte Ansicht darauf erlaubt, welche Ergebnisse Blöcke, Diagramme, Subsysteme und andere Modellelemente in den Prüfungen erzielt haben. Der Model Advisor berichtet, dass der Integrator-Block „Raddrehzahl“ von der Analyse ausgeschlossen wurde (Abb. 5). Da der Bericht nun keinerlei Warnungen mehr enthält, können wir das Modell in das Repository einstellen.

Abb. 5. Model Advisor-Analyseergebnisse.
Abb. 5. Model Advisor-Analyseergebnisse.

Übertragen von Ausschlüssen auf andere Workflows

Die Ausschlussfunktion von Model Advisor spart Entwicklungszeit, die wir andernfalls für das Lösen bekannter Probleme verwenden würden, und unterstützt einen komponentenbasierten Workflow. In unserem Beispiel haben wir einen einzelnen Block ausgeschlossen – die Zahl der Elemente, die Sie aus der Modell Advisor-Ausführung ausschließen können, ist jedoch unbegrenzt. Ein unmittelbarer Vorteil ist die schnellere Analysezeit, wobei vorrangig jene Simulink- und Stateflow-Modellkomponenten verifiziert werden, die am relevantesten für Ihr Team sind. Ein weiterer Vorteil ist die kürzere Kompilierungszeit für größere Modelle. Im Allgemeinen gilt, dass die Kompilierungszeit proportional zur Komplexität des Modells steigt. Durch die Möglichkeit, einzelne Teile des Modells selektiv zu prüfen, kann die Ausführung des Model Advisors beschleunigt werden.

Ein zusätzlicher Vorteil ist, dass urheberrechtlich geschütztes Eigentum ausgeschlossen werden kann, z. B. ein Streckenmodel, das von einem externen Zulieferer entwickelt wurde. Wenn die Analyse für ein geschütztes Modell negativ ausfällt, können die internen Entwicklerteams das Problem nicht lösen. Wenn das Modell allerdings von der Analyse ausgeschlossen ist, können sie die Arbeiten an den relevanten Systemkomponenten fortführen.

Veröffentlicht 2013 - 92110v00

Receive the latest MATLAB and Simulink technical articles.

Related Resources

Latest Blogs