26
Stefan Rose Modellierung: MATLAB – Simulink - Stateflow Modellierung: Modellierung: MATLAB – Simulink - MATLAB – Simulink - Stateflow Stateflow Stefan Rose Stefan Rose [email protected] [email protected] Uni Paderborn Uni Paderborn Seminar Seminar SoftwareEngineering für SoftwareEngineering für softwareintensive Systeme“ softwareintensive Systeme“ SS 2006 SS 2006

Stefan Rose Modellierung: MATLAB – Simulink - Stateflow Modellierung: MATLAB – Simulink - Stateflow Stefan Rose [email protected] Uni Paderborn Seminar „SoftwareEngineering

Embed Size (px)

Citation preview

Page 1: Stefan Rose Modellierung: MATLAB – Simulink - Stateflow Modellierung: MATLAB – Simulink - Stateflow Stefan Rose srose@upb.de Uni Paderborn Seminar „SoftwareEngineering

Stefan Rose

Modellierung:MATLAB – Simulink - Stateflow

Modellierung:Modellierung:MATLAB – Simulink - MATLAB – Simulink -

StateflowStateflowStefan RoseStefan Rose

[email protected]@upb.de

Uni PaderbornUni PaderbornSeminar Seminar

„„SoftwareEngineering für SoftwareEngineering für softwareintensive Systeme“ softwareintensive Systeme“

SS 2006SS 2006

Page 2: Stefan Rose Modellierung: MATLAB – Simulink - Stateflow Modellierung: MATLAB – Simulink - Stateflow Stefan Rose srose@upb.de Uni Paderborn Seminar „SoftwareEngineering

Stefan Rose

Modellierung:MATLAB – Simulink - Stateflow

03:04 nachm.22

MATLAB als Werkzeug zur MATLAB als Werkzeug zur modellbasierten Softwareentwicklungmodellbasierten Softwareentwicklung• mehr als „nur“ MATLAB• sehr mächtiges Werkzeug durch

verschiedene Erweiterungen• Automatische Codegenerierung • Integriertes Testen Zeitersparnis

Eingesetzt in Industrie und ForschungEingesetzt in Industrie und Forschung• Automobilbau• Luft- und Raumfahrt• Medizin• Maschinenbau

MotivationMotivation

Page 3: Stefan Rose Modellierung: MATLAB – Simulink - Stateflow Modellierung: MATLAB – Simulink - Stateflow Stefan Rose srose@upb.de Uni Paderborn Seminar „SoftwareEngineering

Stefan Rose

Modellierung:MATLAB – Simulink - Stateflow

03:04 nachm.33

InhaltInhalt

GrundlagenGrundlagen• Was ist MATLAB?• MATLAB Erweiterungen

ModellierungModellierung• Modellbasierte Softwareentwicklung

automatische Codegenerierung

• Anwendungsbeispiel Railroad Gate Controller

FazitFazit• Evaluation

InhaltInhalt

Modellierung

Fazit

Grundlagen

Page 4: Stefan Rose Modellierung: MATLAB – Simulink - Stateflow Modellierung: MATLAB – Simulink - Stateflow Stefan Rose srose@upb.de Uni Paderborn Seminar „SoftwareEngineering

Stefan Rose

Modellierung:MATLAB – Simulink - Stateflow

03:04 nachm.44

Abkürzung für „MATrix LABoratory“ Abkürzung für „MATrix LABoratory“ • Kernwerkzeug + Erweiterungen(Toolboxen)

Was ist MATLAB?Was ist MATLAB?

Inhalt

Modellierung

Fazit

GrundlagenGrundlagen

Page 5: Stefan Rose Modellierung: MATLAB – Simulink - Stateflow Modellierung: MATLAB – Simulink - Stateflow Stefan Rose srose@upb.de Uni Paderborn Seminar „SoftwareEngineering

Stefan Rose

Modellierung:MATLAB – Simulink - Stateflow

03:04 nachm.55

Kernwerkzeug Kernwerkzeug MATLAB I  MATLAB I  

Hochentwickelte Programmiersprache für technische Hochentwickelte Programmiersprache für technische BerechnungenBerechnungen

• Im Gegensatz zu Maple und Mupad aber rein numerisch• Operationen werden auf Matrizen ausgeführt• mathematische Funktionen (Algebra, Statistik, Filter,

Analysen) MATLAB UmgebungMATLAB Umgebung

• Interpreter• Visualisierung von Daten (2D/3D)

