Hauptinhalt

Die Übersetzung dieser Seite ist veraltet. Klicken Sie hier, um die neueste Version auf Englisch zu sehen.

Chart

Implementieren von Steuerlogik mit endlicher Zustandsmaschine

  • Chart block

Bibliotheken:
Stateflow

Beschreibung

Der Chart-Block stellt eine Zustandsmaschine grafisch dar. In einem Stateflow®-Diagramm bilden Zustände und Übergänge die Grundbausteine eines sequentiellen modalen Logiksystems. Zustände entsprechen Betriebsmodi und Übergänge stellen den Übergang des Systems von einem Betriebsmodi zu einem anderen dar. Weitere Informationen finden Sie unter Model a Finite State Machine.

Zum Implementieren einer Steuerlogik können Stateflow-Diagramme MATLAB® oder C als Aktionssprache verwenden. Weitere Informationen finden Sie unter Unterschiede zwischen MATLAB und C als Aktionssprache-Syntax.

Beispiele

Ports

Eingang

alle erweitern

Wenn Sie Eingangsdaten im Stateflow-Diagramm mithilfe des Fensterbereichs Symbols erstellen, erstellt Stateflow einen entsprechenden Eingangsport am Chart-Block.

Datentypen: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point | enumerated | bus | string

Ausgang

alle erweitern

Wenn Sie Ausgangsdaten im Stateflow-Diagramm mithilfe des Fensterbereichs Symbols erstellen, erstellt Stateflow einen entsprechenden Ausgangsport bei dem Chart-Block.

Datentypen: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point | enumerated | bus | string

Parameter

alle erweitern

Verwenden Sie Property Inspector, um Blockparameter interaktiv zu bearbeiten. Wählen Sie in der Simulink®-Werkzeugleiste auf der Registerkarte Simulation aus der Galerie Prepare Property Inspector aus.

Hinweis

Diagramme weisen zudem Subsystem (Simulink)-Blockparameter auf, auf die Sie über Rechtsklick auf das Diagramm und Klick auf Block Parameters (Subsystem) zugreifen können. Eine Änderung dieser Parameter wird jedoch nicht empfohlen.

Methoden zur Aktualisierung oder zum Aufwecken von Stateflow-Diagrammen, festgelegt als Inherited, Discrete oder Continuous.

Inherited

Der Eingang vom Simulink-Modell legt fest, wann das Diagramm während einer Simulation aufgeweckt wird.

Wenn Sie Eingangsereignisse für das Diagramm definieren, löst das Signal vom mit dem Auslöser-Port verbundenen Simulink-Block das Diagramm aus. Das Simulink-Signal kann Rising, Falling oder Either (ansteigend oder fallend) sein oder als Antwort auf einen Function Call übermittelt werden. Weitere Informationen finden Sie unter Aktivieren eines Stateflow-Diagramms durch Absenden von Eingangsereignissen.

Wenn Sie keine Eingangsereignisse definieren, erbt das Stateflow-Diagramm implizit Auslöser vom Simulink-Modell. Diese impliziten Ereignisse sind die diskreten oder kontinuierlichen Abtastzeiten der Simulink-Signale, die Eingänge für das Diagramm bereitstellen. Wenn Sie Dateneingänge definieren, wird das Diagramm mit der Rate des schnellsten Dateneingangs aufgeweckt. Wenn Sie keine Dateneingänge für das Diagramm definieren, wird das Diagramm wie vom Ausführungsverhalten des übergeordneten Subsystems festgelegt aufgeweckt.

Discrete

Das Stateflow-Diagramm wird aufgeweckt, wenn das Simulink-Modell in regelmäßigen Zeitabständen, die Sie in der Diagrammeigenschaft Sample Time festlegen, ein implizites Ereignis generiert. Andere Blöcke im Simulink-Modell können andere Abtastzeiten aufweisen.

Continuous

