Inhalt. 10. Stateflow-Grundlagen 11. Übungen Stateflow. Daniel Schrammel - BA Stuttgart -

Ähnliche Dokumente
8. Stateflow Grundlagen. Daniel Schrammel - BA Stuttgart -

11. Aufgabenblatt

Stateflow: Eine grafische Erweiterung zu SIMULINK

Einführung in MATLAB + MATLAB Simulink. Dipl.-Inf. Markus Appel

Einführung in Computer Microsystems Sommersemester Vorlesung Dr.-Ing. Wolfgang Heenes

Fachhochschule Südwestfalen Wir geben Impulse. Kontrollstrukturen und Schleifen in Octave

Diplomarbeit: Erweiterung von KIEL um Stateflow-Charts. Adrian Posor

Inhalt. 8. Simulink Grundlagen 9. Simulink Übungen. Daniel Schrammel - BA Stuttgart -

Laborübung 4. Zustandsautomaten (Finite State Machines)

UML Grundlagen, Zustandsautomat. Zustandsautomaten bilden eine Erweiterung der endlichen Automaten

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

Wichtige Befehle bei der Programmierung von. FISCHER-Technik

Funktionen nur wenn dann

Arbeiten mit der Software STEP 7 und den Laborarbeitsplätzen SIMATIC S7-313C

Funktionen in JavaScript

Javakurs für Anfänger

Erste Schritte in OmniControl

Simulink - Modelle grafisch vergleichen

Algorithmen und ihre Programmierung

HTWK Leipzig Fakultät EIT. Praktikum Schaltungstechnik. Versuch PLD. Anleitung zum. Bedienen der Entwurfssoftware. StateCAD.

Funktionen nur wenn dann

Einführung in die C-Programmierung

Schleifen: Immer wieder dasselbe tun

Objektorientierte Analyse (OOA) Dynamisches Modell. Objektorientierte Analyse (OOA) Sequenzdiagramm

C# - Einführung in die Programmiersprache Bedingte Anweisungen und Schleifen

41.8 LUA-Grundlagen - Tabelle, if und Albernheit

Unterlagen. CPP-Uebungen-08/

Organisatorisches. drei Gruppen Gruppe 1: 10:10-11:40, Gruppe 2: 11:45-13:15 Gruppe 3: 13:20-14:50

Organisatorisches. Neue Übungsblätter: Nur mehr elektronisch? Abgabe Di, , 14 Uhr bis Do, , 8Uhr

Einführung in die Programmierung mit VBA

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java

Objektorientierte Programmierung

PG5 Starter Training PG5 Core und Webeditor 8 Daniel Ernst DE

Quick Guide Home Network Mode

FACHHOCHSCHULE AUGSBURG Hochschule für Technik, Wirtschaft und Gestaltung

CP500 Bediengeräte. CP500 Soft: First Step! (Beispiel mit AC31 Serie 40/50 ) Step3. ABB STOTZ-KONTAKT 1SBC159100M0102_Ch3 Ger

1 Native C Code in C# Umgebung mit Visual Studio 2010

Sprachkonstrukte. Einführung in Java. Folie 1 von Mai Ivo Kronenberg

3 Geoverarbeitung mit dem ModelBuilder

Aufbau und Bestandteile von Formularen. Oracle Forms. Erstellen eines neuen Blocks (1) Starten von Oracle Forms

WebRTU. Schritt-für-Schritt. Anleitungen

SIMULINK. Grundlagen

4.2 Selbstdefinierte Matlab-Funktionen 1. Teil

SCHNELLEINSTIEG ZUM TOOL NODEBUILDER

Multisim-Übung 0: Kurzanleitung Multisim V11.0 Bezug zum Lehrbuch: Grundlagen der Elektrotechnik alle Beispiele. Name: Klasse: Datum:

2 Teil 2: Nassi-Schneiderman

JSP JSTL. JEE Vorlesung Teil 6. Ralf Gitzel

Einführung in das Programmieren in der Sekundarstufe 1. mit einem Arduino und der Physical-Computing-Plattform

Infokarte: Snap4Arduino

06 While-Schleifen. While-Schleifen 1/7 Wiederholung: Schleifen

Funktionen in JavaScript

32.4 Anpassen von Menüs und Symbolleisten 795i

Theorie zu Übung 8 Implementierung in Java

zu große Programme (Bildschirmseite!) zerlegen in (weitgehend) unabhängige Einheiten: Unterprogramme

Query-Manager Kurzanleitung Inhalt. Query-Manager. Kurzanleitung

