26
Mechatronische Systemtechnik im KFZ Kapitel 2: Funktionsentwicklung Prof. Dr.-Ing. Tim J. Nosper Bild 2.6_1 Quelle: ETAS Der moderne Funktions- und Softwareentwicklungsprozess ECU = Electronic Control Unit = Elektronisches Steuergerät Mechatronische Systemtechnik im KFZ Kapitel 2: Funktionsentwicklung Prof. Dr.-Ing. Tim J. Nosper Zeitlicher Ablauf der Softwareentwicklung SW-QB = Software- Qualitätsbewertung Bild 2.6_2 Quelle: Bosch

Der moderne Funktions- und Softwareentwicklungsprozessnosper/public/Download/Kapitel 2.6... · Moderne Tools wie z.B. MATLAB/Simulink bei dSpace oder ASCET-SD von ETAS benutzen dazu

  • Upload
    vohuong

  • View
    215

  • Download
    1

Embed Size (px)

Citation preview

Mechatronische Systemtechnik im KFZ Kapitel 2: Funktionsentwicklung Prof. Dr.-Ing. Tim J. Nosper

Bild 2.6_1 Quelle: ETAS

Der moderne Funktions- und Softwareentwicklungsprozess

ECU = Electronic Control Unit = Elektronisches Steuergerät

Mechatronische Systemtechnik im KFZ Kapitel 2: Funktionsentwicklung Prof. Dr.-Ing. Tim J. Nosper

Zeitlicher Ablauf der Softwareentwicklung

SW-QB = Software-Qualitätsbewertung

Bild 2.6_2 Quelle: Bosch

Mechatronische Systemtechnik im KFZ Kapitel 2: Funktionsentwicklung Prof. Dr.-Ing. Tim J. Nosper

Grundmodell aus den Anfangstagen der SW-Entwicklung:

1) Beschreibe die Aufgabe in Prosa

2) Schreibe ein Programm

3) Finde und behebe die Fehler in dem Programm

Der Softwerker als „kreativer Künstler“ !

Diese Vorgehensweise wird heutigen Anforderungen nicht gerecht.

Deshalb: „Software ist Hardware !!“ -> klar strukturiertes Vorgehen

Für die Softwareentwicklung wurden deshalb verschiedene Prozessmodelle entwickelt. Als wichtigstes wird hier das V-Modell behandelt.

Bild 2.6_3 Quelle: Wrede

Prozess- Modelle der Funktions- und Softwareentwicklung

Mechatronische Systemtechnik im KFZ Kapitel 2: Funktionsentwicklung Prof. Dr.-Ing. Tim J. Nosper

Labor: Einführung in Simulationstool MATLAB/Simulink

Quelle: Matlab Bild 2.6_4

Mechatronische Systemtechnik im KFZ Kapitel 2: Funktionsentwicklung Prof. Dr.-Ing. Tim J. Nosper

Funktions- und Softwareentwicklungsprozess (V- Modell)

Produkt/Projekt planen:Lastenheft, Projektplan

Produkt/Funktion definieren:Pflichtenheft,

formale Spezifikation

Programm entwerfen:SW-Architektur

Progr.-Module codieren:z.B. C-Sourcecode

Seriencode erzeugen:compilierter, gelinkter Maschinencode

Modultest, Code-Review:Ergebnisprotokolle

Integrationstest:Ergebnisprotokolle

Systemtest: Prüfstand, FahrversuchVersuchsberichte,

Parameterfestlegung

Feldtest, Kundentest:Feldberichte, Garantiestatistik

Anwendungsszenarien

Testfälle

Testfälle

Testfälle

Bild 2.6_5 Quelle: Wrede

Val

idat

ion

Ver

ifik

atio

n

Mechatronische Systemtechnik im KFZ Kapitel 2: Funktionsentwicklung Prof. Dr.-Ing. Tim J. Nosper

Verifikation ist die Überprüfung der Übereinstimmung zwischen einem Software-Produkt und seiner Spezifikation.

Verifikation: Wird ein korrektes Produkt entwickelt ?

Validation ist die Eignung bzw. der Wert eines Produktes bezogen auf seinen Einsatzzweck.

Validation: Wird das richtige Produkt entwickelt ?

Bild 2.6_6 Quelle: Wrede

Verifikation und Validation

Mechatronische Systemtechnik im KFZ Kapitel 2: Funktionsentwicklung Prof. Dr.-Ing. Tim J. Nosper

Am Anfang jeder (Software-)Produktentwicklung steht nach der Idee oder der Kundenanfrage die Planungsphase, in der folgende Fragen zu beantworten sind:

• Ist das Produkt technisch-funktionell machbar ? (z.B. Simulation)

• Wie hoch sind schätzungsweise die Entwicklungskosten ?

• Mechatronische Systeme: wie hoch sind schätzungsweise die Fertigungskosten ?

• Bis zu welchem Serientermin kann das Produkt entwickelt werden ? (time-to-market)

• Läßt sich das Produkt unter obigen Randbedingungen gewinnbringend vermarkten ?

Ergebnis der Planungsphase: Entscheidung über Projektstart

Dokumente: Machbarkeitsstudie, grobes Lastenheft, Projektplan

Bild 2.6_7 Quelle: Wrede

Planungsphase

Mechatronische Systemtechnik im KFZ Kapitel 2: Funktionsentwicklung Prof. Dr.-Ing. Tim J. Nosper

Als nächster Schritt wird ein detailliertes Pflichtenheft als strukturiertes Textdokument erstellt. Teilweise ergänzt durch grafische Darstellungen. Das Pflichtenheft beschreibt das was ?, nicht das wie ? (Wirk- nicht Bauvorschrift !)