Erweiterbarkeit durch ToolboxenErweiterbarkeit durch Toolboxen• Erschließung von versch. Anwendungsbereichen

Finanzanalyse biologische Probleme

Inhalt

Modellierung

Fazit

Grundlagen KernwerkzeugKernwerkzeugSimulinkErweiterungen

Page 6: Stefan Rose Modellierung: MATLAB – Simulink - Stateflow Modellierung: MATLAB – Simulink - Stateflow Stefan Rose srose@upb.de Uni Paderborn Seminar „SoftwareEngineering

Stefan Rose

Modellierung:MATLAB – Simulink - Stateflow

03:04 nachm.66

Kernwerkzeug Kernwerkzeug MATLAB IIMATLAB II Die Matlab UmgebungDie Matlab Umgebung

Inhalt

Modellierung

Fazit

Grundlagen KernwerkzeugKernwerkzeugSimulinkErweiterungen

Page 7: Stefan Rose Modellierung: MATLAB – Simulink - Stateflow Modellierung: MATLAB – Simulink - Stateflow Stefan Rose srose@upb.de Uni Paderborn Seminar „SoftwareEngineering

Stefan Rose

Modellierung:MATLAB – Simulink - Stateflow

03:04 nachm.77

Simulink ISimulink I

Interaktive Modellierung, Simulation und Interaktive Modellierung, Simulation und Analyse von dynamischen SystemenAnalyse von dynamischen Systemen• lineare, nicht-lineare und diskrete Systeme• Modellierung durch Signalflusspläne /

Blockdiagramme• Signale können zu jedem Zeitpunkt abgegriffen

werden Voll integriert in MATLABVoll integriert in MATLAB Erweiterbarkeit durch ToolboxenErweiterbarkeit durch Toolboxen

• Codegenerierung

Inhalt

Modellierung

Fazit

Grundlagen KernwerkzeugSimulinkSimulinkErweiterungen

Page 8: Stefan Rose Modellierung: MATLAB – Simulink - Stateflow Modellierung: MATLAB – Simulink - Stateflow Stefan Rose srose@upb.de Uni Paderborn Seminar „SoftwareEngineering

Stefan Rose

Modellierung:MATLAB – Simulink - Stateflow

03:04 nachm.88

Grafische Oberfläche zur ModellierungGrafische Oberfläche zur Modellierung• Blockdiagrammeditor

Simulink IISimulink II Inhalt

Modellierung

Fazit

Grundlagen KernwerkzeugSimulinkSimulinkErweiterungen

Page 9: Stefan Rose Modellierung: MATLAB – Simulink - Stateflow Modellierung: MATLAB – Simulink - Stateflow Stefan Rose srose@upb.de Uni Paderborn Seminar „SoftwareEngineering

Stefan Rose

Modellierung:MATLAB – Simulink - Stateflow

03:04 nachm.99

Simulink S-FunctionsSimulink S-Functions• In Simulink eingebundener Code

MATLAB, C, C++, ADA, Fortran

• Vorteile Verwendung von externem Code Einbinden von hardwarenahem Code (Treiber)

Simulink BibliothekenSimulink Bibliotheken• große Anzahl fertiger Blöcke

Standard Logik, Filter, Sources, Signalverarbeitung Regelungstechnik, Vision, Kommunikation

• mit der Umgebung per Drag and Drop einzubinden

Simulink IIISimulink III Inhalt

Modellierung

Fazit

Grundlagen KernwerkzeugSimulinkSimulinkErweiterungen

Page 10: Stefan Rose Modellierung: MATLAB – Simulink - Stateflow Modellierung: MATLAB – Simulink - Stateflow Stefan Rose srose@upb.de Uni Paderborn Seminar „SoftwareEngineering

Stefan Rose

Modellierung:MATLAB – Simulink - Stateflow

03:04 nachm.1010

Erweiterungen Erweiterungen (Toolboxen)(Toolboxen)

Symbolic Math ToolboxSymbolic Math Toolbox• Erweiterung von Matlab um Maple Syntax

Optimization ToolboxOptimization Toolbox• Optimierung von Funktionen und Modellen

StateflowStateflow• Erweiterung um Zustandautomaten

Image Processing ToolboxImage Processing Toolbox• Bildverarbeitung mit MATLAB (Filter etc.)

Control System ToolboxControl System Toolbox• Modellierung von Regelungen

Communications ToolboxCommunications Toolbox• Kommunikationsnetze mit MATLAB