Tipps und Tricks für die Capture DB. Sammlung wichtiger Tipps und Tricks

Labor Modellgestütztes Software Engineering. Versuch 2

PROGRAMMIERUNG IN JAVA

Kapitel 4. Kontrollstrukturen

Bedienungsanleitung Version 1.0

Grundlagen von C# - 2

Einstieg in die Informatik mit Java

Modellierung von Echtzeitsystemen

PHP 5.4 ISBN Stephan Heller, Andreas Dittfurth 1. Ausgabe, September Grundlagen zur Erstellung dynamischer Webseiten GPHP54

Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++, 1. Teil

Einführung in Caspoc 2007

Visual Basic Editor CATIA V5

Übungen zur Vorlesung Wissenschaftliches Rechnen I. Grundelemente von Java. Eine Anweisung. wird mit dem Wertzuweisungsoperator = geschrieben.

Übungen mit Anleitung. Hamster-Simulator. Nicola Ramagnano 23. Oktober 2011

Bedienungsanleitung Version 1.0

Multi-IQ. Firmware: RS232-Data Manager for UPS 4 x RS232 / 1 x LAN-Contacts flash upgradeable. Benutzerhandbuch. (Serial Number / Seriennummer)

Nur für TU-internen Gebrauch! Autor: Jana Andersen Team SC, TU Berlin. Abbildung 1: Kopieren einer Fragegruppe in der Fragebibliothek in EvaSys

Raspberry Pi Lüftersteuerung

javascript Coding-Guidelines 2. Ausgabe Februar 2015 Der Guideline beschreibt den verwendeten Coding-Stil von javascript als eigene Richtline.

Einführung in die Computerlinguistik

Ampelsteuerung Merkblatt 2 Wie wird der Arduino programmiert?

ReadMe zur Installation der BRICKware for Windows, Version ReadMe on Installing BRICKware for Windows, Version 6.1.2

IT I: Heute. Nachbetrachtung Wissensüberprüfungen. Einführung Vererbung. Roboter in becker.robots IT I - VO 5 1

ModProg 15-16, Vorl. 5

Programmiersprache 1 (C++) Prof. Dr. Stefan Enderle NTA Isny

INP (05) Prof. Dr.-Ing. S. Gössner. University of Applied Sciences Lippe & Höxter

7. Konkretisierungen im Feindesign. 7.1 Zustandsdiagramme 7.2 Object Constraint Language


4.4 Imperative Algorithmen Prozeduren

Bei jedem Arduino-Projekt muss man ein Grundgerüst "bauen". Das sieht dann so aus:

INFORMATIK TEIL: VBA. Infromatik WS 17/18 Teil: VBA. Allgemeines: - 4 Übungen á 3 Stunden

Das Modellierungstool Scitor Process 3.0

Funktionen in Matlab. Lehrstuhl für Angewandte Mathematik Sommersemester und 29. Mai 2008

Operatoren für elementare Datentypen Bedingte Anweisungen Schleifen. Operatoren für elementare Datentypen Bedingte Anweisungen Schleifen

Einführung in MATLAB Blockkurs DLR:

Girls Day 2017 Programmierung

Programmablaufplan. Vorkurs Informatik. Sommersemester Institut für Informatik Heinrich-Heine-Universität Düsseldorf

Softwaretechnik. Kapitel 11 : Zustandsdiagramme. Statecharts / State Machines Historisches. State Machines in UML Verwendung in OO

Einführung in Automation Studio

C# - Einführung in die Programmiersprache Methoden. Leibniz Universität IT Services

4. Übung SPS-Programmierung

Inhalt. Vorwort 13. Einleitung JavaScript-Grundlagen 17

Transkript:

Inhalt 10. Stateflow-Grundlagen 11. Übungen Stateflow

10. Stateflow-Grundlagen

Was ist Stateflow? Mit Stateflow lassen sich innerhalb von Simulink Zustandsautomaten und Flussdiagramme abbilden. Ein Stateflow-Element wird wie ein gewöhnlicher Simulink-Block aus dem Library Browser in ein Modell eingefügt. Ein Stateflow beinhaltet Zustände, Zustandsübergänge, Ein- und Ausgänge, lokale Variablen, sowie Events und Trigger! 10-1

Stateflow-Editor (R13) Mit einem Doppelklick auf einen SF-Block öffnet sich der Stateflow-Editor SF Name und Pfad im Modell Parser (syntaktische Korrektheit) Explorer (Schnittstellendefinition) neue Elemente einfügen (Zustand, default-transition, junction) Modellierungsfläche Debugger 10-2