Moderne Tools wie z.B. MATLAB/Simulink bei dSpace oder ASCET-SD von ETAS benutzen dazu eine grafische, blockorientierte Darstellung.

Die formale Spezifikation geht einen Schritt weiter und beschreibt

• Daten

• Funktionen

• (zeitabhängige) Algorithmen

• Software-Schnittstellen

in einer von konkreten Programmiersprachen unabhängigen Form.

Bild 2.6_8 Quelle: Wrede

Definitionsphase: Pflichtenheft und formale Spezifikation

Mechatronische Systemtechnik im KFZ Kapitel 2: Funktionsentwicklung Prof. Dr.-Ing. Tim J. Nosper

Die Entwurfsphase beantwortet neben dem wie ? z.B. folgende Fragen, falls nicht schon im Pflichtenheft festgelegt:

• Auf welcher Hardware muß die Software laufen ?

• Wird ein (Echtzeit)-Betriebssystem eingesetzt ?

• Welche Programmiersprache dient zur Implementierung ?

• Wie wird die Gesamtfunktion auf mehrere Steuergeräte verteilt ?

• Wie sind die Ein- und Ausgabeschnittstellen zu bedienen, z.B. CAN ?

• In welchen Speichern werden welche Daten abgelegt ?

• Wie wird das Gesamtprogramm in einzelne Software-Module (z.B. Unterprogramme) gegliedert ? Spezifikation der Module und Komponenten.

Bild 2.6_9 Quelle: Wrede

Entwurfsphase: Festlegung der Softwarearchitektur

Mechatronische Systemtechnik im KFZ Kapitel 2: Funktionsentwicklung Prof. Dr.-Ing. Tim J. Nosper

Moderne Software-Architektur z.B. für Kfz-Steuergeräte

Stecker zu Sensoren und Aktoren

Anwendungsfunktionen z.B. ABS-, ASR-, ESP-Algorithmen

Funktion 1 Funktion 2 Funktion 3

Plattform-Software-Komponenten

Echtzeit-Betriebs-system

Basis-Sicherheits-Funktionen

CAN-Kommunikation

DiagnoseSensor-Signal-

aufbereitung

BetriebssystemSeriell ADC Digital I/O CAN

Schnittstellentreiber

Hardware

Quelle: Wrede Bild 2.6_10

Mechatronische Systemtechnik im KFZ Kapitel 2: Funktionsentwicklung Prof. Dr.-Ing. Tim J. Nosper

Funktionsentwicklung und Offline-Simulation

Produkt/Projekt planen:Lastenheft, Projektplan

Produkt/Projekt planen:Lastenheft, Projektplan

Produkt definieren:Pflichtenheft,

formale Spezifikation

Produkt definieren:Pflichtenheft,

formale Spezifikation

Programm entwerfen:SW-Architektur

Programm entwerfen:SW-Architektur

Progr.-Module codieren:C-Sourcecode

Progr.-Module codieren:C-Sourcecode

Seriencode erzeugen:compilierter, gelinkter Maschinencode

Seriencode erzeugen:compilierter, gelinkter Maschinencode

Modultest, Code-Review:Ergebnisprotokolle

Modultest, Code-Review:Ergebnisprotokolle

Integrationstest:Ergebnisprotokolle

Integrationstest:Ergebnisprotokolle

Systemtest: Prüfstand, Fahrversuch:Ergebnisprot., Versuchsberichte,

Parameterfestlegung

Systemtest: Prüfstand, Fahrversuch:Ergebnisprot., Versuchsberichte,

Parameterfestlegung

Feldtest, Kundentest:Feldberichte, Garantiestatistik

Feldtest, Kundentest:Feldberichte, GarantiestatistikFunktions-

entwicklung + Offline-Simulation

Quelle: Wrede Bild 2.6_11

Mechatronische Systemtechnik im KFZ Kapitel 2: Funktionsentwicklung Prof. Dr.-Ing. Tim J. Nosper

Funktionsentwicklung+

Offline-Simulation(z.B. mit MATLAB/Simulink)

Funktionsentwicklung+

Offline-Simulation(z.B. mit MATLAB/Simulink)

SW-Funktionsmodell in grafischer Blockstruktur

z.B. Leerlaufregelung

SW-Funktionsmodell des umgebenden Systems

z.B. Motor und Fahrzeug

Entwicklungssystem, z.B. PC

Anwendung:

Funktion schnell und kostengünstig entwickeln und prüfen ohne Hardware !

Quelle: Wrede Bild 2.6_12

Funktionsentwicklung und Offline-Simulation

Mechatronische Systemtechnik im KFZ Kapitel 2: Funktionsentwicklung Prof. Dr.-Ing. Tim J. Nosper

Produkt/Projekt planen:Lastenheft, Projektplan

Produkt/Projekt planen:Lastenheft, Projektplan

Produkt definieren:Pflichtenheft,

formale Spezifikation

Produkt definieren:Pflichtenheft,

formale Spezifikation

Programm entwerfen:SW-Architektur

Programm entwerfen:SW-Architektur

Progr.-Module codieren:C-Sourcecode

Progr.-Module codieren:C-Sourcecode

Seriencode erzeugen:compilierter, gelinkter Maschinencode

Seriencode erzeugen:compilierter, gelinkter Maschinencode

Modultest, Code-Review:Ergebnisprotokolle

Modultest, Code-Review:Ergebnisprotokolle

IntegrationstestErgebnisprotokolle

IntegrationstestErgebnisprotokolle

Systemtest: Prüfstand, Fahrversuch:Ergebnisprot., Versuchsberichte,

Parameterfestlegung

Systemtest: Prüfstand, Fahrversuch:Ergebnisprot., Versuchsberichte,

