Newsletters

  • Vertrieb kontaktieren

Mercedes-AMG entwickelt eine Plattform für das On-Target Rapid Prototyping

Von Sergej Kisin, Mercedes-AMG GMBH

Das Rapid Prototyping auf PC-Hardware hat sich den Ruf einer schnellen und effizienten Arbeitsweise erworben, um Ideen und experimentelle Lösungsansätze im Frühstadium einer Entwicklung zu testen, wenn Änderungen noch einfach und kostengünstig durchgeführt werden können. Die Möglichkeit, Embedded Code automatisch erzeugen zu können, bedeutet für das Rapid Proto­typing einen weiteren Schritt nach vorne: Sobald ein Systementwurf verfeinert und validiert ist, können Entwickler aus dem Modell automatisch Programmcode generieren und diesen für das Rapid Prototyping einsetzen oder direkt auf dem Targetsystem ausführen. Bei der Entwicklung neuer Entwürfe für die Serienproduktion können Ingenieure dadurch ihre Ideen Zulieferern besser verständlich machen, was die Implementierung vereinfacht und auch verbessert.

Bei der Mercedes-AMG GmbH wurde dieser Ansatz gewählt, um eine Serien-ECU (Electronic Control Unit) mit Sensoren und Stellgliedern zu erweitern und die Signale für die Prototypen-Entwicklung mit einem Steuergerät eines Drittanbieters zu verarbeiten.

In diesem Artikel erklärt Sergej Kisin, einer der Entwickler in der Gruppe für Fahrzeugelektrik und -elektronik bei Mercedes-AMG, wie das On-Target Rapid Prototyping System für einen Regler mit Hilfe von automatischer Codegenerierung implementiert wurde.

Anforderungen

Die Anforderungen für unser Projekt waren recht speziell: Wir benötigten eine integrier­te Entwicklungsplattform sowie Software-Werkzeuge, die anwenderfreundlich sind und keine lange Einarbeitung erfordern. Die Schnittstelle für die Kommunikation zwischen dem PC und der Steuerung musste mit nicht-proprietärer Hardware realisiert werden. Außerdem sollte die Target-Hardware ökonomisch und kompakt sein und sich für den Einsatz innerhalb eines Fahrzeugs eignen.

Hardwareauswahl

Unser Entwicklungsteam ent­schied sich für den pro­grammierbaren ESX-Controller der Sen­sor-Technik Wiede­­mann (STW) GmbH. Wir hatten dieses Steuergerät bereits in frü­heren Projekten eingesetzt, es erfüllte sämtliche Hardware- und Sicherheitsanforderungen. Der ESX-Controller fungiert als unabhängiges Mess-, Stell- und Regelglied für das Sensor/Aktuator-Management. Er eignet sich zur Echtzeitsteuerung verschiedener Aufgaben, z.B. für das Motormanagement, für Automatikschaltungen oder zur Regulierung der Fahrzeugneigung

Er basiert auf einem Infineon 80C167CS-Prozessor (Abb. 1) und besitzt eine Reihe verschiedener analoger und digitaler Inputs und Outputs, zwei CAN-C-Busse und eine serielle Schnittstelle. Sein robustes Betriebssystem verfügt zudem über eine API, über die die Hardware mit Hilfe von C-Funktionen angesprochen werden kann. Die Software kann mit dem Altium TAS­KING-Compiler kompiliert und über CAN-C oder RS232 heruntergeladen werden.

mercedes_fig1_w.jpg

 

Abb. 1. Die ESX-Hardware

Entwicklung des Targets

Unsere Entwicklungsplattform bestand aus MATLAB, Simulink und Real-Time Workshop Embedded Coder. Für diese Wahl gab es überzeugende Gründe: Anwenderfreundlichkeit, eine All-in-One-Lösung, branchenweite Akzeptanz und kurze Einarbeitungszeiten.

Im ersten Schritt wurden die Anforde­rungen definiert: Das ESX-Betriebssystem sollte unverändert bleiben; der für das Target generierte Code musste mit diesem Betriebssystem kompatibel sein und die ESX-Targetblöcke mussten die API-Funktionen widerspiegeln. Zusammen mit Consultants von The MathWorks ent­wickelten wir dazu eine eigene Simulink-Blockbibliothek für unser ESX-Target (Abb. 2).