Stateflow-Editor (R14) Mit einem Doppelklick auf einen SF-Block öffnet sich der Stateflow-Editor SF Name und Pfad im Modell Parser (syntaktische Korrektheit) Explorer (Schnittstellendefinition) neue Elemente einfügen (Zustand, default-transition, junction) Modellierungsfläche Debugger 10-3

Stateflow-Elemente Zustände können in den unterschiedlichsten Reihenfolgen und Verknüpfungen erstellt werden! Ein Zustand kann weitere Zustände enthalten! Ein Zustand kann eine Aktion ausführen: bei Betreten des Zustandes (entry) wenn der Zustand aktiv ist (during) beim Verlassen des Zustandes (exit) 10-4

Stateflow-Elemente Transitionen sind Zustandsübergänge, die mit Bedingungen versehen werden können. Die default-transition ist der Übergang, der mit dem Start des Stateflow ausgeführt wird! Transitionsbedingungen werden in eckigen Klammer, Transitionsaktivitäten in geschweiften Klammern an / in die Transition geschrieben! 10-5

Stateflow-Elemente Verknüpfungen: && UND ODER! NICHT Bei allen Stateflow-Transitionen gilt die 12-Uhr-Regel bzgl. der Prüfung deren Bedingungen! Transitionen werden im Uhrzeigersinn bearbeitet! In diesem Beispiel würde immer Zustand 3 betreten! neu ab R14: 10-6

Stateflow-Elemente Eine junction ist eine Verzweigung der Transition, die zu einem Zustand führt, welche als funktionales oder strukturierendes Element eingesetzt werden kann! Nach einer junction mit mehr als einer Ausgangstransition, müssen mindestens n-1 Transitionen mit einer Bedingung versehen werden! 10-7

Stateflow-Explorer (R13) Im Stateflow-Explorer werden alle Ein- und Ausgänge des Stateflow zu Simulink, sowie alle lokalen Größen definiert! Daten können für einen gesamten Stateflow oder einen Zustand lokal definiert werden! Schnittstellentyp Matlab-Kopplung Startwert lokaler Größen 10-8

Stateflow-Explorer (R14) = Model Explorer Im Stateflow-Explorer werden alle Ein- und Ausgänge des Stateflow zu Simulink, sowie alle lokalen Größen definiert! Daten können für einen gesamten Stateflow oder einen Zustand lokal definiert werden! Schnittstellentyp weitere Optionen: Matlab-Kopplung bzgl. Werteübergabe des WorkSpace Init-Werte für lokale Variablen 10-9

Stateflow-Explorer Beim Start des Stateflow-Parsers werden nicht definierte Größen identifiziert und ein Vorschlag zur Übernahme in den Explorer generiert! Mausklick verändert Eigenschaften Definierte Ein- und Ausgänge werden direkt im Simulink-Block dargestellt! 10-10

Stateflow-Explorer Neben Daten können auch Events definiert werden, die zur Ablaufsteuerung benutzt werden können. Events werden ohne Klammer an einen Transition geschrieben und können je nach Einstellung mit fallenden, steigenden oder beiden Flanken zutreffen! Flanken werden durch den Nulldurchgang definiert! 10-11

Stateflow Flußgraphen sind spezielle Stateflowdiagramme ohne Zustände Es können logische Abläufe einfach modelliert werden: while-schleifen if-konstrukte etc. Zur besseren Lesbarkeit, sollten Flussdiagramme immer einen gemeinsamen Endpunkt haben. 10-12

vordefinierte Transitionen Zustandsübergänge (Transitionen) können auch durch vordefinierte Bedingungen erfüllt werden: after(100, tick) = nach 100 Aufrufen des Stateflowchart true before(100, tick) = true solange nicht 100 Aufrufe des Stateflow send = Senden eines Events an einen Zustand in = Abfrage eines aktiven Zustandes change = Event bei Änderung einer Variablen 10-13

Stateflow-Einstellungen (kann tlw. auch in Simulink zutreffen) Vorsicht bei boolschen Stateflow-Eingängen! By default, Simulink detects but does not signal an error when it detects that double signals are connected to blocks that prefer boolean input. This ensures compatibility with models created by earlier versions of Simulink that support only double data type. Hintergrund: Stateflow wird als sogenannte S-Function behandelt, die per default double-schnittstellen besitzt! Abwärtskompatibilität verschiedenen Versionen wird so gewährleistet! Lösung (nur eine möglich!): a) Simulation Parameters b) Stateflow Properties 10-14

