Planificar funciones de Simulink con Stateflow
Este ejemplo muestra cómo planificar una función de Simulink® en un gráfico de Stateflow® utilizando lógica temporal. Una función de Simulink es un subsistema de Simulink que se define dentro del gráfico de Stateflow y que llama a las acciones de estados y transiciones. Para obtener más información, consulte Reutilizar las funciones de Simulink en gráficos de Stateflow.
Abrir y examinar el modelo
En este ejemplo, la función de Simulink algo
aumenta la entrada en uno en cada unidad de tiempo. El gráfico de Stateflow incluye dos estados que llaman a la función algo
con diferente frecuencia.
Los operadores de lógica temporal determinan la planificación de llamadas a función y transición entre los estados. El operador de lógica temporal basada en eventos every
establece que FastScheduler
llame a la función de Simulink cada dos unidades de tiempo y que SlowScheduler
llame a la misma función cada cinco unidades de tiempo. En consecuencia, FastScheduler
ejecuta la función con más frecuencia que SlowScheduler
.
La transición de FastScheduler
a SlowScheduler
se produce después de que FastScheduler
esté activo por 1,5 segundos. La transición de vuelta a FastScheduler
se produce después de que SlowScheduler
esté activo por 3,5 segundos. El operador de lógica temporal de tiempo absoluto after
controla el tiempo de las transiciones entre estados.
Diferencias entre operadores de lógica temporal basada en eventos y de tiempo absoluto
El tipo de operador de lógica temporal que utilice depende de si está planificando una llamada a función o una transición.
Los operadores de lógica temporal basada en eventos, como every
, dependen del tamaño de paso que utiliza el solver de Simulink. El número de llamadas a función desde que un estado se convirtió en activo también depende del tamaño de paso del solver. Por lo tanto, en los gráficos de un modelo de Simulink no se admite el uso de every
como operador de lógica temporal de tiempo absoluto.
Los operadores de lógica temporal de tiempo absoluto, como after, dependen del tiempo transcurrido desde que un estado se convirtió en activo. En los gráficos de un modelo de Simulink no se admite el uso de at
como operador de lógica temporal de tiempo absoluto.
Para obtener más información, consulte Controlar la ejecución de gráficos con lógica temporal.
Ver el resultado de la simulación
Ejecute el modelo. El bloque Scope muestra la frecuencia de cada llamada a función mediante la diferente inclinación de la pendiente. Las pendientes más inclinadas indican llamadas a función de Simulink más frecuentes.
Consulte también
after
| every
| Temporal Logic Operators