Parameterfestlegung

Feldtest, Kundentest:Feldberichte, Garantiestatistik

Feldtest, Kundentest:Feldberichte, Garantiestatistik

Rapid Prototyping

Quelle: Wrede Bild 2.6_13

Rapid Prototyping

Mechatronische Systemtechnik im KFZ Kapitel 2: Funktionsentwicklung Prof. Dr.-Ing. Tim J. Nosper

Rapid Prototyping(Übersetzung in C-Code

für Prototypentest)

Rapid Prototyping(Übersetzung in C-Code

für Prototypentest)

Zielsystem,z.B. realer Prototyp

des Motors oder Fahrzeugs

Zielsystem,z.B. realer Prototyp

des Motors oder Fahrzeugs

Einschubkarte mit Hochleistungsrechnerund Input/Output

Einschubkarte mit Hochleistungsrechnerund Input/Output

SW-Funktionsmodell in Prototypen-C-Code

SW-Funktionsmodell in Prototypen-C-Code

Entwicklungssystem, z.B. PC

Anwendung:

Schnell die Funktion auf realen Prototypen testen und weiterentwickeln !

I/O

SW-Funktionsmodell in grafischer Blockstruktur,z.B. Leerlaufregelung

SW-Funktionsmodell in grafischer Blockstruktur,z.B. Leerlaufregelung

Quelle: Wrede Bild 2.6_14

Rapid Prototyping

Mechatronische Systemtechnik im KFZ Kapitel 2: Funktionsentwicklung Prof. Dr.-Ing. Tim J. Nosper

Simulation: MATLAB/Simulink/StateflowSimulation: MATLAB/Simulink/Stateflow

Codegenerierung: Real-Time WorkshopCodegenerierung: Real-Time Workshop

Linker + Compiler (hardwarespezifisch)Linker + Compiler (hardwarespezifisch)

Real-Time Hardware

Experiment Software (hardwarespezifisch)Experiment Software (hardwarespezifisch)

I/O

Reale Welt

Modell als C-Code + Treiber teilweise hardwareabhängig

Modell als Blockdiagramm hardwareunabhängig

Single-board modular Entwickl.-SG 2. PC (xPC)

externer C-Code

externer C-Code

z.B. schon vorhanden

Quelle: Wrede Bild 2.6_15

Rapid Prototyping: Notwendige Software und Hardware (Beispiel)

Mechatronische Systemtechnik im KFZ Kapitel 2: Funktionsentwicklung Prof. Dr.-Ing. Tim J. Nosper

Eine PCI-Einsteckkarte für PC enthält Hochleistungs-Echtzeitrechner sowie Input/Output-Schnittstellen.

Vorteil: relativ preisgünstig (ca. 5-10 T€)

Nachteil: Flexibilität und Leistung begrenzt

I/O

Sensoren Aktoren

Download, Messdaten Parameter

Quelle: Wrede Bild 2.6_16

Rapid Prototyping mit Single-board Hardware

Mechatronische Systemtechnik im KFZ Kapitel 2: Funktionsentwicklung Prof. Dr.-Ing. Tim J. Nosper

• Modularer Aufbau mit verschiedenen Einschubkarten für Rechner und Input/Output in einer Box.

• Anbindung an Simulationsrechner z.B. über Ethernet oder seriell

• Vorteil: Flexibel, universell, erweiterbar

• Nachteil: relativ teuer je nach Umfang

z.B. EthernetI/O

Download, Messdaten Parameter

Sensoren Aktoren

Quelle: Wrede Bild 2.6_17

Rapid Prototyping mit modularer Hardware

Mechatronische Systemtechnik im KFZ Kapitel 2: Funktionsentwicklung Prof. Dr.-Ing. Tim J. Nosper

I/O

• Laptop (oder auch Desktop), über Ethernet oder serielle Schnittstelle mit Entwicklungs-Steuergerät verbunden.

• Entwicklungs-Steuergerät enthält Hochleistungs-Echtzeitrechner und Input/Output-Schnittstellen.

• Optimal für mobile Anwendungen.

Download Messdaten Parameter

Sensoren Aktoren

Quelle: Wrede Bild 2.6_18

Rapid Prototyping mit Notebook und Entwicklungs-Steuergerät

Mechatronische Systemtechnik im KFZ Kapitel 2: Funktionsentwicklung Prof. Dr.-Ing. Tim J. Nosper

Automatische Generierung von Seriencode

Produkt/Projekt planen:Lastenheft, Projektplan

Produkt/Projekt planen:Lastenheft, Projektplan

Produkt definieren:Pflichtenheft,

formale Spezifikation

Produkt definieren:Pflichtenheft,

formale Spezifikation

Programm entwerfen:SW-Architektur

Programm entwerfen:SW-Architektur

Progr.-Module codieren:C-Sourcecode

Progr.-Module codieren:C-Sourcecode

Seriencode erzeugen:compilierter, gelinkter Maschinencode

Seriencode erzeugen:compilierter, gelinkter Maschinencode

Modultest, Code-Review:Ergebnisprotokolle

Modultest, Code-Review:Ergebnisprotokolle

Integrationstest:Ergebnisprotokolle

Integrationstest:Ergebnisprotokolle

Systemtest: Prüfstand, Fahrversuch:Ergebnisprot., Versuchsberichte,

Parameterfestlegung

Systemtest: Prüfstand, Fahrversuch:Ergebnisprot., Versuchsberichte,

Parameterfestlegung

Feldtest, Kundentest:Feldberichte, Garantiestatistik

Feldtest, Kundentest:Feldberichte, Garantiestatistik

Automatische Generierung von Seriencode

