Fachartikel and Newsletter

Ein ISO 26262-Workflow für automatisierte Fahranwendungen mit MATLAB: Richtlinien und bewährte Vorgehensweisen

Von Lars Rosqvist, MathWorks


模拟世界金宝app®和Stateflow®zur ISO 26262-Softwareentwicklung hat sich für elektronische Steuerungseinheiten in Fahrzeugen bewährt。Es gibt einen wachsenden趋势,für automatisiertes Fahren,软件设计mit MATLAB®-Funktionen sowie 金宝appSimulink-Blöcken und statflow - diagrammen zu implementieren。diesel Artikel beschreibt bewährte Vorgehensweisen für einen MATLAB-orientierten Workflow zur Verifizierung der Einhaltung von ISO 26262-Softwarestandards[1]。Diese bewährten Vorgehensweisen ergänzen den ISO 26262参考-工作流mit基于模型的设计,wie imIEC认证套件erlautert。

Empfohlenes Modellierungsmuster

在Softwareentwicklungsmuster verwendet中,在Simulink-Modell einen MATLAB-Funktion金宝appsblock (Abbildung 1)中使用。Das oberste 金宝appsimulink - model überträgt alle konfigationseinstellungen für die Codegenerierung。Der MATLAB-Funktionsblock ruft externe

Abbildung 1: Modellierungsmuster mit externem matlab代码。

Abbildung 1: Modellierungsmuster mit externem matlab代码。

Dieses Modellierungsmuster proftiert von allen für S金宝appimulink-Modelle verfügbaren Verifizierungs- und Validierungstools und ermöglicht大模具Implementierung der Funktionalität mit der MATLAB-Sprache[2]。Es protiert auch von den umfangreichen Fähigkeiten MATLAB。Beispielsweise wdie ADAS-Entwicklung typischerweise mit MATLAB实现,weil复杂数学Funktionalität knapp和优雅ausgedrückt werden kann。

MATLAB ISO 26262参考-工作流:Übersicht

Wie oben erwähnt, beruht der in diesem Artikel beschriebene Workflow auf dem ISO 26262 reference -Workflow im IEC认证套件(Abbildung 2)。

Abbildung 2: Im IEC认证套件angegebene Verifizierungs- und Validierungsmaßnahmen。

Abbildung 2: Im IEC认证套件angegebene Verifizierungs- und Validierungsmaßnahmen。

Der auf MATLAB basierende Workflow beinhaltet zusätzliche Empfehlungen für folgende Verifizierungs- und validierungmas ßnahmen:

  • 建筑的安全与验证
  • Statische Modellanalyse
  • mil - test和SIL- oder pil -背靠背测试
  • Statische Codeanalyse
  • Dokumentation

建筑的安全与验证

Für ISO 26262编码,编码,编码,编码和编码。

Im ISO 26262参考- workflow野生diesel Beleg durch die in Abbildung 3 hervorgehobenen Maßnahmen zur Verifizierung der Architektur und die Erstellung der Anforderungen erbracht。

Abbildung 3: Maßnahmen zum Verknüpfen von Anforderungen。

Abbildung 3: Maßnahmen zum Verknüpfen von Anforderungen。

Verknüpfen von Anforderungen mit matlab代码

Mit Requirements Toolbox™können Anforderungen Mit Codezeilen in MATLAB-Funktionen auf dieselbe Weise verknüpft werden, wie Anforderungen Mit S金宝appimulink-Blöcken verknüpft werden。Der Unterschied best jedoch darin, dass die vorhandene Überprüfung auf fehlende Anforderungen keinen externen MATLAB-Code überprüft。Es wid daher empfohlen, eine模型顾问-Überprüfung zu implementieren, die nach MATLAB-Containern sucht, die nicht mit einer Anforderung verknüpft信德。Ein Container ist typischerweise die externe MATLAB-Datei oder eine MATLAB-Funktion, je nach Größe der Datei。

BEWAHRTES埃森für den matlab -工作流

Es empfiehlt sich, Model Advisor-Überprüfungen zu implementieren, um nach MATLAB-Containern zu suchen, die nicht mit Anforderungen verknüpft sind。

Statische Modellanalyse

