Programar un subsistema varias veces en una sola unidad de tiempo
En este ejemplo se muestra cómo diseñar un programador en bucle en Stateflow®. El patrón de diseño del programador en bucle permite ejecutar un subsistema de Simulink® varias veces en una sola unidad de tiempo. Los programadores de Stateflow amplían el control de la ejecución de subsistemas en un modelo de Simulink, que determina el orden de ejecución de forma implícita basándose en la conectividad de los bloques y la propagación del tiempo de muestreo.
Comportamiento fundamental del programador en bucle
En este ejemplo, el gráfico del programador en bucle transmite un evento de salida de llamada a función para ejecutar el subsistema de llamada de función A1 varias veces en cada unidad de tiempo. Durante cada unidad de tiempo:
El modelo de Simulink activa el gráfico Edge to Function en el flanco de subida del generador de pulsos de 1 milisegundo.
El gráfico Edge to Function transmite el evento de salida de llamada a función
call
para activar el gráfico Loop Scheduler.El gráfico Loop Scheduler llama al operador
send
para transmitir el evento de salida de llamada a funciónA1
varias veces.
Cada transmisión del evento A1
ejecuta el subsistema A1. El subsistema calcula su salida y devuelve el control al gráfico Loop Scheduler.
Ejecutar el programador en bucle
Cuando se simula el modelo, el scope muestra el valor de y
en cada unidad de tiempo.
Durante cada unidad de tiempo, el valor de y
aumenta en 25 porque:
El diagrama de flujo del programador en bucle implementa un bucle
for
que itera 10 veces.En cada iteración del bucle
for
, el gráfico aumentay
en 1 (el valor constante de la entradau1
).Cada vez que el gráfico transmite el evento de salida al subsistema A1, el subsistema aumenta
y
en 1,5.