hasChangedTo
Erkennen von Änderungen in Daten auf einen bestimmten Wert im Stateflow-Diagramm
Beschreibung
gibt tf = hasChangedTo(data,value)1 (true) zurück, wenn der Wert von data zu Beginn des vorherigen Zeitschritts nicht gleich value und zu Beginn des aktuellen Zeitschritts gleich value ist. Andernfalls gibt der Operator 0 (false) zurück.
Beispiele
Eingabeargumente
Einschränkungen
Kann nicht in einer Stateflow-Wahrheitstabelle verwendet werden.
Tipps
Wenn mehrere Eingangsereignisse im selben Zeitschritt auftreten, kann der
hasChangedTo-Operator Änderungen des Datenwerts zwischen den Eingangsereignissen erkennen.Wenn das Diagramm in das Datenobjekt schreibt, aber den Datenwert nicht ändert, gibt der
hasChangedTo-Operatorfalsezurück.Der Typ des Stateflow-Diagramms bestimmt den Umfang der Daten, die von den Änderungserkennungsoperatoren unterstützt werden:
Eigenständige Stateflow-Diagramme in MATLAB: nur
LocalIn Simulink®-Modellen, Diagramme, die MATLAB als Aktionssprache verwenden: nur
InputIn Simulink-Modellen, Diagramme, die C als Aktionssprache verwenden:
Input,Output,LocaloderData Store Memory
In einem eigenständigen Diagramm in MATLAB kann ein Änderungserkennungsoperator Änderungen in Daten erkennen, die in einem Aufruf der Funktion
stepangegeben sind, da diese Änderungen vor Beginn des aktuellen Zeitschritts auftreten. Wenn beispielsweisexgleich Null ist, gibt der AusdruckhasChangedTo(x,1)truezurück, wenn Sie dasch-Diagramm mit dem folgenden Befehl ausführen:Im Gegensatz dazu kann ein Änderungserkennungsoperator keine Änderungen in Daten erkennen, die durch Zuweisungen in Zustands- oder Übergangsaktionen im gleichen Zeitschritt verursacht werden. Stattdessen erkennt der Operator die Wertänderung zu Beginn des nächsten Zeitschritts.step(ch,x=1);
Wenn Sie in einem Diagramm in einem Simulink-Modell die Diagrammoption Initialize Outputs Every Time Chart Wakes Up aktivieren und eine Ausgabe als Argument des Operators
hasChangedverwenden, wird immerfalsezurückgegeben. Weitere Informationen finden Sie unter Initialize outputs every time chart wakes up.Wenn in Diagrammen, die
hasChangedToverwenden, das zeilendominierte Array-Layout (row-major array layout) aktiviert ist, führt die Code-Generierung zu einem Fehler. Bevor Sie Code in Diagrammen generieren, diehasChangedToverwenden, aktivieren Sie das nach Spalten geordnete Array-Layout (column-major array layout). Siehe Select Array Layout for Matrices in Generated Code.
Versionsverlauf
Eingeführt in R2007a