Inhalt

Modellierung

Fazit

Grundlagen KernwerkzeugSimulink

ErweiterungenErweiterungen

Page 11: Stefan Rose Modellierung: MATLAB – Simulink - Stateflow Modellierung: MATLAB – Simulink - Stateflow Stefan Rose srose@upb.de Uni Paderborn Seminar „SoftwareEngineering

Stefan Rose

Modellierung:MATLAB – Simulink - Stateflow

03:04 nachm.1111

Optimization Optimization ToolboxToolbox Methoden zur Optimierung von Methoden zur Optimierung von

FunktionenFunktionen• Nullstellensuche• Minimierung• Maximierung

Optimierung von Parametern eines Optimierung von Parametern eines Simulink ModellsSimulink Modells

Inhalt

Modellierung

Fazit

Grundlagen KernwerkzeugSimulink

ErweiterungenErweiterungen

Page 12: Stefan Rose Modellierung: MATLAB – Simulink - Stateflow Modellierung: MATLAB – Simulink - Stateflow Stefan Rose srose@upb.de Uni Paderborn Seminar „SoftwareEngineering

Stefan Rose

Modellierung:MATLAB – Simulink - Stateflow

03:04 nachm.1212

Stateflow IStateflow I

StateflowStateflow• Modellierung endlicher Zustandsautomaten• Im Gegensatz zu Simulink eventgesteuert

(Modellierung ereignisdiskreter Systeme)• Generierung von Simulink S-Functions Volle integriert in Simulink

Stateflow CoderStateflow Coder• Erweiterung zur automatischen

Codegenerierung aus Stateflow Modellen

Inhalt

Modellierung

Fazit

Grundlagen KernwerkzeugSimulink

ErweiterungenErweiterungen

Page 13: Stefan Rose Modellierung: MATLAB – Simulink - Stateflow Modellierung: MATLAB – Simulink - Stateflow Stefan Rose srose@upb.de Uni Paderborn Seminar „SoftwareEngineering

Stefan Rose

Modellierung:MATLAB – Simulink - Stateflow

03:04 nachm.1313

Stateflow OberflächeStateflow Oberfläche

Stateflow IIStateflow II Inhalt

Modellierung

Fazit

Grundlagen KernwerkzeugSimulink

ErweiterungenErweiterungen

Page 14: Stefan Rose Modellierung: MATLAB – Simulink - Stateflow Modellierung: MATLAB – Simulink - Stateflow Stefan Rose srose@upb.de Uni Paderborn Seminar „SoftwareEngineering

Stefan Rose

Modellierung:MATLAB – Simulink - Stateflow

03:04 nachm.1414

Semantik Stateflow Semantik Stateflow II Semantik ähnlich zu UML StatechartsSemantik ähnlich zu UML Statecharts

• Erweiterungen: Steuerung von Übergängen und Ereignissen

mit Hilfe temporaler Operatoren Condition Actions Ausführungsreihenfolge bei nicht

deterministischen Automaten• nicht in Stateflow enthalten:

Fork-Joins Synchronisationsconnectoren

Inhalt

Modellierung

Fazit

Grundlagen KernwerkzeugSimulink

ErweiterungenErweiterungen

Page 15: Stefan Rose Modellierung: MATLAB – Simulink - Stateflow Modellierung: MATLAB – Simulink - Stateflow Stefan Rose srose@upb.de Uni Paderborn Seminar „SoftwareEngineering

Stefan Rose

Modellierung:MATLAB – Simulink - Stateflow

03:04 nachm.1515

Steuerung von Übergängen und Ereignissen mit Steuerung von Übergängen und Ereignissen mit Hilfe temporaler OperatorenHilfe temporaler Operatoren

• before, after, at, every

Condition ActionsCondition Actions• Ausführung in jedem Fall (vor Transition Action)

  

Semantik Stateflow Semantik Stateflow IIII

Inhalt

Modellierung

Fazit

Grundlagen KernwerkzeugSimulink

ErweiterungenErweiterungen

Page 16: Stefan Rose Modellierung: MATLAB – Simulink - Stateflow Modellierung: MATLAB – Simulink - Stateflow Stefan Rose srose@upb.de Uni Paderborn Seminar „SoftwareEngineering

Stefan Rose

Modellierung:MATLAB – Simulink - Stateflow

03:04 nachm.1616

Ausführungsreihenfolge bei nicht Ausführungsreihenfolge bei nicht deterministischen Automatendeterministischen Automaten• grafische Anordnung im Editor entscheidet