Jede Komponente im Implementierungsmodell muss auf Lesbarkeit, Verständlichkeit und Testbarkeit überprüft werden (Abbildung 4). Mit 金宝appSimulink Check™wid bewertet, ob das模型模具Hochintegritatsrichtlinien冯iso 26262 und MathWorks einhält。

Abbildung 4: Im IEC认证试剂盒angegebene Maßnahmen zur statischen模型分析。

Abbildung 4: Im IEC认证试剂盒angegebene Maßnahmen zur statischen模型分析。

Sprachteilmenge

Beim Programmieren in MATLAB können Funktionen verschiedener Toolboxen verwendet werden。Da MATLAB eine leistungsstarke Sprache mit hohem Abstraktionsgrad ist, können mit nur wenigen Zeilen Code aufwändige Funktionalität entwickelt werden。Manchmal kann eine einzelne MATLAB-Codezeile zu vielen Zeilen C Code führen, was die verifizerung der vollständigen Abdeckung des generierten Codes erschweren kann。回复müssen sich sicher sein, dass die zu implementierende Funktionalität testbar ist。ISO 26262标准标准(ISO 26262标准表1),标准标准标准。

Es ist empfehlenswert, dass Anwender die Anforderung der Sprachteilmenge folgendermaßen erfüllen:

  • MATLAB-Funktionen sollten beurteilt and es sollte sichergestellt werden, dass keinen hohen Verifizierungsaufwand erfordern。Eine模型顾问-Überprüfung kann hinzugefügt werden;sie überprüft, ob nicht empfohlene Funktionen verwendet werden。
  • MATLAB-Funktionen sollten durch einfachere Implementierungen ersetzt werden。这是我的病,我的病,我的病。

BEWAHRTES埃森für den matlab -工作流

Beim Überprüfen von Modellen sollten andwender auf MATLAB-Operationen oder -Funktionen, die viel C Code generieren, achten und diese nach Möglichkeit durch andere Funktionen ersetzen。Eine模型顾问-Überprüfung kann hinzugefügt werden, die Nutzer bei Verwendung nicht empfohlener Funktionen warnt。

Können die Funktionen nht ersetzt werden, müssen sie separat getestet werden。

  • Die Funktion sollte mit separaten Einheitentests mit hoher Abdeckung verifiziert werden。在阿卜迪贡的北方,北方的北方,北方的北方,北方的北方,北方的北方,北方的北方,北方的北方,北方的北方begründen。

BEWAHRTES埃森für den matlab -工作流

Werden matlab -操作指令-Funktionen ermittelt, die viel C Code generieren und nht ersetzbar sind, sollten die Funktionen extern mit Einheitentests getestet Werden。Die Begründungen sollten in Zusammenhang mit dem Verwendungsort der Funktionen verfast and mit Speicherort der Testergebnisse verknüpft werden。

在达廷彭城的Festlegung von Datentypen

Für ISO 26262 müssen alle Variablen stark typisiert sein。Model Advisor überprüft 金宝appSimulink-Modelle auf stark typisierte Blöcke, einschließlich der Schnittstelle zum MATLAB-Funktionsblock, überprüft jedoch keine externen MATLAB-Funktionen。嗯他们entgegenzuwirken, ist es unenddig, eine Überprüfung zu schreiben,嗯zu verifizieren, dass alle MATLAB-Funktionen stark typisiert sinind。德语德语德语德语德语德语德语überprüfen。

BEWAHRTES埃森für den matlab -工作流

Anwender sollten eine Model Advisor-Überprüfung hinzufügen, um sicherzustellen, dass alle variable in ihrem MATLAB-Code stark typisiert sind。

mil - test和SIL- oder pil -背靠背测试

Mit背靠背- (Aquivalenz -)测试系统,通用代码,模型verhält, ISO 26262表7,软件系统验证方法。对象代码处理器在环- (PIL-)测试C代码软件在环- (SIL-)测试(Abbildung 5). Die Testfälle sollten dieselben sein wie in den模型在环- (MIL-)测试。我能看到它的存在。Bei Integrationstests muss mit PIL die gesamte Entwicklungstoolkette verifiziert werden。

Abbildung 5: Im IEC认证试剂盒angegebene Maßnahmen zur Modellverifizierung。

