hasChanged
Detectar cambios en los datos desde la última unidad de tiempo en un gráfico de Stateflow
Sintaxis
Descripción
devuelve tf
= hasChanged(data
)1
(true
) si el valor de data
al comienzo de la unidad de tiempo actual es diferente del valor de data
al comienzo de la última unidad de tiempo que el gráfico se activó. De lo contrario, el operador devuelve 0
(false
).
Ejemplos
Argumentos de entrada
Limitaciones
No se puede utilizar dentro de una tabla de verdad de Stateflow.
Sugerencias
Si ocurren múltiples eventos de entrada en la misma unidad de tiempo, el operador
hasChanged
puede detectar cambios en el valor de los datos entre eventos de entrada.Si el gráfico escribe en el objeto de datos, pero no cambia el valor de los datos, el operador
hasChanged
devuelvefalse
.El tipo de gráfico de Stateflow determina el ámbito de los datos admitidos por los operadores de detección de cambios:
Gráficos de Stateflow independientes en MATLAB: solo
Local
En los modelos de Simulink®, gráficos que utilizan MATLAB como lenguaje de acción: solo
Input
En los modelos de Simulink, gráficos que utilizan C como lenguaje de acción:
Input
,Output
,Local
oData Store Memory
En un gráfico independiente en MATLAB, un operador de detección de cambios puede detectar cambios en los datos especificados en una llamada a la función
step
porque estos cambios ocurren antes del inicio de la unidad de tiempo actual. Por ejemplo, six
es igual a cero, la expresiónhasChanged(x)
devuelvetrue
cuando ejecuta el gráficoch
con el comando:Por el contrario, un operador de detección de cambios no puede detectar cambios en los datos provocados por asignaciones de estado o acciones de transición en la misma unidad de tiempo. En cambio, el operador detecta el cambio de valor al inicio de la siguiente unidad de tiempo.step(ch,x=1);
En un gráfico de un modelo de Simulink, si habilita la opción de gráfico Initialize Outputs Every Time Chart Wakes Up, al utilizar una salida como argumento del operador
hasChanged
siempre devuelvefalse
. Para obtener más información, consulte Inicializar las salidas cada vez que el gráfico se activa.Cuando el orden por fila principal está habilitado en gráficos que utilizan
hasChanged
, la generación de código produce un error. Antes de generar código en gráficos que utilizanhasChanged
, habilite el orden por columna principal. Consulte Select Array Layout for Matrices in Generated Code.
Historial de versiones
Introducido en R2007a