after
Ejecutar 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
timerse crea cuando el gráfico termina de ejecutar las accionesentrydel estado asociado y sus subestados. Si especificancomo 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
timercomienza 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
aftercada 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
duringdel estadoA.
En un modelo de Simulink, la llamada de función a
fse ejecuta en una única unidad de tiempo y no contribuye al tiempo de simulación. La transición del estadoAal estadoBtiene lugar la primera vez que se activa el gráfico y el estadoAha estado activo durante al menos 2 segundos. El valor mostrado por la acciónentryen el estadoBdepende únicamente del tamaño de paso utilizado por el solver de Simulink.En un gráfico independiente, la llamada de función a
fpuede 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 estadoAal estadoBtiene lugar cuando la funciónftermina de ejecutarse. El valor mostrado por la acciónentryen el estadoBdepende del tiempo que tarda en completarse la llamada de función af.
Historial de versiones
Introducido en R2014b