Das Stateflow-Diagramm aktualisiert seinen Zustand nur bei größeren Zeitschritten und berechnet Ausgänge und lokale kontinuierliche Variablen bei größeren und kleineren Zeitschritten. Das Diagramm kann Nullübergänge registrieren, was es Simulink-Modellen erlaubt, Stateflow-Diagramme abzutasten, wenn eine Zustandsänderung auftritt. Das Stateflow-Diagramm berechnet Ableitungen der lokalen kontinuierlichen Variablen. Weitere Informationen finden Sie unter Continuous-Time Modeling in Stateflow.

Programmatische Verwendung

Um den Diagramm-Parameterwert programmatisch festzulegen, greifen Sie auf das Stateflow.Chart-Objekt des Diagramms zu und ändern Sie die Objekteigenschaft mithilfe der Punktschreibweise.

Parameter: ChartUpdate
Werte: "INHERITED" (Standardeinstellung) | "CONTINUOUS" | "DISCRETE"

Legen Sie das Zeitintervall fest, nach dem das Diagramm während der Simulation aufgeweckt wird. Der Standardwert gibt an, dass das Diagramm die Abtastzeit von Simulink erbt. Weitere Informationen zum Festlegen der Abtastzeit finden Sie unter Festlegen der Abtastzeit (Simulink).

Verwenden Sie nicht den Parameter Sample Time der Subsystem-Blockparameter. Verwenden Sie stattdessen den Property Inspector.

Abhängigkeiten

Um diesen Parameter zu aktivieren, setzen Sie Update Method auf Discrete.

Programmatische Verwendung

Um den Diagramm-Parameterwert programmatisch festzulegen, greifen Sie auf das Stateflow.Chart-Objekt des Diagramms zu und ändern Sie die Objekteigenschaft mithilfe der Punktschreibweise.

Parameter: SampleTime
Werte: "-1" (Standardeinstellung) | string scalar | character vector
Datentypen: string | char

Legt fest, ob die Nullübergangs-Detektion bei Zustandsübergängen im Diagramm aktiviert werden soll. Weitere Informationen finden Sie unter Continuous-Time Modeling in Stateflow.

Abhängigkeiten

Um diesen Parameter zu aktivieren, setzen Sie Update Method auf Continuous.

Programmatische Verwendung

Um den Diagramm-Parameterwert programmatisch festzulegen, greifen Sie auf das Stateflow.Chart-Objekt des Diagramms zu und ändern Sie die Objekteigenschaft mithilfe der Punktschreibweise.

Parameter: EnableZeroCrossings
Werte: true or 1 (Standardeinstellung) | false or 0
Datentypen: logical

Legt fest, ob Bit-Operationen in Zustands- und Übergangsaktionen im Diagramm verwendet werden sollen, angegeben als numerische oder logische 1 (wahr) oder 0 (falsch).

Abhängigkeiten

Um diesen Parameter zu aktivieren, setzen Sie Action Language auf C.

Programmatische Verwendung

Um den Diagramm-Parameterwert programmatisch festzulegen, greifen Sie auf das Stateflow.Chart-Objekt des Diagramms zu und ändern Sie die Objekteigenschaft mithilfe der Punktschreibweise.

Parameter: EnableBitOps
Werte: false or 0 (Standardeinstellung) | true or 1
Datentypen: logical

Legt fest, ob ein Datenausgangs-Port für den aktiven Zustand des Diagramms erstellt werden soll. Weitere Informationen finden Sie unter Monitor State Activity Through Active State Data.

Abhängigkeiten

Um diesen Parameter zu aktivieren, erstellen Sie einen Stateflow-Zustand, eine Zustandsübergangstabelle oder ein atomares Unterdiagramm.

Programmatische Verwendung

Um den Diagramm-Parameterwert programmatisch festzulegen, greifen Sie auf das Stateflow.Chart-Objekt des Diagramms zu und ändern Sie die Objekteigenschaft mithilfe der Punktschreibweise.

Parameter: HasOutputData
Werte: false or 0 (Standardeinstellung) | true or 1
Datentypen: logical

Überwachungsmodus für die Ausgabedaten aktiver Zustände. Weitere Informationen finden Sie unter Monitor State Activity Through Active State Data.