Bild 2.6_19 Quelle: Wrede

Mechatronische Systemtechnik im KFZ Kapitel 2: Funktionsentwicklung Prof. Dr.-Ing. Tim J. Nosper

SW-Funktionsmodellin grafischer Blockstrukturz.B. Leerlaufregelung

SW-Funktionsmodellin grafischer Blockstrukturz.B. Leerlaufregelung

Generierter Funktions-C-Code+Treiber + externer C-Code

Generierter Funktions-C-Code+Treiber + externer C-Code

Ausführbarer Seriencode .hexAusführbarer Seriencode .hex

Generierung von Maschinencode für die Serie (Seriencode)

Generierung vonSeriencode

Generierung vonSeriencode

Entwicklungssystem, z.B. PC

Anwendung:

Funktion schnell und fehlerfrei vom Blockdiagramm in Seriencode umsetzen.

Echtzeitbetriebssystem + Seriencode,

z.B. Leerlaufregelung

Echtzeitbetriebssystem + Seriencode,

z.B. Leerlaufregelung

Zielhardware, z.B. Motronic-Steuergerät

Download

10010011

Linker und Compiler

C-Code-Generator

Weitere Software-Kompo-nenten

Bild 2.6_20 Quelle: Wrede

Mechatronische Systemtechnik im KFZ Kapitel 2: Funktionsentwicklung Prof. Dr.-Ing. Tim J. Nosper

Implementierungssphase: Codierung der Softwaremodule

Die sogenannte Implementierungsphase, also die eigentliche Codierung des Sourcecodes der Software-Module (= Software-Komponenten) mit einem Editor, wird oft fälschlicherweise als die Haupttätigkeit eines Programmierers angesehen.

Sie ist vom Aufwand her gesehen jedoch nur ein kleiner Teil des Gesamtaufwands, z.B. 10-20%, und wird zunehmend durch automatische Codegenerierungstools ersetzt.

Typische Aufwandsverteilung vor, für, nach Codierung: 40/20/40

Typische Aufwandsverteilung bei modernem Vorgehen: 60/15/25

Der erstellte Sourcecode wird i.a. mit einem Inspektionstool auf formale syntaktische Korrektheit getestet.

Bild 2.6_21 Quelle: Wrede

Mechatronische Systemtechnik im KFZ Kapitel 2: Funktionsentwicklung Prof. Dr.-Ing. Tim J. Nosper

Konventionelle Vorgehensweise

µC-Zielsysteme mit begrenzten Resourcen

Datenflußdiagramme, Text

Iterationen

Funktionsentwickler:erstellt Algorithmus, Offline-Simulation

Softwarespezialist:Fachkenntnisse über µC

Codierung von Hand

Bild 2.6_22 Quelle: Wrede

Vorteile automatischer Seriencode- Generierung

Mechatronische Systemtechnik im KFZ Kapitel 2: Funktionsentwicklung Prof. Dr.-Ing. Tim J. Nosper

Funktionsentwickler:erstellt Algorithmus

Softwarespezialist:Fachkenntnisse über µC,spezifiziert Implementierungs-information (z.B. Auflösung und Wertebereiche für Integerarithmetik)

Moderne Vorgehensweise

µC-Zielsysteme mit begrenzten Resourcen

Codegenerator Iterationen

Modellspezifikation,Implementierungsspezifikation

Bild 2.6_23 Quelle: Wrede

Vorteile automatischer Seriencode- Generierung

Mechatronische Systemtechnik im KFZ Kapitel 2: Funktionsentwicklung Prof. Dr.-Ing. Tim J. Nosper

Generierung von Serien-Code für Steuergeräte

2 wesentliche Schritte bei der Generierung von Serien-C-Code:

1) Umwandlung der hardwareunabhängigen Modellbeschreibung (z.B. Blockdiagramme oder textuelle Modellbeschreibungssprache) in C-Code. Durch die Implementierung für einen bestimmten Rechner (Integer-Arithmetik, Treiber in C, Echtzeit-Betriebssystem) ist dieser Code nicht hardwareunabhängig, sondern spezifisch für den Zielrechner (Target). Vorteilhaft ist die Trennung in einen hardware-unabhängigen (und damit auf andere Rechner portierbaren) und einen hardwareabhängigen C-Code-Teil. Auch externer, z.B. schon vorhandener C-Codekann eingebunden werden.

2) Alle C-Quell-Code-Teile werden dann durch einen hardwarespezifischen Linker und Compiler zusammengebunden und in Maschinencode (.hex-File) übersetzt. Dieser kann z.B. in einen Flash-EEPROM im Steuergerät geladen werden und ist dann lauffähig.

Bild 2.6_24 Quelle: Wrede

Mechatronische Systemtechnik im KFZ Kapitel 2: Funktionsentwicklung Prof. Dr.-Ing. Tim J. Nosper

Unterschiede zwischen Prototypen- C-Code und Serien- C-Code

Prototyp: Experimental-Hardware

• nicht laufzeit- und speicheroptimiert, optimiert für Messzwecke/Parameterverstellung

• Fließkomma-Arithmetik: Floating point -> quasikontinuierlich

• Überwachungs- und Sicherheitsfunktionen fehlen (zum Teil)

• reduzierte Qualitätsanforderungen

Serien-Steuergerät:

• laufzeit- und speicheroptimiert für verwendeten µC

• Integer-Arithmetik: Integer, Fixed point

• Vollständige Überwachungs- und Sicherheitsfunktionen

• Vollständige Qualitätsanforderungen

Bild 2.6_25 Quelle: Wrede

Mechatronische Systemtechnik im KFZ Kapitel 2: Funktionsentwicklung Prof. Dr.-Ing. Tim J. Nosper