Abbildung 5: Im IEC认证试剂盒angegebene Maßnahmen zur Modellverifizierung。

Verhinderung ungewollter Funktionalität

Um zu beweisen, dass bei der Codegenerierung keine ungewollte Funktionalität dazukam, sollte die Testabdeckung während模型和代码测试gemessen werden。Die Testabdeckung erfolgt typischerweise mit背靠背测试mit Simulink覆盖™。金宝appAbdeckung wid gemäß ISO 26262大森林,嗯,die Vollständigkeit der验证,auszuwerten und zu belgen, dass die Ziele für den Einheitentest erreicht wurden。

Gemäß ISO 26262 muss Code mit fehlender Abdeckung überarbeitet und begründet werden。Beim Entwickeln von 金宝appSimulink-Blöcken können die Begründungen mit dem模型verbunden werden。Das bedeet, dass die Begründungen zwischen den Verifizierungsläufen bebehalten werden。Diese Option ist nicht für externe MATLAB-Funktionen verfügbar。Um eine fehlende Abdeckung für eine MATLAB-Funktion zu begründen, fügen Nutzer dem Code einen Abdeckungsfilter hinzu und verbinden ihn entweder mit dem Test- harness oder Testdatei in Sim金宝appulink Test™。Es ist empfehlenswert, die Abdeckungsfilterdatei mit der Testdatei zu verbinden (Abbildung 6)。

Abbildung 6: Mit der Testdatei verbundener Abdeckungsfilter。

Abbildung 6: Mit der Testdatei verbundener Abdeckungsfilter。

BEWAHRTES埃森für den matlab -工作流

Begründungen fehlender Abdeckung in externem MATLAB-Code sollten über einen mit der Testdatei verbundenen Begründungsfilter verfolgt werden。

Statische Codeanalyse

Wie im ISO 26262-Standard angegeben, beinhalten statische Analysen Maßnahmen Wie das Durchsuchen des Quellcodetexts oder des model auf Muster, die bekannten Fehlern entsprechen, oder auf die Einhaltung von Modellierungs- oder Codierungsrichtlinien。Statische Codeanalysen werden am generierten Code ausgeführt (Abbildung 7)。

Abbildung 7: Im IEC认证试剂盒angegebene Maßnahmen zur statischen codeanalyze。

Abbildung 7: Im IEC认证试剂盒angegebene Maßnahmen zur statischen codeanalyze。

MISRA C-Konformitat

呃,该死的MISRA®C-Konformität für von MATLAB generierten Code zu beurteilen, sollten Nutzer ein Tool zur statischen codeanalyze wie Polyspace Bug Finder™verwenden, um nicht MISRA C-konformen Code zu finden, und die Ergebnisse manuell untersuchen。matlab - function, gibt es zwei Möglichkeiten:

  • die integrerte MATLAB-Funktion durch eine umgeschriebene Funktion zu ersetzen oder
  • eine Begründung für die MISRA C-Warnung zu schreiben。

Es ist ratsam, die Funktion nach Möglichkeit zu ersetzen。嗯sicherzustellen, dass die ersetzte Funktion nicht von anderen Entwicklern verwendet wd, sollte eine模型顾问-Überprüfung für nicht empfohlene Funktionen implementiert werden。

BEWAHRTES埃森für den matlab -工作流

Beim Überprüfen von Berichten statischer Codeanalysen sollte überprüft werden, ob MISRA-Warnungen von integrierten MATLAB-Funktionen stammen。Können diese Funktionen ersetzt werden, sollte eine模型顾问-Überprüfung hinzugefügt werden, die bei Verwendung nicht empfohlener Funktionen warnt。Andernfalls sollte das Problem im Bericht der statischen codeanalyze begründet werden。

Dokumentation

Im abschließenden Sicherheitsnachweis, der die ISO 26262-Konformität belegt, müssen Anwender jeden Schritt des verifizerungsablaufs dokumentieren, von den Anforderungen bis hin zur Verifizierung。Die Dokumentation sollte Entwurfsbeschreibungen der Funktionalität beinhalten。Abbildung 8 hebt einige der Maßnahmen hervor, die in der Entwurfsbeschreibung enthalten sein müssen。