Abhängigkeiten

Um diesen Parameter zu aktivieren, aktivieren Sie Create output for monitoring.

Programmatische Verwendung

Um den Diagramm-Parameterwert programmatisch festzulegen, greifen Sie auf das Stateflow.Chart-Objekt des Diagramms zu und ändern Sie die Objekteigenschaft mithilfe der Punktschreibweise.

Parameter: OutputMonitoringMode
Werte: "ChildActivity" (Standardeinstellung) | "LeafStateActivity"

Name des Datenobjekts des aktiven Zustands für die Zustandsübergangstabelle.

Abhängigkeiten

Um diesen Parameter zu aktivieren, aktivieren Sie Create output for monitoring.

Programmatische Verwendung

Um den Diagramm-Parameterwert programmatisch festzulegen, greifen Sie auf das Stateflow.Chart-Objekt des Diagramms zu und ändern Sie die Objekteigenschaft mithilfe der Punktschreibweise.

Parameter: OutputPortName
Werte: "ChartMode" (Standardeinstellung) | string scalar | character vector
Datentypen: string | char

Name des Datenobjekts des aktiven Zustands für die Zustandsübergangstabelle.

Abhängigkeiten

Um diesen Parameter zu aktivieren, aktivieren Sie Create output for monitoring.

Programmatische Verwendung

Um den Diagramm-Parameterwert programmatisch festzulegen, greifen Sie auf das Stateflow.Chart-Objekt des Diagramms zu und ändern Sie die Objekteigenschaft mithilfe der Punktschreibweise.

Parameter: EnumTypeName
Werte: "ChartModeType" (Standardeinstellung) | string scalar | character vector
Datentypen: string | char

Ob der Aufzählungsdatentyp für die aktive Zustandsdatenausgabe manuell definiert werden soll. Weitere Informationen finden Sie unter Define State Activity Enumeration Type.

Abhängigkeiten

Um diesen Parameter zu aktivieren, aktivieren Sie Create output for monitoring.

Programmatische Verwendung

Um den Diagramm-Parameterwert programmatisch festzulegen, greifen Sie auf das Stateflow.Chart-Objekt des Diagramms zu und ändern Sie die Objekteigenschaft mithilfe der Punktschreibweise.

Parameter: DoNotAutogenerateEnum
Werte: false or 0 (Standardeinstellung) | true or 1
Datentypen: logical

Erweitert

Legt fest, ob die Zustandskonfiguration des Diagramms zum Zeitpunkt 0 statt bei dem ersten Eingangsereignis initialisiert werden soll. Weitere Informationen finden Sie unter Execution of a Chart at Initialization.

Programmatische Verwendung

Um den Diagramm-Parameterwert programmatisch festzulegen, greifen Sie auf das Stateflow.Chart-Objekt des Diagramms zu und ändern Sie die Objekteigenschaft mithilfe der Punktschreibweise.

Parameter: ExecuteAtInitialization
Werte: false or 0 (Standardeinstellung) | true or 1
Datentypen: logical

Legt fest, ob die Daten um Diagramm bei einem Ganzzahl-Überlauf gesättigt werden. Wenn Sie diesen Parameter deaktivieren, werden die Daten im Diagramm bei einem Ganzzahl-Überlauf umgebrochen. Weitere Informationen finden Sie unter Handle Integer and Enumeration Overflow for Chart Data.

Programmatische Verwendung

Um den Diagramm-Parameterwert programmatisch festzulegen, greifen Sie auf das Stateflow.Chart-Objekt des Diagramms zu und ändern Sie die Objekteigenschaft mithilfe der Punktschreibweise.

Parameter: SaturateOnIntegerOverflow
Werte: true or 1 (Standardeinstellung) | false or 0
Datentypen: logical

Legt fest, ob die Ausgangsdaten jedes Mal, wenn das Diagramm geweckt wird, initialisiert werden sollen.