mercedes_fig2_w.gif

 

Abb. 2. Die Simulink ESX-Bibliothek spiegelt die Funktionalität der Hardware-Gruppen wider: analoge Inputs/Outputs, Digitale Inputs/Outputs, CAN, RS232. Ein ESX-Init-Block führt ein Skript aus, das das Modell bezüglich der Codegenerierung für das ESX-Target konfiguriert und die Abtastrate des Modells festlegt. Zum Vergrößern auf das Bild klicken.

Eines unserer zentralen Ziele war eine einfache Anwendbarkeit bei geringer Komplexität: Das Blockset sollte ein hohes Abstraktionsniveau aufweisen und nur die Funktionen unterstützen, die zur Steuerung der Inputs und Outputs notwendig sind. Einige Blöcke sollten mehrere Funktionen in sich vereinen, um unnötige Komplexität zu vermeiden.

Die Struktur der CAN-Blöcke orientierte sich an xPC Target, welches unsere Plattform für das funktionale Rapid Prototyping auf leistungsfähigen Mikroprozessoren bildet. Damit war es später kein Problem, mit dem Simulink-Modell vom Rapid Prototyping unter xPC Target direkt zum On-Target Prototyping auf dem ESX-Controller überzugehen.

Die Testphase

Nachdem die ersten Testversionen des Blocksets für das ESX-Target erstellt wa­ren, haben wir die darin implementierten Funktionen in verschiedenen Szenarien unter Simulink getestet. Weiter wurden die Testergebnisse mit denen von handgeschriebenem Produktionscode verglichen, um Fehler zu identifizieren und zu beseitigen.

Den abschließenden Test bildete der Bau einer Kraftstoffdruckregelung. Unser Ziel war dabei, den neuen Regler als eigenständige Lösung für ältere Erprobungsfahrzeuge zu implementieren, die bislang nur über ein konventionelles Kraftstoffsystem mit konstantem Druck verfügten. Wir produzierten zu diesem Zeitpunkt bereits einen ähnlichen Regler als Teil einer Motorsteuerung in Serie, so dass sich ein Vergleich der beiden Modelle anbot.

Nach kleinen Anpassungen an der Struktur der Simulink-Bibliothek war dieses Projekt erfolgreich abgeschlossen. Mit Simulink Fixed-Point wurden die Festkomma-Datentypen, die auf dem Infineon 80C167CS-Prozessor im ESX-Controller verwendet werden, spezifiziert. Das Ergebnis war ein sehr komplexes Modell, aus dem sich der gesamte angestrebte Funktionsumfang implementieren ließ (s. Abb. 3).

mercedes_fig3_w.jpg

 

Abb. 3. Simulink-Modell der ESX-basierten Kraftstoffdruckregelung. Zum Vergrößern auf das Bild klicken.

Obwohl der automatisch generierte Code von uns akribisch untersucht und getestet wurde, fanden wir keinen einzigen Fehler. Wir können jetzt ältere Fahrzeugtypen mit dem neuen Kraftstoffsystem ausstatten und müssen dazu nur minimale Umbauten vornehmen. Auch nachfolgende Testprojekte mit dem neu entwickelten ESX-Target-Blockset und automatischer Codegenerie­rung bestätigten diese guten Ergebnisse.

Alle Bedingungen für ein offizielles Release der ESX-Blockbibliothek für Simulink waren damit erfüllt; wir besitzen nun eine stabile Software-Plattform für künftige Entwicklungsprojekte.

Unsere ESX-Entwicklung findet jetzt fast ausschließlich in Simulink statt, wodurch unsere Entwickler bei der Implementierung neuer Projekte spürbar entlastet werden. Wir arbeiten an einer Reihe von Erweiterungen des Blocksets, unter anderem an zusätzlicher I/O-Funktionalität. In naher Zukunft wird es eine neue Generation des ESX-Controllers geben, und wir planen auch für diese Versionen den Programmcode automatisch zu generieren.

Veröffentlicht 2006

Receive the latest MATLAB and Simulink technical articles.

Related Resources

Latest Blogs