Stateflow: Eine grafische Erweiterung zu SIMULINK

Ähnliche Dokumente
Stateflow: Eine grafische Erweiterung zu SIMULINK

11. Aufgabenblatt

OOA-Dynamische Konzepte

2. Übung zu Software Engineering

3 Kurzeinführung in Matlab

Modellgestützte Analyse und Optimierung Übungsblatt 8

JavaScript. Dies ist normales HTML. Hallo Welt! Dies ist JavaScript. Wieder normales HTML.

Theorie zu Übung 8 Implementierung in Java

Anleitung zur Installation und Verwendung von eclipseuml 2.1.0

State Event Technik CT2, Donnerstag / TE402 M. Thaler, TG208, tham@zhaw.ch

Vgl. Oestereich Kap 2.6 Seiten

Repetitorium Informatik (Java)

Überschrift/Caption. Eigenschaftenfenster

Kurzanleitung zur Verwendung der Java-IDE NetBeans (1)

Stapelverarbeitung mit Adobe Acrobat Professional. Leibniz Universität IT Services Anja Aue

Theoretische Informatik 1 WS 2007/2008. Prof. Dr. Rainer Lütticke

Michael Kolberg. einfach klipp & klar. Microsofft* Press

Modulare Grafische Programmierung (MGP) von FPGAs

Innovator for Model Sketching. Kurzanleitung zu Installation und Benutzung

4.1 Allgemeines. In den folgenden Aufgaben werden beispielhaft einige Anwendungsmöglichkeiten von MS- Access demonstriert.

Programmieren für Wirtschaftswissenschaftler SS 2015

Inhalt 6 Vorwort 10 1 Warum Perl? 12 2 Grundlagen Variablen Spezial-Variablen Kontext Wahrheitswert 18 3 Skalare 20 3.

UML fürs Pflichtenheft

Browsereinstellungen Geobasisdaten online

Inhaltsüberblick. I. Grundbegriffe - Objekte und Klassen. Organisatorisches. I. Grundbegriffe - Objektorientierte Konzepte

R-Wörterbuch Ein Anfang... ein Klick auf einen Begriff führt, sofern vorhanden, zu dessen Erklärung.

Modellbildung und Analyse eingebetteter Systeme für mechatronische Anwendungen mit höheren Petri-Netze unter Verwendung verschiedener Erweiterungen

Eltako FVS. Verwendung von Systemfunktionen. Grenzenlose Flexibilität und Komfort in der Gebäudeinstallation

Formulare. Datenbankanwendung 113

Variablen in MATLAB. Unterschiede zur Mathematik: Symbolisches und numerisches Rechnen. Skriptdateien. for-schleifen.

Ergebnisse des Praktikums Dreiphasensystem (Ströme) 1) Berechnung aller Ströme eines Dreiphasensystems (Verbraucher-Dreieckschaltung)

Generierung von Steuerungsprogrammcode für SPS und μc aus Petri-Netz-Modellen

Microsoft Access 2010 Bilder

Handbuch ECDL 2003 Modul 5: Datenbank Formulare anpassen

Einführung in Automation Studio

Objektorientierte Modellierung (1)

Dialognetze. Ziel : Beschreibung von Methoden und Beschreibungstechniken für den Entwurf und die Dokumentation von Dialogabläufen

Einführung in SPSS. Sitzung 2: Datenbereinigung und Datenmanagement. Knut Wenzig. 9. Dezember 2004

Handbuch zum VivaWeb-Serienbrief-Programm

Auswertung erstellen: Liste mit -

Programmieren II. Dr. Klaus Höppner. Hochschule Darmstadt WS 2006/2007

Das Anwendungsfenster

Probeklausur: Programmierung WS04/05

Algorithmen und Programmierung II

PDF created with FinePrint pdffactory trial version Dreamweaver - Schulung, Cosima Joergens, S. 1

Alternative Schutzmechanismen für Excel

"Spezifikationsbasierter Softwaretest" Test mit Matlab/Simulink/Stateflow

Beispiele zu den Verknüpfungs-Technologien-5.3.0

Jason T. Roff UML. IT Tutorial. Übersetzung aus dem Amerikanischen von Reinhard Engel

Einführung in den Einsatz von Objekt-Orientierung mit C++ I