oben vor unten links vor rechts Transitionen mit Guard werden bevorzugt

Semantik Stateflow Semantik Stateflow IIIIII

Inhalt

Modellierung

Fazit

Grundlagen KernwerkzeugSimulink

ErweiterungenErweiterungen

Page 17: Stefan Rose Modellierung: MATLAB – Simulink - Stateflow Modellierung: MATLAB – Simulink - Stateflow Stefan Rose srose@upb.de Uni Paderborn Seminar „SoftwareEngineering

Stefan Rose

Modellierung:MATLAB – Simulink - Stateflow

03:04 nachm.1717

Überblick Überblick ModellierungModellierung

Modellbasierte Softwareentwickling mit Modellbasierte Softwareentwickling mit MATLAB/Simulink und StateflowMATLAB/Simulink und Stateflow

• Hybride Modellierung• Plattformunabhängig• (Hardware-in-the-loop) Simulation• Möglichkeit zur automatischen Codegenerierung

Beispielhafte Modellierung eines Systems anhand Beispielhafte Modellierung eines Systems anhand des Railroad Gate Controllersdes Railroad Gate Controllers

• Simulink Umgebungs-Modell• Stateflow Diagramm• Simulation

Inhalt

ModellierungModellierung

Fazit

Grundlagen KernwerkzeugSimulinkErweiterungen

MDD Beispiel

Page 18: Stefan Rose Modellierung: MATLAB – Simulink - Stateflow Modellierung: MATLAB – Simulink - Stateflow Stefan Rose srose@upb.de Uni Paderborn Seminar „SoftwareEngineering

Stefan Rose

Modellierung:MATLAB – Simulink - Stateflow

03:04 nachm.1818

Modellierung IModellierung I

Modellierung hybrider SystemeModellierung hybrider Systeme• diskrete und kontinuierliche Modelle mit Simulink

möglich / auch in Kombination• bei eingebetteten Systemen oftmals aufgrund der

Umgebung nötig• Echtzeitumgebungen können so modelliert werden

SimulationenSimulationen• Hardeware-in-the-Loop

Modelle beschreiben die Hardware

• Software-in-the-Loop Hardware wird simuliert

Inhalt

Modellierung

Fazit

Grundlagen KernwerkzeugSimulinkErweiterungen

MDDMDD Beispiel

Page 19: Stefan Rose Modellierung: MATLAB – Simulink - Stateflow Modellierung: MATLAB – Simulink - Stateflow Stefan Rose srose@upb.de Uni Paderborn Seminar „SoftwareEngineering

Stefan Rose

Modellierung:MATLAB – Simulink - Stateflow

03:04 nachm.1919

Modellierung IIModellierung II

Automatische Codegenerierung mit Automatische Codegenerierung mit MATLAB/SimulinkMATLAB/Simulink• Real-Time Workshop

diskrete, kontinuierliche und hybride Modelle RTW Embedded Coder

• Stateflow Coder Zustandsdiagramm <-> C-Code

• TargetLink Externes Tool von DSPACE verschiedene Simulationsmöglichkeiten

Inhalt

Modellierung

Fazit

Grundlagen KernwerkzeugSimulinkErweiterungen

MDDMDD Beispiel

Page 20: Stefan Rose Modellierung: MATLAB – Simulink - Stateflow Modellierung: MATLAB – Simulink - Stateflow Stefan Rose srose@upb.de Uni Paderborn Seminar „SoftwareEngineering

Stefan Rose

Modellierung:MATLAB – Simulink - Stateflow

03:04 nachm.2020

AnwendungsbeispielAnwendungsbeispiel

Railroad Gate ControllerRailroad Gate Controller x beschreibt die Position des Zuges (in m)

initialisiert mit 5000 v = x‘, Geschwindigkeit Zug

y beschreibt die Position der Schranke (in °) initialisiert mit 90 vSchranke = y‘, Geschwindigkeit Schranke

• (x>1000) v= 50, vSchranke= 0• x<=1000 v= 30, vSchranke= -9 (bis y= 0) • x<= -100 v= 5, vSchranke= +9 (bis y= 90)

Inhalt

Modellierung

Fazit

Grundlagen KernwerkzeugSimulinkErweiterungen

MDD BeispielBeispiel

Page 21: Stefan Rose Modellierung: MATLAB – Simulink - Stateflow Modellierung: MATLAB – Simulink - Stateflow Stefan Rose srose@upb.de Uni Paderborn Seminar „SoftwareEngineering