Hardware-in-the-Loop Simulation

Produkt/Projekt planen:Lastenheft, Projektplan

Produkt/Projekt planen:Lastenheft, Projektplan

Produkt definieren:Pflichtenheft,

formale Spezifikation

Produkt definieren:Pflichtenheft,

formale Spezifikation

Programm entwerfen:SW-Architektur

Programm entwerfen:SW-Architektur

Progr.-Module codieren:C-Sourcecode

Progr.-Module codieren:C-Sourcecode

Seriencode erzeugen:compilierter, gelinkter Maschinencode

Seriencode erzeugen:compilierter, gelinkter Maschinencode

Modultest, Code-Review:Ergebnisprotokolle

Modultest, Code-Review:Ergebnisprotokolle

Integrationstest:Ergebnisprotokolle

Integrationstest:Ergebnisprotokolle

Systemtest: HiL, Fahrzeugversuch:Ergebnisprot., Versuchsberichte,

Parameterfestlegung

Systemtest: HiL, Fahrzeugversuch:Ergebnisprot., Versuchsberichte,

Parameterfestlegung

Feldtest, Kundentest:Feldberichte, Garantiestatistik

Feldtest, Kundentest:Feldberichte, Garantiestatistik

HW in the Loop

Bild 2.6_26 Quelle: Wrede

Mechatronische Systemtechnik im KFZ Kapitel 2: Funktionsentwicklung Prof. Dr.-Ing. Tim J. Nosper

Hardware-in-the-Loop Simulation (HiL)

Hardware-in-the-Loop-Simulation mit Seriencode

Hardware-in-the-Loop-Simulation mit Seriencode

Einschubkarte mit Hochleistungsrechnerund Input/Output

Einschubkarte mit Hochleistungsrechnerund Input/Output

Entwicklungssystem, z.B. PC

Seriencode, z.B. Leerlaufregelung

Seriencode, z.B. Leerlaufregelung

Zielhardware, z.B. Motronic-Steuergerät im Labor

Anwendung:

Seriencode zusammen mit Zielhardwareschnell, umfassend und kostengünstig testen.

I/O

SW-Funktionsmodell des umgebendenSystems in Echtzeit (= „SW-Loop“)z.B. Motor, Fahrzeug

Bild 2.6_27 Quelle: Wrede

Mechatronische Systemtechnik im KFZ Kapitel 2: Funktionsentwicklung Prof. Dr.-Ing. Tim J. Nosper

Parameteroptimierung

Produkt/Projekt planen:Lastenheft, Projektplan

Produkt/Projekt planen:Lastenheft, Projektplan

Produkt definieren:Pflichtenheft,

formale Spezifikation

Produkt definieren:Pflichtenheft,

formale Spezifikation

Programm entwerfen:SW-Architektur

Programm entwerfen:SW-Architektur

Progr.-Module codieren:C-Sourcecode

Progr.-Module codieren:C-Sourcecode

Seriencode erzeugen:compilierter, gelinkter Maschinencode

Seriencode erzeugen:compilierter, gelinkter Maschinencode

Modultest, Code-Review:Ergebnisprotokolle

Modultest, Code-Review:Ergebnisprotokolle

Integrationstest:Ergebnisprotokolle

Integrationstest:Ergebnisprotokolle

Systemtest: HiL, Fahrzeugversuch:Ergebnisprot., Versuchsberichte,

Parameterfestlegung

Systemtest: HiL, Fahrzeugversuch:Ergebnisprot., Versuchsberichte,

Parameterfestlegung

Feldtest, Kundentest:Feldberichte, Garantiestatistik

Feldtest, Kundentest:Feldberichte, Garantiestatistik

Parameter-Optimierung

Bild 2.6_28 Quelle: Wrede

Mechatronische Systemtechnik im KFZ Kapitel 2: Funktionsentwicklung Prof. Dr.-Ing. Tim J. Nosper

Parameteroptimierungbereits in der

Funktionsentwicklungs- undPrototypenphase

Parameteroptimierungbereits in der

Funktionsentwicklungs- undPrototypenphase

Parameter sind „Variable“ in der Funktion (also auch im Programm), die der Anpassung an verschiedene Randbedingungen dienen.

z.B. Unterschiedliche Zündwinkel und Einspritzmengen einer Leerlaufregelung für verschiedene Motoren.

Die Parameter können bereits im frühen Entwicklungsstadium (Funktionsentwicklungs- und Prototypenphase) voroptimiert werden.

Im aufwendigen Motor- bzw. Fahrversuch (Applikation) erfolgt dann nur noch die Feinabstimmung und Überprüfung.

Bild 2.6_29 Quelle: Wrede

Parameteroptimierung

Mechatronische Systemtechnik im KFZ Kapitel 2: Funktionsentwicklung Prof. Dr.-Ing. Tim J. Nosper

Grundsätze bei der Softwareentwicklung

• Software = Hardware, d.h. Software bei der Entwicklung wie Hardware behandeln und nicht darauf bauen, dass schnelle Änderungen in der Serie möglich sind.

• Gute Dokumentation ! Nicht nur das wie, sondern auch das warum !

• Möglichst durchgängige Kette von CASE-Tools (Computer Aided Software Engineering) von Spezifikation bis zur Generierung des Maschinencodes (z.B. von dSpace, ETAS).

• Gutes Projektmanagement mit sauberer Spezifikation und Software-Freeze(Änderungsstop).

Bild 2.6_30 Quelle: Wrede

Grundsätze

Mechatronische Systemtechnik im KFZ Kapitel 2: Funktionsentwicklung Prof. Dr.-Ing. Tim J. Nosper