Rahmendienste und Dienstfolgen

Filterregeln Einführung Migration der bestehenden Filterregeln...1. Alle eingehenden Nachrichten weiterleiten...2

2.4.3 Zustandsgraphen

DIskus. mit DISKUS. 1. Erzeugen einer 2. Versenden der 3. Gezippte mit HTML-Dateien 4.

2.4.3 Zustandsgraphen

Mastertabelle. Feldliste

PRODUKT UND LEISTUNGSBESCHREIBUNGS SYSTEM PULS. Handbuch zu PULS V 12.9

3. Die Programmiersprache Java

Verknüpfen & Einbetten von Daten

FAQ. VisBee - IDE FAQ Änderungsindex: 1.0. Änderungsdatum: Christ Elektronik GmbH. Alpenstraße 34 DE Memmingen

Die Programmiersprache C Eine Einführung

KNX BAOS Gadget. Installations- und Bedienanleitung. WEINZIERL ENGINEERING GmbH. DE Burgkirchen Web:

Algorithmen und ihre Programmierung

Einführung in die Programmierung

Programmieren in MATLAB Mehr als nur ein Taschenrechner

Drei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 16: 3-Schichten-Architektur 1 Fachkonzept - GUI

AAnleitung Team zur PC-Wahl Freischaltung informiert: der DEFENDO Firewa d Anleitungie

Dokumentation Eigenwartung

6. Zustandsorientierte Modellierung

Reparatur Manager. Verwaltungs-Programm für eyepc Reparaturen

Software-Engineering SS03. Zustandsautomat

MATLAB-Automatisierung von Dymola- Simulationen und Ergebnisauswertung Holger Dittus. Modelica User Group BaWü, Stuttgart,

Imagic IMS Client Allgemeines

Programmierung mit C Zeiger

4.2 Selbstdefinierte Matlab-Funktionen 1. Teil

Matlab Übersicht. Matlab steht für MATrix LABoratory, die Fa. The Mathworks wurde 1984 gegründet

Eclipse Tutorial.doc

Aktivitätsdiagramm (Activity Diagram)

Das Customizing Werkzeug für den. Business One Consultant. Business One Anwender

Content Management System (CMS) Manual

Anwenderdokumentation Prüfung nach dem Heilmittelkatalog

Die AFS-Nexmart Schnittstelle

Dynamische Geometrie

Suche schlecht beschriftete Bilder mit Eigenen Abfragen

OpenMP - Threading- Spracherweiterung für C/C++ Matthias Klein, Michael Pötz Systemprogrammierung 15. Juni 2009

Handbuch ECDL 2003 Professional Modul 3: Kommunikation Postfach aufräumen und archivieren

Grafische Benutzeroberfläche mit Glade und Python

A BFRAGEN IN M ICROSOFT A CCESS

Semestralklausur zu Modellierung verteilter Systeme

Das Vorgehen bei der Veränderung der Breiten wird sowohl bei Spalten als auch bei Höhe der Zeilen auf gleiche Art und Weise durchgeführt.

Simulink: Einführende Beispiele

TeleBuilder for Process Data

6.1 Statecharts in Rhapsody / UML 2.0

Informationsverarbeitung im Bauwesen

Reklamation RMA Schritt für Schritt zu Ihrer Online-RMA Schritt 1: Position oder Rechnung eingeben Schritt 1

GemBrowser Geografisches Informationssystem

Weiter mit beliebiger Taste.

Notationen zur Prozessmodellierung

Transkript:

Stateflow: Eine grafische Erweiterung zu SIMULINK Simulation mit Matlab/Simulink WS08/09

Was ist Stateflow? Modellierung und Simulation von endlichen Zustandsautomaten/ereignisorientierten reaktiven Systemen durch Zustandsübergangsdiagramme in einer grafischen Oberfläche (Chart) eingebettet in ein SIMULINK Modell Simulation mit Matlab/Simulink WS08/09 1

Einfaches Beispiel Reaktives System: Lichtschalter zwei Zustände: Ein und Aus Wechselt den Zustand durch das Ereignis schalten schalter/steuerung Ein schalten schalten Aus Printed 05 Jun 2001 09:59:44 Simulation mit Matlab/Simulink WS08/09 2