Was gibt es noch? Matlab-Kopplung über Matlab-Operator ml. möglich {E = B * ml.x;} = x ist eine WorkSpaceVariable {E = ml( sin(x) );} In jedem Stateflow ist die Variable t definiert, die die aktuelle Systemzeit enthält! Diese Variable kann verwendet werden, ohne sie explizit im Stateflow-Explorer zu definieren! 10-15

11. Übungen Stateflow (Rechnerraum)

Stateflow kennenlernen Öffnen Sie ein neues Simulink-Modell und platzieren ein Stateflow darin. Wie werden die einzelnen Elemente (z.b. Zustand, default-transition) platziert und verschoben (z.b. Größenänderung)? Wie werden Zustände umbenannt und Aktionen in Zuständen definiert? Wie werden Zustände über Transitionen verknüpft? Wie kann man Bedingungen an Transitionen schreiben? Wie funktioniert der Stateflow-Parser? Wie werden Größen und Schnittstellen im Exploerer definiert, welche Einstellungen gibt es? Erstellen und Simulieren Sie das Zustandsmodell einer einfachen Lampe, - benutzen Sie keine funktionalen Eingänge, sondern arbeiten Sie mit Events - als Schaltersimulation nutzen Sie einen Pulsgenerator - den Ausgang Strom führen Sie in einen Scope und kontrollieren damit die Funktionsweise ihres Zustandsautomaten 11-1

Stateflow-Übungen 11-2 1 8. Modellieren Sie eine Beamer-Steuerung in Stateflow, der Beamer besitzt zwei mechanische Kippschalter (Eingänge) und 2 Ansteuerausgänge Eingänge des Zustandsautomaten - Power (an / aus) - Funktion (an / aus) Ausgänge des Zustandautomaten - Lüfter (an / aus) - Lampe (an / aus) Die Steuerung soll folgende Eigenschaften erfüllen: - ohne Power = an, darf kein Ausgang aktiv sein - bei Funktion = an, sollen Lampe und Lüfter sofort aktiviert werden - bei Funktion = aus, soll die Lampe sofort und der Lüfter 5 Sekunden später abgeschalten werden - während der shutdown-phase kann der Funktionsschalter erneut aktiviert werden - bei Not-Aus über Power = aus während des Betriebes, soll der Lüfter noch 3 Sekunden laufen (eingebauter Kondensator hält Energie) Weisen Sie die Funktion durch einen Testaufbau in Simulink nach!

Stateflow-Übungen 2 9. Erstellen Sie ein Stateflow-Modell einer Verkehrsampel mit folgenden Eigenschaften. Eingänge Steuerung: 4 Kontaktschleifen Fahrzeuge, 8 Betätigungstaster Fußgänger Ausgänge Steuerung: 4 Steuersignale Fußgänger (rot / grün), 4 Steuersignale Fahrzeuge (rot / gelb / grün), 8 Steuersignale LED Anforderung Fußgänger Die Fußgängerampeln A/C und B/D schalten immer synchron Die Fahrzeugampeln 1/3 und 2/4 schalten immer synchron Die Ampeln A/B und 1/2 sind nie gleichzeitig grün Die Anforderung einer Fußgängerampel wird an der anfordernden Bedienstelle durch eine leuchtende und an allen beteiligten Ampeln durch eine blinkende LED angezeigt, bis die Anforderung abgearbeitet wird Die Fußgängerampel schaltet für 10 Sekunden auf grün, 5 Sekunden vor dem Schalten wird der Fahrzeugverkehr gestoppt Eine Anforderung (egal ob Fahrzeug oder Fußgänger) wird bearbeitet, wenn mindestens 20 Sekunden nach dem letzten Schaltvorgang vergangen sind Die Fahrzeugampel hat immer eine gelb-phase über 3 Sekunden 11-3

Stateflow-Übungen Bestimmen Sie eine geeignete Bennennung der Ein- und Ausgänge anhand der folgenden Skizze: Strasse 4 -> Fußgänger A Fußgänger D Strasse 1-> <- Strasse 3 Fußgänger B Fußgänger C Strasse 2 -> Um die Aufgabe nicht zu komplex zu gestalten, gehen Sie davon aus, dass die Fahrzeuge nur geradeaus fahren und nicht abbiegen. 11-4

Hinweis Um den Nachweis eines funktionierenden Stateflow-Automaten zu erbringen, ist es möglich eine Stimulationsumgebung in Simulink zu entwerfen. Dabei können Generatoren (z.b. STEP) oder Lookup-Tabellen zum Einsatz kommen. 11-5