Main Content

La traducción de esta página aún no se ha actualizado a la versión más reciente. Haga clic aquí para ver la última versión en inglés.

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 Reuse Simulink Functions in Stateflow Charts.

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

| |

Temas relacionados