Starten von Stateflow Start durch Eingabe von: sf oder stateflow Elemente eines Stateflow Modells: Umgebendes SIMULINK Modell Stateflow Chart mit grafischem Editor State Machine (alle Charts zusammen) State Machine wird als SIMULINK S Funktion realisiert (automatische Erzeugung) Simulation mit Matlab/Simulink WS08/09 3

Grafische Grundelemente Grafische Grundelemente von Stateflow: Zustände mit Zustandsaktionen Transitionen mit Übergangsbedingungen (Labels) Default Transitions Connective Junction (Vereinigung von Transitionen) History Junction (Gedächtnis für zuletzt aktiven Zustand) Simulation mit Matlab/Simulink WS08/09 4

Grafische Elemente: Zustände(1) Eigenschaften von Zuständen: Sie beschreiben den Modus eines Systems und können entweder aktiv oder inaktiv sein Zustände können aktiviert und verlassen werden Sie können Aktionen ausführen: entry action, during action, exit action, on event action, bind action und ihre Aktivität an SIMULINK ausgeben Es gibt Exklusiv- oder Parallel Zustände Simulation mit Matlab/Simulink WS08/09 5

Grafische Elemente: Zustände(2) Anordnungsmöglichkeiten von Zuständen: Exklusiv-Oder: genau ein Zustand einer Hierarchieebene ist aktiv Parallel: mehrere Zustände sind gleichzeitig aktiv; Ausführungsreihenfolge und veränderte Darstellung beachten! Änderung im Kontextmenü Decomposition Simulation mit Matlab/Simulink WS08/09 6

Grafische Elemente: Transitionen(1) Transitionen sind Übergangsmöglichkeiten zwischen Zuständen: Überprüfung bei aktivem Quellobjekt und bei Auftreten von Events Label einer Transition kann folgende Felder enthalten: event[condition]{condition_action}/transition_action Default Transition wird geprüft, wenn kein Quellobjekt einer normalen Transition aktiv ist Simulation mit Matlab/Simulink WS08/09 7

Grafische Elemente: Transitionen(2) Typische Label einer Transition: Label besteht aus: Transition ist gültig, wenn: Event das Event auftritt Event und Bedingung das Event auftritt und die Bedingung wahr ist Bedingung ein beliebiges Event auftritt und die Bedingung wahr ist Transitionsaktion ein beliebiges Event auftritt leerer Label ein beliebiges Event auftritt Simulation mit Matlab/Simulink WS08/09 8

Grafische Elemente: Verbindungspunkte Verbindungspunkte... Stellen Entscheidungsmöglichkeiten zwischen mehreren möglichen Pfaden einer Transition dar Dienen dem Aufspalten oder Zusammenführen von Transitionen Ermöglichen Konstrukte wie z.b. Self Loop Transitionen oder reine Flussdiagramme (for-schleifen, if- Abfragen) Simulation mit Matlab/Simulink WS08/09 9

Triggermethoden eines Charts Ausführung nur bei Auftreten eines Events: inherited: externe Events von Simulink oder implizite Events bei jeder Neuberechnung der Eingangssignale Discrete: implizite Events in der angegebenen Abtastrate Continuous: implizite Events bei jedem Integrationsschritt von SIMULINK und evtl. auch dazwischen Simulation mit Matlab/Simulink WS08/09 10

Nicht-grafische Elemente: Data Dictionary(1) Data Dictionary entspricht dem Matlab Worksapce (Speicher aller Daten) Darstellung im Model Explorer Streng objektorientierter Aufbau (Einfluss auf Sichtbarkeit von Variablen!): Mutter-Kind Beziehungen Jedes Event und jede Variable muss vor der Verwendung deklariert werden Simulation mit Matlab/Simulink WS08/09 11

Nicht-grafische Elemente: Data Dictionary(2) Interne Variablen und Events: Zuordnung zum Mutter Objekt Externe Variablen und Events aus SIMULINK: Zuordnung zum Chart Hinzufügen von Variablen und Events zu Mutter- Objekten: Explorer Hinzufügen von Variablen und Events zum Chart: Explorer oder Stateflow Editor Simulation mit Matlab/Simulink WS08/09 12