Stefan Rose

Modellierung:MATLAB – Simulink - Stateflow

03:04 nachm.2121

Modellierung des ZustandautomatenModellierung des Zustandautomaten

Railroad Gate Railroad Gate Controller IController I

Inhalt

Modellierung

Fazit

Grundlagen KernwerkzeugSimulinkErweiterungen

MDD BeispielBeispiel

Page 22: Stefan Rose Modellierung: MATLAB – Simulink - Stateflow Modellierung: MATLAB – Simulink - Stateflow Stefan Rose srose@upb.de Uni Paderborn Seminar „SoftwareEngineering

Stefan Rose

Modellierung:MATLAB – Simulink - Stateflow

03:04 nachm.2222

Railroad Gate Railroad Gate Controller IIController II

SchnittstellenSchnittstellen• Input

x : die Entfernung zum Bahnübergang y : die Position der Schranke z : laufende „Zeit“ um Delay u einzuhalten u : Konstante (Delay)

• Outputs v = x‘: Geschwindigkeit Zug vSchranke = y‘ : Geschwindigkeit Schranke

Inhalt

Modellierung

Fazit

Grundlagen KernwerkzeugSimulinkErweiterungen

MDD BeispielBeispiel

Page 23: Stefan Rose Modellierung: MATLAB – Simulink - Stateflow Modellierung: MATLAB – Simulink - Stateflow Stefan Rose srose@upb.de Uni Paderborn Seminar „SoftwareEngineering

Stefan Rose

Modellierung:MATLAB – Simulink - Stateflow

03:04 nachm.2323

Simulink ModellierungSimulink Modellierung

Railroad Gate Railroad Gate Controller IIIController III

Modell/Verhalten des ZugesModell/Verhalten des Zuges

Modell/Verhalten der SchrankeModell/Verhalten der Schranke

RG Controller alsRG Controller alsZustandautomatZustandautomat

Inhalt

Modellierung

Fazit

Grundlagen KernwerkzeugSimulinkErweiterungen

MDD BeispielBeispiel

Page 24: Stefan Rose Modellierung: MATLAB – Simulink - Stateflow Modellierung: MATLAB – Simulink - Stateflow Stefan Rose srose@upb.de Uni Paderborn Seminar „SoftwareEngineering

Stefan Rose

Modellierung:MATLAB – Simulink - Stateflow

03:04 nachm.2424

SimulationSimulation

Inhalt

Modellierung

Fazit

Grundlagen KernwerkzeugSimulinkErweiterungen

MDD BeispielBeispiel

Railroad Gate Railroad Gate Controller IVController IV

Page 25: Stefan Rose Modellierung: MATLAB – Simulink - Stateflow Modellierung: MATLAB – Simulink - Stateflow Stefan Rose srose@upb.de Uni Paderborn Seminar „SoftwareEngineering

Stefan Rose

Modellierung:MATLAB – Simulink - Stateflow

03:04 nachm.2525

FazitFazit Mächtiges Programm zur Modellierung und Simulation von Mächtiges Programm zur Modellierung und Simulation von

kontinuierlichen, diskreten und hybriden Modellenkontinuierlichen, diskreten und hybriden Modellen Starke Erweiterbarkeit durch sehr große Anzahl von Starke Erweiterbarkeit durch sehr große Anzahl von

ErweiterungenErweiterungen• Anpassung an sehr verschiedene Aufgabenbereiche

Medizin Robotik Automobilbau

Große Verbreitung in der IndustrieGroße Verbreitung in der Industrie• spart Zeit und Kosten• Software gewinnt an Stabilität durch verschiedene Test weniger Fehler schneller am Markt

Inhalt

Modellierung

FazitFazit

Grundlagen KernwerkzeugSimulinkErweiterungen

MDD Beispiel

Page 26: Stefan Rose Modellierung: MATLAB – Simulink - Stateflow Modellierung: MATLAB – Simulink - Stateflow Stefan Rose srose@upb.de Uni Paderborn Seminar „SoftwareEngineering

Stefan Rose

Modellierung:MATLAB – Simulink - Stateflow

03:04 nachm.2626

EndeEnde

Vielen Dank Vielen Dank für die für die

AufmerksamkeitAufmerksamkeit

… … Fragen?Fragen?

Inhalt

Modellierung

FazitFazit

Grundlagen KernwerkzeugSimulinkErweiterungen

MDD Beispiel