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