Wenn Sie diesen Parameter auswählen, setzt das Diagramm seine Ausgangswerte bei jedem Aufwecken des Diagramms zurück, nicht nur zum Zeitpunkt 0. Das Diagramm setzt die Ausgangswerte zurück, wenn ein Funktionsaufruf, ein Kantenauslöser oder ein Takt das Diagramm auslöst. Wenn Sie einen anfänglichen Wert für ein Ausgangs-Datenobjekt festlegen, wird der Ausgang auf diesen Wert zurückgesetzt. Andernfalls wird der Ausgang auf null zurückgesetzt. Wählen Sie diesen Parameter aus, um:

  • Sicherzustellen, dass alle Ausgänge bei jeder Ausführung der Tabelle definiert sind.

  • Ein Zwischenspeichern der Ausgänge zu vermeiden, d. h. zu verhindern, dass Ausgänge Werte annehmen, die in vorherigen Ausführungen berechnet wurden.

  • Bei allen Diagrammausgängen einen sinnvollen anfänglichen Wert bereitzustellen.

Weitere Informationen finden Sie unter Initial value.

Programmatische Verwendung

Um den Diagramm-Parameterwert programmatisch festzulegen, greifen Sie auf das Stateflow.Chart-Objekt des Diagramms zu und ändern Sie die Objekteigenschaft mithilfe der Punktschreibweise.

Parameter: InitializeOutput
Werte: true or 1 (Standardeinstellung) | false or 0
Datentypen: logical

Legt fest, ob das Diagramm Daten variabler Größe unterstützt. Weitere Informationen finden Sie unter Declare Variable-Size Data in Stateflow Charts.

Programmatische Verwendung

Um den Diagramm-Parameterwert programmatisch festzulegen, greifen Sie auf das Stateflow.Chart-Objekt des Diagramms zu und ändern Sie die Objekteigenschaft mithilfe der Punktschreibweise.

Parameter: SupportVariableSizing
Werte: true or 1 (Standardeinstellung) | false or 0
Datentypen: logical

Legt fest, ob Funktionen auf Diagrammebene zu anderen Blöcken im Simulink-Modell exportiert werden sollen. Weitere Informationen finden Sie unter Export Stateflow Functions for Reuse.

Abhängigkeiten

Um diesen Parameter zu aktivieren, fügen Sie Ihrem Diagramm eine Funktion hinzu.

Programmatische Verwendung

Um den Diagramm-Parameterwert programmatisch festzulegen, greifen Sie auf das Stateflow.Chart-Objekt des Diagramms zu und ändern Sie die Objekteigenschaft mithilfe der Punktschreibweise.

Parameter: ExportChartFunctions
Werte: false or 0 (Standardeinstellung) | true or 1
Datentypen: logical

Legt fest, ob aus dem Diagramm exportierte Funktionen im Simulink-Modell global sichtbar sein sollen. Ist diese Eigenschaft aktiviert, können Blöcke im gesamten Modell aus dem Diagramm exportierte Funktionen aufrufen, ohne dass eine qualifizierte Notation benötigt wird.

Abhängigkeiten

Um diesen Parameter zu aktivieren, aktivieren Sie Export chart level functions.

Programmatische Verwendung

Um den Diagramm-Parameterwert programmatisch festzulegen, greifen Sie auf das Stateflow.Chart-Objekt des Diagramms zu und ändern Sie die Objekteigenschaft mithilfe der Punktschreibweise.

Parameter: AllowGlobalAccessToExportedFunctions
Werte: false or 0 (Standardeinstellung) | true or 1
Datentypen: logical

Legt fest, ob Super-Step-Semantik für das Diagramm aktiviert werden soll. Wählen Sie diesen Parameter aus, um es dem Diagramm zu ermöglichen, bei jedem Zeitschritt mehrere Übergänge zu akzeptieren, bis ein stabiler Zustand erreicht wird. Diese Option ist nicht verfügbar, wenn Sie die Diagrammeigenschaft Update method auf Continuous setzen. Weitere Informationen finden Sie unter Super Step Semantics.

Abhängigkeiten