Hierarchiebildung Ein Chart ist objektorientiert aufgebaut: Jeder Zustand kann weitere Kind-Objekte besitzen Kind-Objekte können auch wieder Zustände sein Dadurch ergibt sich die Möglichkeit einer Hierarchiebildung durch Super- und Substates Simulation mit Matlab/Simulink WS08/09 13

Hierarchiebildung: Exklusiv-Superstates(1) Unterteilung von Zuständen in Unterzustände zur Strukturierung des Charts: visuelle Zusammenfassung durch Gruppierung (Doppelklick) Zustände zu Funktionsgruppen zusammenfassen Einfügen von Gedächtnis durch History-Junctions Transitionen über Hierarchiegrenzen hinweg zulässig Simulation mit Matlab/Simulink WS08/09 14

Hierarchiebildung: Exklusiv-Superstates(2) Inner Transitions von Super- zu Substates zulässig Beachte: Superstate: er ist aktiv, wenn mindestens einer seiner Substates aktiv ist Superstate: er kann nur dann aktiv werden, wenn mindestens einer seiner Substates auch aktiv ist Substate: er wird verlassen, wenn der umgebende Superstate verlassen wird Simulation mit Matlab/Simulink WS08/09 15

Hierarchiebildung: Parallel-Superstates Unterteilung von Teilen des Charts in parallel ablaufende Untergruppen: Realisierung parallel ablaufender Vorgänge Ausführungsreihenfolge ist durch Plazierung gegeben: von links nach rechts und von oben nach unten Ausführungsreihenfolge wird durch Nummer angezeigt Erstellung: zuerst normalen Zustand erzeugen, dann im Kontextmenü Decomposition/Parallel wählen Simulation mit Matlab/Simulink WS08/09 16

Hierarchiebildung: Subcharts(1) sie entsprechen Subsystemen in SIMULINK sie besitzen identische Eigenschaften wie Superstates, insbesondere können sie Ziel und Quelle von Transitionen sein können sie als Exklusiv- oder Parallel-Subchart angeordnet sein können Transitionen über Subchart-Grenzen hinweg erfolgen Simulation mit Matlab/Simulink WS08/09 17

Hierarchiebildung: Subcharts(2) Erzeugung von Subcharts: zuerst einen Exklusiv- oder Parallel-Superstate erzeugen dann den Superstate markieren und im Kontextmenü Make Contents/Subcharted auswählen Simulation mit Matlab/Simulink WS08/09 18

Hierarchiebildung: Subcharts(3) Navigation: Öffnen des Subcharts durch Doppelklick Navigation durch die Pfeiltasten im grafischen Editor Transitionen nach Innen: ziehen der Transition zur Mitte des Subcharts bis ein Strudel erscheint Transitionen nach Außen: ziehen der Transition auf den Rand des Subcharts bis ein Strudel erscheint Simulation mit Matlab/Simulink WS08/09 19

Hierarchiebildung: Grafische Funktionen(1) Realisierung wiederkehrender Aktionen durch Funktionen: Implementierung als zustandslose Flußdiagramme Formale Funktionsdefinition im Label Berechnung des Funktionswerts in der Bedingungsoder Transitionsaktion Alle Elemente außer Zuständen sind zulässig, insbesondere Transitionen und Verbindungspunkte Simulation mit Matlab/Simulink WS08/09 20

Hierarchiebildung: Grafische Funktionen(2) Erstellen einer Funktion: Verwendung des Graphical Function Tool im Stateflow Editor Erstellen des Labels (formale Funktionsdefinition) Erstellen des Flussdiagramms mit Funktionswertberechnung Simulation mit Matlab/Simulink WS08/09 21

Action Language(1) Was ist Action Language? Zuweisungen an Variablen und Durchführen logischer Vergleiche, numerischer Operationen Zustandsaktionen: entry, during, exit-action send: Auslösen von Events in(state name), on event name: spezielle Abfragen (s. Tab. 12.3) Zugriff auf Matlab Workspace und Funktionen Simulation mit Matlab/Simulink WS08/09 22

