after
Ejecute el gráfico después de la transmisión de un evento o en una unidad de tiempo específica
Descripción
after(
devuelve n
,E
)true
si el evento E
ha ocurrido al menos n
veces desde que el estado asociado se convirtió en activo. De lo contrario, el operador devuelve false
.
after(
devuelve n
,tick
)true
si el gráfico se ha activado al menos n
veces desde que el estado asociado se convirtió en activo. De lo contrario, el operador devuelve false
.
El evento implícito tick
no está admitido cuando un gráfico de Stateflow® de un modelo de Simulink® cuenta con eventos de entrada.
after(
devuelve n
,time_unit
)true
si han transcurrido al menos n
unidades de tiempo desde que el estado asociado se convirtió en activo. De lo contrario, el operador devuelve false
.
En gráficos de un modelo de Simulink, especifique time_unit
como segundos (sec
), milisegundos (msec
), o microsegundos (usec
). Si especifica n
como una expresión, el gráfico ajusta el retardo temporal cuando la expresión va cambiando de valor durante la simulación.
En gráficos independientes en MATLAB®, especifique n
con un valor mayor que o igual a 0.001
y time_unit
como segundos (sec
). El operador crea un objeto timer
de MATLAB que genera un evento implícito para activar el gráfico. Los objetos timer
de MATLAB están limitados a una precisión de 1 milisegundo. Para obtener más información, consulte Events in Standalone Charts.
El objeto
timer
se crea cuando el gráfico termina de ejecutar las accionesentry
del estado asociado y sus subestados. Si especifican
como una expresión cuyo valor cambia durante la ejecución del gráfico, dicho gráfico no ajusta el retardo temporal del objetotimer
.El objeto
timer
comienza a ejecutarse al final del paso del gráfico cuando el estado asociado se convierte en activo. Este paso puede incluir la ejecución de otros estados paralelos del gráfico.Si el gráfico está procesando otra operación cuando recibe el evento implícito del objeto
timer
, el gráfico pone el evento en cola. Cuando el paso en curso se completa, el gráfico procesa el evento.Si el estado asociado con el operador de lógica temporal se convierte en inactivo antes de que el gráfico procese el evento implícito, el evento no activa el gráfico.
Ejemplos
Sugerencias
Puede encerrar entre comillas las palabras clave
'tick'
,'sec'
,'msec'
y'usec'
. Por ejemplo,after(5,'tick')
equivale aafter(5,tick)
.El gráfico de Stateflow restablece el contador utilizado por el operador
after
cada vez que se reactive el estado asociado.El tiempo de los operadores de lógica temporal de tiempo absoluto depende del tipo de gráfico de Stateflow:
Los gráficos de un modelo de Simulink definen la lógica temporal de tiempo absoluto en términos del tiempo de simulación.
Los gráficos independientes de MATLAB definen la lógica temporal de tiempo absoluto en términos de tiempo de reloj, que está limitado a una precisión de 1 milisegundo.
La diferencia en el tiempo puede afectar al comportamiento de un gráfico. Por ejemplo, suponga que este gráfico está ejecutando la acción
during
del estadoA
.En un modelo de Simulink, la llamada de función a
f
se ejecuta en una única unidad de tiempo y no contribuye al tiempo de simulación. La transición del estadoA
al estadoB
tiene lugar la primera vez que se activa el gráfico y el estadoA
ha estado activo durante al menos 2 segundos. El valor mostrado por la acciónentry
en el estadoB
depende únicamente del tamaño de paso utilizado por el solver de Simulink.En un gráfico independiente, la llamada de función a
f
puede tardar varios segundos de tiempo de reloj en completarse. Si la llamada tarda más de dos segundos, el gráfico pone en cola el evento implícito asociado con el operadorafter
. La transición del estadoA
al estadoB
tiene lugar cuando la funciónf
termina de ejecutarse. El valor mostrado por la acciónentry
en el estadoB
depende del tiempo que tarda en completarse la llamada de función af
.
Historial de versiones
Introducido en R2014b