Bild 2.6_31 Quelle: Bosch

Film Steuergeräteentwicklung (13 min)

Mechatronische Systemtechnik im KFZ Kapitel 2: Funktionsentwicklung Prof. Dr.-Ing. Tim J. Nosper

Funktionsentwicklung und Offline-Simulation FGR

FGR = Fahrgeschwindigkeitsregelung

Bild 2.6_32 Quelle: Wrede

Mechatronische Systemtechnik im KFZ Kapitel 2: Funktionsentwicklung Prof. Dr.-Ing. Tim J. Nosper

SW- Modell der Regelstrecke: Fahrzeug mit Straße/Fahrwiderstand

Bild 2.6_33 Quelle: Wrede

Mechatronische Systemtechnik im KFZ Kapitel 2: Funktionsentwicklung Prof. Dr.-Ing. Tim J. Nosper

SW- Modell des Reglers: PID- Geschwindigkeitsregler

Bild 2.6_34 Quelle: Wrede

Mechatronische Systemtechnik im KFZ Kapitel 2: Funktionsentwicklung Prof. Dr.-Ing. Tim J. Nosper

Funktionsentwicklung und Offline-Simulation

Produkt/Projekt planen:Lastenheft, Projektplan

Produkt/Projekt planen:Lastenheft, Projektplan

Produkt definieren:Pflichtenheft,

formale Spezifikation

Produkt definieren:Pflichtenheft,

formale Spezifikation

Programm entwerfen:SW-Architektur

Programm entwerfen:SW-Architektur

Progr.-Module codieren:C-Sourcecode

Progr.-Module codieren:C-Sourcecode

Prototypen- oder Seriencode erzeugen:compilierter, gelinkter Maschinencode

Prototypen- oder Seriencode erzeugen:compilierter, gelinkter Maschinencode

Modultest, Code-Review:Ergebnisprotokolle

Modultest, Code-Review:Ergebnisprotokolle

Integrationstest:Ergebnisprotokolle

Integrationstest:Ergebnisprotokolle

Systemtest: Prüfstand, Fahrversuch:Ergebnisprot., Versuchsberichte,

Parameterfestlegung

Systemtest: Prüfstand, Fahrversuch:Ergebnisprot., Versuchsberichte,

Parameterfestlegung

Feldtest, Kundentest:Feldberichte, Garantiestatistik

Feldtest, Kundentest:Feldberichte, GarantiestatistikFunktions-

entwicklung + Offline-Simulation

Bild 2.6_35 Quelle: Wrede

Mechatronische Systemtechnik im KFZ Kapitel 2: Funktionsentwicklung Prof. Dr.-Ing. Tim J. Nosper

Funktionsentwicklung und Offline-Simulation

Funktionsentwicklung+

Offline-Simulation(mit MATLAB/Simulink)

Funktionsentwicklung+

Offline-Simulation(mit MATLAB/Simulink)

SW-Reglermodell in grafischer Blockstruktur:

v-Regelung (PID)

SW-Streckenmodell des geregelten Systems:

Fahrzeug und Straße

Entwicklungssystem PC (Host)

Anwendung:

Funktion schnell und kostengünstig entwickeln und prüfen ohne Hardware !

Bild 2.6_36 Quelle: Wrede

Mechatronische Systemtechnik im KFZ Kapitel 2: Funktionsentwicklung Prof. Dr.-Ing. Tim J. Nosper

Realer Fahrgeschwindigkeitsregler (Tempomat)

Bedienhebel

El. Steuergerät mit Regler

Drosselklappen-steller + Poti

Geschwindigkeits-sensor

+ -

Zündschalter

12 V

Schalter Bremse

Schalter Kupplung

Bild 2.6_37 Quelle: Wrede

Mechatronische Systemtechnik im KFZ Kapitel 2: Funktionsentwicklung Prof. Dr.-Ing. Tim J. Nosper

Erstes Simulink- Modell für FGR

-Regler (PID)Fahrzeug-

und Straßenmodell

Sollwert-bildung

Stellgröße

Antriebs- und Bremskraft ZSollx&

Istx&

x&

Bild 2.6_38 Quelle: Wrede

Mechatronische Systemtechnik im KFZ Kapitel 2: Funktionsentwicklung Prof. Dr.-Ing. Tim J. Nosper

Erweiterung des Simulink- Modells für FGR

-Regler

Fahrzeug-und

Straßenmodell

Sollwertbildung,Ein/Aus

Bedienhebel

StellgliedAntrieb/Bremse

-Sensor

Bedienhebel/ Schalterstellung

Stellgröße Antriebskraft ZSoll

Stellgröße Antriebskraft Zist

FahrerGaspedalvorgabe

Zsoll,Gas/Bremse

ZündschalterBremsschalter

Kupplungsschalter

Schalterstellung

htheoretisc,Istx&

gemessen,Istx&

Sollx&

x&

Istx&

Bild 2.6_39 Quelle: Wrede

Mechatronische Systemtechnik im KFZ Kapitel 2: Funktionsentwicklung Prof. Dr.-Ing. Tim J. Nosper

Parameteroptimierung

Produkt/Projekt planen:Lastenheft, Projektplan

Produkt/Projekt planen:Lastenheft, Projektplan

Produkt definieren:Pflichtenheft,

formale Spezifikation

Produkt definieren:Pflichtenheft,

formale Spezifikation

Programm entwerfen:SW-Architektur

Programm entwerfen:SW-Architektur

Progr.-Module codieren:C-Sourcecode

Progr.-Module codieren:C-Sourcecode

Prototyp- oder Seriencode erzeugen:compilierter, gelinkter Maschinencode

Prototyp- oder Seriencode erzeugen:compilierter, gelinkter Maschinencode