Um diesen Parameter zu aktivieren, setzen Sie Update Method auf Discrete.

Programmatische Verwendung

Um den Diagramm-Parameterwert programmatisch festzulegen, greifen Sie auf das Stateflow.Chart-Objekt des Diagramms zu und ändern Sie die Objekteigenschaft mithilfe der Punktschreibweise.

Parameter: EnableNonTerminalStates
Werte: false or 0 (Standardeinstellung) | true or 1
Datentypen: logical

Die maximale Anzahl Übergänge, die in einem Super-Step durchgeführt werden können. Weitere Informationen finden Sie unter Super Step Semantics.

Abhängigkeiten

Um diesen Parameter zu aktivieren, aktivieren Sie Enable super step semantics.

Programmatische Verwendung

Um den Diagramm-Parameterwert programmatisch festzulegen, greifen Sie auf das Stateflow.Chart-Objekt des Diagramms zu und ändern Sie die Objekteigenschaft mithilfe der Punktschreibweise.

Parameter: NonTerminalMaxCounts
Werte: 1000 (Standardeinstellung) | positive integer
Datentypen: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Aktion, die Stateflow durchführen soll, wenn Super-Step die maximale Anzahl Übergänge in einem Super-Step überschreitet. Weitere Informationen finden Sie unter Super Step Semantics.

Abhängigkeiten

Um diesen Parameter zu aktivieren, aktivieren Sie Enable super step semantics.

Programmatische Verwendung

Um den Diagramm-Parameterwert programmatisch festzulegen, greifen Sie auf das Stateflow.Chart-Objekt des Diagramms zu und ändern Sie die Objekteigenschaft mithilfe der Punktschreibweise.

Parameter: NonTerminalUnstableBehavior
Werte: "Proceed" (Standardeinstellung) | "Throw Error"

Seit R2022b

Ob das Diagramm nicht-skalare Daten mit einer Längendimension 1 als feste Größe behandelt. Wenn Sie diesen Parameter auswählen, behandelt das Diagramm nicht-skalare Daten, die mindestens eine Längendimension 1 haben, als feste Größe, unabhängig davon, ob Sie die Dateneigenschaft Variable size aktivieren. Wenn Sie diesen Parameter deaktivieren, behandelt das Diagramm nicht-skalare Daten mit aktivierter Eigenschaft Variable size als variable Größe.

Programmatische Verwendung

Um den Diagramm-Parameterwert programmatisch festzulegen, greifen Sie auf das Stateflow.Chart-Objekt des Diagramms zu und ändern Sie die Objekteigenschaft mithilfe der Punktschreibweise.

Parameter: TreatDimensionOfLengthOneAsFixedSize
Werte: true or 1 (Standardeinstellung) | false or 0
Datentypen: logical

Legen Sie fest, welche Blockvarianten Stateflow während der Simulation und Codegenerierung analysieren soll. Auf Grundlage der von Ihnen ausgewählten Optionen ermittelt Stateflow, ob der generierte Code nur die aktive Auswahl oder sowohl aktive als auch inaktive Auswahlen enthalten muss.

  • update diagram analyze all choices — Wenn Sie diese Option auswählen, analysiert Stateflow sowohl aktive als auch inaktive Auswahlen auf Inkompatibilitäten bei den Signalattributen und generiert Code nur für die aktive Auswahl.

  • code compile — Wenn Sie diese Option auswählen, analysiert Stateflow sowohl die aktiven als auch inaktiven Auswahlen von Varianten-Übergängen und generiert Code sowohl für die aktiven als auch inaktiven Auswahlen. Die Auswahlen sind in die bedingten C Präprozessor-Ausdrücke #if und #endif eingeschlossen, die bedingt kompiliert werden, wenn Sie den generierten Code kompilieren.

Programmatische Verwendung

Um den Diagramm-Parameterwert programmatisch festzulegen, greifen Sie auf das Stateflow.Chart-Objekt des Diagramms zu und ändern Sie die Objekteigenschaft mithilfe der Punktschreibweise.