Action Language(2) Verwendung von Action Language: Verwendung in den Labeln von Zuständen und Transitionen Addition/Subtraktion: a+b, a-b Vergleiche: a>b, a==b, a<=b, a b, a && b Zuweisungen: a=b, a++, a+=b Zusammenfassung in den Tab. 12.3 bis 12.6 Zugriff auf Matlab-Funktionen, z.b. a = matlab( sin(x) ) Simulation mit Matlab/Simulink WS08/09 23

Action Language(3) Variablen in Action Language: Ansprechen durch Variablenname in aktueller und höheren Hierarchieebenen (z.b. a) Ansprechen durch vollen Pfad bei lokalen Variablen in Kind-Objekten (z.b. Z1.On.a) Einzelne Elemente eines Arrays: matrix[1][3] Alle Elemente eines Arrays: matrix=matrix*10 Simulation mit Matlab/Simulink WS08/09 24

Action Language(4) Event-Broadcasting: Ungerichtet: Name des Events in einer Zustands- oder Transitionsaktion angeben Das Event ist in allen Zuständen seines Scopes sichtbar Gerichtet: send(event1,z2) sendet das Event event1 an Zustand Z2 Das Event ist nur im Zustand Z2 sichtbar Simulation mit Matlab/Simulink WS08/09 25

Anwendungsbeispiel: Getränkeautomat(1) Funktion des Automaten: Automat eingeschaltet: Zustand On Automat ausgeschaltet: Zustand Off Getränke: Orange, Cola, Fanta, Wasser Wenn der Automat eingeschaltet ist, existieren die Zustände Bereit (akzeptieren einer Auswahl) und einer für jedes Getränk Simulation mit Matlab/Simulink WS08/09 26

Anwendungsbeispiel: Getränkeautomat(2) Funktion des Automaten: Eine erneute Auswahl darf nur akzeptiert werden, wenn das Getränk entnommen wurde Alle Events werden in SIMULINK durch manuelle Schalter ausgelöst Die Getränkeauswahl wird durch eine Variable mit Werten von 1 bis 4 kodiert Simulation mit Matlab/Simulink WS08/09 27

Anwendungsbeispiel: Heizgebläse(1) Funktion des Gebläses: Es besitzt ein Lüfter und einen Heizstab (beide mit Ein-/Aus-Schalter) Der Heizstab darf nur bei aktivem Lüfter in Betrieb sein Alle Events werden durch manuelle Schalter in SIMU- LINK erzeugt Das Chart soll nur bei externen Triggersignalen ausgeführt werden Simulation mit Matlab/Simulink WS08/09 28

Anwendungsbeispiel: Heizgebläse(2) Funktion des Gebläses: Die Synchronisation zwischen beiden Superstates soll durch Event-Broadcasting erfolgen Die Schalterstellung des Heizstabs soll über eine Eingangsvariable modelliert werden. Es handelt sich um typisches Beispiel paralleler Superstates Simulation mit Matlab/Simulink WS08/09 29

Übungsaufgabe Mikrowellensteuerung(1) Aufgabenstellung: Türe kann offen oder geschlossen sein, nur im geschlossenen Zustand ist weitere Funktionalität möglich. Bei geschlossener Tür lässt sich die Mikrowelle ein- und ausschalten. Beim Öffnen der Türe während des Betriebs wird das Gerät abgeschaltet. Es existieren 3 Stufen der Mikrowellenleistung. Während des Betriebs soll ein Wechsel der Leistungsstufe jederzeit durch Auswahl einer Stufe und Betätigung eines Schalters möglich sein. Simulation mit Matlab/Simulink WS08/09 30

Übungsaufgabe Mikrowellensteuerung(2) Lösungshilfe: Erstellen Sie jeweils einen Zustand Open Off und Closed für die beiden Türstellungen. Ein Wechsel soll durch das Event door erfolgen. Erstellen Sie innerhalb von Closed die beiden Zustände Off und On. Ein Wechsel soll durch das Event switch erfolgen. Erstellen Sie innerhalb On drei Zustände (Stufe1, Stufe2, Stufe3) für die drei Leistungsstufen. Die Leistungsstufe wird durch die externe Variable stufe ausgewählt, der Wechsel durch das Event change ausgelöst. Denken Sie an die Möglichkeit einer Inner Transition. Erstellen Sie nun alle Variablen und Events im Explorer und im umgebenden Simulink Modell. Simulation mit Matlab/Simulink WS08/09 31