Modultest, Code-Review:Ergebnisprotokolle

Modultest, Code-Review:Ergebnisprotokolle

Integrationstest:Ergebnisprotokolle

Integrationstest:Ergebnisprotokolle

Systemtest: HiL, Fahrzeugversuch:Ergebnisprot., Versuchsberichte,

Parameterfestlegung

Systemtest: HiL, Fahrzeugversuch:Ergebnisprot., Versuchsberichte,

Parameterfestlegung

Feldtest, Kundentest:Feldberichte, Garantiestatistik

Feldtest, Kundentest:Feldberichte, Garantiestatistik

Parameter-Optimierung

Bild 2.6_40 Quelle: Wrede

Mechatronische Systemtechnik im KFZ Kapitel 2: Funktionsentwicklung Prof. Dr.-Ing. Tim J. Nosper

Parameteroptimierung

Parameteroptimierungbereits in der

Funktionsentwicklungs- undPrototypenphase

Parameteroptimierungbereits in der

Funktionsentwicklungs- undPrototypenphase

Parameter sind bei der FGR z.B. die Regler-Parameter für den PID-Geschwindigkeitsregler (Kp, Ki ,Kd).

Die optimale Kombination dieser Reglerparameter kann ermittelt werden, indem in einem Batch-Durchlauf (z.B. über Nacht) sehr viele Varianten systematisch durchsimuliert werden.

Optimierungskriterien können dabei sein z.B. stationäre Regelabweichung, Schnelligkeit des Einschwingens bei Sollgeschwindigkeitssprung oder die Amplitude unerwünschter Überschwinger.

Bild 2.6_41 Quelle: Wrede

Mechatronische Systemtechnik im KFZ Kapitel 2: Funktionsentwicklung Prof. Dr.-Ing. Tim J. Nosper

Rapid Prototyping

Produkt/Projekt planen:Lastenheft, Projektplan

Produkt/Projekt planen:Lastenheft, Projektplan

Produkt definieren:Pflichtenheft,

formale Spezifikation

Produkt definieren:Pflichtenheft,

formale Spezifikation

Programm entwerfen:SW-Architektur

Programm entwerfen:SW-Architektur

Progr.-Module codieren:C-Sourcecode

Progr.-Module codieren:C-Sourcecode

Prototyp- oder Seriencode erzeugen:compilierter, gelinkter Maschinencode

Prototyp- oder Seriencode erzeugen:compilierter, gelinkter Maschinencode

Modultest, Code-Review:Ergebnisprotokolle

Modultest, Code-Review:Ergebnisprotokolle

IntegrationstestErgebnisprotokolle

IntegrationstestErgebnisprotokolle

Systemtest: Prüfstand, Fahrversuch:Ergebnisprot., Versuchsberichte,

Parameterfestlegung

Systemtest: Prüfstand, Fahrversuch:Ergebnisprot., Versuchsberichte,

Parameterfestlegung

Feldtest, Kundentest:Feldberichte, Garantiestatistik

Feldtest, Kundentest:Feldberichte, Garantiestatistik

Rapid Prototyping

Bild 2.6_42 Quelle: Wrede

Mechatronische Systemtechnik im KFZ Kapitel 2: Funktionsentwicklung Prof. Dr.-Ing. Tim J. Nosper

Rapid Prototyping: Notwendige Software und Hardware (Beispiel)

Simulation: MATLAB/Simulink/StateflowSimulation: MATLAB/Simulink/Stateflow

Codegenerierung: Real-Time WorkshopCodegenerierung: Real-Time Workshop

Linker + Compiler (hardwarespezifisch)Linker + Compiler (hardwarespezifisch)

Real-Time Hardware

Experiment Software (hardwarespezifisch)Experiment Software (hardwarespezifisch)

I/O

Reale Welt

Modell als C-Code + Treiber teilweise hardwareabhängig

Modell als Blockdiagramm hardwareunabhängig

Single-board modular Entwickl.-SG 2. PC (xPC)

externer C-Code

externer C-Code

z.B. schon vorhanden

Bild 2.6_43 Quelle: Wrede

Mechatronische Systemtechnik im KFZ Kapitel 2: Funktionsentwicklung Prof. Dr.-Ing. Tim J. Nosper

Rapid Prototyping

Rapid Prototyping(Übersetzung in C-Code

für Prototypentest)

Rapid Prototyping(Übersetzung in C-Code

für Prototypentest)

Zielsystem:reales Fahrzeug

auf der Teststrecke

Zielsystem:reales Fahrzeug

auf der Teststrecke

Entwicklungs-Steuergerät mit Input/Output(CAN, digital I/O,...)

Entwicklungs-Steuergerät mit Input/Output(CAN, digital I/O,...)

Prototypen-C-Source-CodePrototypen-C-Source-Code

Entwicklungssystem PC (Host)

Anwendung:

Schnell die Funktion auf realen Prototypen testen und weiterentwickeln !

I/O

SW-Funktionsmodell des FGR grafischer Blockstruktur

SW-Funktionsmodell des FGR grafischer Blockstruktur

Download

+-Compil. Prototypen C-CodeCompil. Prototypen C-Code 1001

0011

Bild 2.6_44 Quelle: Wrede

Mechatronische Systemtechnik im KFZ Kapitel 2: Funktionsentwicklung Prof. Dr.-Ing. Tim J. Nosper

FGR - Prototyp im Entwicklungssteuergerät im Fahrzeug

Bedienhebel

Entwicklungs-Steuergerät mit FG-Regler

Motronic-SGGeschwindigkeits-sensor

+ -

Zündschalter

12 V

Schalter Bremse

Schalter Kupplung