Parameter: VariantActivationTime
Werte: "update diagram analyze all choices" (Standardeinstellung) | "code compile"

Aktionssprache, die zur Programmierung des Diagramms verwendet werden soll, angegeben als MATLAB oder C. Weitere Informationen finden Sie unter Unterschiede zwischen MATLAB und C als Aktionssprache-Syntax.

Programmatische Verwendung

Um den Diagramm-Parameterwert programmatisch festzulegen, greifen Sie auf das Stateflow.Chart-Objekt des Diagramms zu und ändern Sie die Objekteigenschaft mithilfe der Punktschreibweise.

Parameter: ActionLanguage
Werte: "MATLAB" (Standardeinstellung) | "C"

Von dem Diagramm implementierte Zustandsmaschinen-Semantik, festgelegt als Classic, Mealy oder Moore. Weitere Informationen finden Sie unter Überblick über Mealy- und Moore-Automaten.

Programmatische Verwendung

Um den Diagramm-Parameterwert programmatisch festzulegen, greifen Sie auf das Stateflow.Chart-Objekt des Diagramms zu und ändern Sie die Objekteigenschaft mithilfe der Punktschreibweise.

Parameter: StateMachineType
Werte: "Classic" (Standardeinstellung) | "Mealy" | "Moore"

Festkomma-Eigenschaften

Geerbte Simulink-Signale, die als Fixed-Point Designer™ fi-Objekte behandelt werden sollen, festgelegt als einer dieser Werte:

  • Fixed-point — Das Diagramm behandelt alle Festkomma-Eingänge als fi-Objekte.

  • Fixed-point & Integer — Das Diagramm behandelt alle Festkomma- und Ganzzahl-Eingänge als fi-Objekte.

Abhängigkeiten

Um diesen Parameter zu aktivieren, setzen Sie Action Language auf MATLAB.

Programmatische Verwendung

Um den Diagramm-Parameterwert programmatisch festzulegen, greifen Sie auf das Stateflow.Chart-Objekt des Diagramms zu und ändern Sie die Objekteigenschaft mithilfe der Punktschreibweise.

Parameter: TreatAsFi
Werte: "Fixed-point" (Standardeinstellung) | "Fixed-point & Integer"

fimath-Standardeigenschaften des Diagramms, festgelegt als einer dieser Werte:

  • Same as MATLAB — Das Diagramm verwendet dieselben fimath-Objekteigenschaften wie das aktuelle fimath-Standardobjekt. Das Textfeld wird abgedunkelt und zeigt das aktuelle globale fimath-Objekt schreibgeschützt an.

  • Specify other — Legen Sie Ihr eigenes fimath-Objekt im Textfeld mithilfe einer von zwei Methoden fest:

    • Erstellen Sie das fimath-Objekt innerhalb des Textfelds.

    • Erstellen Sie das fimath-Objekt im MATLAB- oder Modell-Workspace und geben Sie den Variablennamen in das Textfeld ein. Wenn Sie diese Option verwenden und planen, Ihr Modell mit anderen Personen zu teilen, legen Sie die Variable im Modell-Workspace fest.

Weitere Informationen finden Sie unter fimath Object Construction (Fixed-Point Designer).

Abhängigkeiten

Um diesen Parameter zu aktivieren, setzen Sie Action Language auf MATLAB.

Programmatische Verwendung

Um den Diagramm-Parameterwert programmatisch festzulegen, greifen Sie auf das Stateflow.Chart-Objekt des Diagramms zu und ändern Sie die Objekteigenschaft mithilfe der Punktschreibweise.

Parameter: EmlDefaultFimath
Werte: "Same as MATLAB Default" (Standardeinstellung) | "Other:UserSpecified"

Erweiterte Fähigkeiten

alle erweitern

C/C++ Codegenerierung
Generieren von C und C++ Code mit Simulink® Coder™.

Festkommakonvertierung
Entwerfen und Simulieren von Festkommasystemen mit Fixed-Point Designer™.

Versionsverlauf

Eingeführt vor R2006a

alle erweitern