Abbildung 8: Maßnahmen, die in der Entwurfsdokumentation enthalten sein müssen。

Abbildung 8: Maßnahmen, die in der Entwurfsdokumentation enthalten sein müssen。

Beschreibung des系统设计

金宝appSimulink Report Generator™beinhaltet eine vordefinierte Vorlage für Systementwurfsberichte。Diese Vorlage reicht normalerweise zum Dokumentieren von in 金宝appSimulink entwickelten Komponenten, aber niht von externen MATLAB-Funktionen aus, weil siniht in der Systementwurfsbeschreibung enthalten sind。Daher empfiehlt es sich, die Vorlage individuell anzupassen, soda sie auch externen MATLAB-Code umfast。

BEWAHRTES埃森für den matlab -工作流

Die Vorlage zur Systementwurfsbeschreibung sollte individuell angepailswerden, damit sie auch external MATLAB-Code umfast。

SOTIF-Betrachtungen

In komplexen Systemen wie ADAS verhält sich eine Funktion u. u. wie vorgesehen, verursacht aber dennoch risikoreiches Verhalten。Unter Anleitung des ISO/PAS 21448 sotifi - standards (Sicherheit der vorgesehenen Funktionalität) kann diese Problematik angegangen werden, indem zusätzliche Verifizierungs- und Validierungsmaßnahmen in das Model-Based Design integriert werden。Empfehlenswert ist es, randomisierte Operationsbedingungstests hinzuzufügen, um die Tests zu erweitern und auch unbekannte Anwendungsfälle einzuschließen。执行模型和积分对象代码是系统验证的标准。

Das IEC认证套件unterstützt SOTIF。Hinsichtlich SOTIF gibt es keine großen Unterschiede zwischen 金宝appSimulink- und matlab -工作流。Das aktualisierte IEC认证套件beinhaltet Informationen über die Nutzung der自动驾驶工具箱bei Systemtests。

Zusammenfassung

贝德ISO-konformen Softwareentwicklung gibt es keine groe ßen Unterschiede zwischen einer vollständig Simu金宝applink-basierten Entwicklung und einem eher MATLAB-orientierten工作流。Der Hauptunterschied light in Der endendigkeit, durch das Implementieren individuell angepasster Model Advisor-Überprüfungen nicht empfohlene Funktionen zu vermeiden。Diese zusätzlichen Überprüfungen stellen zusammen mit vorhandenen ISO 26262-Überprüfungen in 金宝appSimulink检查sicher, dass die MATLAB-Implementierung einen für Hochintegritätsanwendungen geeigneten代码生成器。Die anderen Herausforderungen bei der Verwendung eines面向matlab的工作流für ISO 26262 können mit einfachen Behelfslösungen wie Begründungsfiltern oder dem Verlinken von Anforderungen mit mehren Ebenen des模型gemeistert werden。

[1] Die Empfehlungen in diesem Artikel basieren auf MATLAB R2020a。Bei Verwendung eines anderen Release wenden Sie sich bitte an Ihren MathWorks-Mitarbeiter, um mehr über seine Fähigkeiten zur Verwendung von MATLAB und 金宝appSimulink für ISO 26262 zu erfahren。

[2] Entwickler entscheiden sich manchmal für MATLAB statt 金宝appSimulink, weil sie der Meinung sind, dass Simulink kein diff und merge unterstützt。Arbeiten Anwender in 金宝appSimulink, können sie diff und merge mittels integrerter Tools behandeln。Verwendet ihr Team ein verteiltes Versionskontrollsystem like Git, können sie mit dreifachem Zusammenfügen eventuelle Konflikte lösen。

Über den Autor

Lars Rosqvist是MathWorks的高级技术顾问。Er unterstützt Kunden verschiedenster Branchen, die mit基于模型的设计和MATLAB arbeiten。Er ist von TÜV SÜD als Experte für Funktionale Sicherheit zertifiziert und unterstützt昆登seit vielen Jahren bei der ISO 26262-Zertifizierung。Vor dem Wechsel zu MathWorks arbeitete er in der automobilindustrials software areentwickler für klimassteuerungssysteme。roqvist best einen Masterabschluss in Angewandter Physik and Elektrotechnik von der Technischen Universität Linköping。

Veroffentlicht 2020