CAN

Rapid Prototyping Software

(compilierter C-Code)

Rapid Prototyping Software

(compilierter C-Code)

- Download C-Code - Parametereinstellung - Messdatenerfassung

Notebook:

Bild 2.6_45 Quelle: Wrede

Mechatronische Systemtechnik im KFZ Kapitel 2: Funktionsentwicklung Prof. Dr.-Ing. Tim J. Nosper

Automatische Generierung von Seriencode

Produkt/Projekt planen:Lastenheft, Projektplan

Produkt/Projekt planen:Lastenheft, Projektplan

Produkt definieren:Pflichtenheft,

formale Spezifikation

Produkt definieren:Pflichtenheft,

formale Spezifikation

Programm entwerfen:SW-Architektur

Programm entwerfen:SW-Architektur

Progr.-Module codieren:C-Sourcecode

Progr.-Module codieren:C-Sourcecode

Prototypen- oder Seriencode erzeugen:compilierter, gelinkter Maschinencode

Prototypen- oder Seriencode erzeugen:compilierter, gelinkter Maschinencode

Modultest, Code-Review:Ergebnisprotokolle

Modultest, Code-Review:Ergebnisprotokolle

Integrationstest:Ergebnisprotokolle

Integrationstest:Ergebnisprotokolle

Systemtest: Prüfstand, Fahrversuch:Ergebnisprot., Versuchsberichte,

Parameterfestlegung

Systemtest: Prüfstand, Fahrversuch:Ergebnisprot., Versuchsberichte,

Parameterfestlegung

Feldtest, Kundentest:Feldberichte, Garantiestatistik

Feldtest, Kundentest:Feldberichte, Garantiestatistik

Automatische Generierung von Seriencode

Bild 2.6_46 Quelle: Wrede

Mechatronische Systemtechnik im KFZ Kapitel 2: Funktionsentwicklung Prof. Dr.-Ing. Tim J. Nosper

Optimiertes SW-Funktionsmodelldes FGR in graf. Blockstruktur

Optimiertes SW-Funktionsmodelldes FGR in graf. Blockstruktur

Serien-C-CodeSerien-C-Code

Compilierter SeriencodeCompilierter Seriencode

Generierung von Maschinencode für die Serie (Seriencode)

Generierung vonSeriencode

Generierung vonSeriencode

Entwicklungssystem PC (Host)

Anwendung:

Funktion schnell und fehlerfrei in Seriencodeumsetzen.

Compilierter Seriencode der FGR

Compilierter Seriencode der FGR

Zielhardware: Serien-FGR - Steuergerät

Download10010011

Bild 2.6_47 Quelle: Wrede

Mechatronische Systemtechnik im KFZ Kapitel 2: Funktionsentwicklung Prof. Dr.-Ing. Tim J. Nosper

FGR im Ziel-(Serien)-Steuergerät im Fahrzeug

Bedienhebel

Serien-SG mit FG-Regler

Motronic-SGGeschwindigkeits-sensor

+ -

Zündschalter

12 V

Schalter Bremse

Schalter Kupplung

CAN

- Download Serien-Code - Parametereinstellung -Messdatenerfassung

Notebook: über Diagnose-Schnittstelle

CompilierterSerien-CodeCompilierterSerien-Code

Bild 2.6_48 Quelle: Wrede

Mechatronische Systemtechnik im KFZ Kapitel 2: Funktionsentwicklung Prof. Dr.-Ing. Tim J. Nosper

Beispiel Fahrgeschwindigkeitsregelung

Produkt/Projekt planen:Lastenheft, Projektplan

Produkt/Projekt planen:Lastenheft, Projektplan

Produkt definieren:Pflichtenheft,

formale Spezifikation

Produkt definieren:Pflichtenheft,

formale Spezifikation

Programm entwerfen:SW-Architektur

Programm entwerfen:SW-Architektur

Progr.-Module codieren:C-Sourcecode

Progr.-Module codieren:C-Sourcecode

Prototypen- oder Seriencode erzeugen:compilierter, gelinkter Maschinencode

Prototypen- oder Seriencode erzeugen:compilierter, gelinkter Maschinencode

Modultest, Code-Review:Ergebnisprotokolle

Modultest, Code-Review:Ergebnisprotokolle

Integrationstest:Ergebnisprotokolle

Integrationstest:Ergebnisprotokolle

Systemtest: HiL, Fahrzeugversuch:Ergebnisprot., Versuchsberichte,

Parameterfestlegung

Systemtest: HiL, Fahrzeugversuch:Ergebnisprot., Versuchsberichte,

Parameterfestlegung

Feldtest, Kundentest:Feldberichte, Garantiestatistik

Feldtest, Kundentest:Feldberichte, Garantiestatistik

HW in the Loop

Bild 2.6_49 Quelle: Wrede

Mechatronische Systemtechnik im KFZ Kapitel 2: Funktionsentwicklung Prof. Dr.-Ing. Tim J. Nosper

Hardware-in-the-Loop Test des FGR – Systems: Hardware

Bedienhebel/ Schalterstellungen

CAN-Schnittstelle

HW-Nachbildung der Schaltsignale von•Bedienhebel•Zündschalter•Bremsschalter•Kupplungsschalter

FGR - SG

Host, Bedienrechner

xPC(Echtzeit-Simulation)

+ -

Digital Output

CAN

I/O-Karte

Bild 2.6_50 Quelle: Wrede

Mechatronische Systemtechnik im KFZ Kapitel 2: Funktionsentwicklung Prof. Dr.-Ing. Tim J. Nosper

Hardware-in-the-Loop-Prüfstand für Bremssystem

Bild 2.6_51 Quelle: Wrede