Modelizar subsistemas sincrónicos con paralelismo
Para implementar modos de funcionamiento que se ejecuten simultáneamente, utilice el paralelismo en el gráfico de Stateflow®. Por ejemplo, como parte del diseño de un sistema complejo, puede recurrir a estados paralelos para modelizar componentes o subsistemas independientes que estén activos simultáneamente. Para obtener más información, consulte Modelizar máquinas de estados finitos.
Descomposición de un estado
Los gráficos de Stateflow pueden combinar estados exclusivos (OR) y estados paralelos (AND):
Los estados exclusivos (OR) representan modos de funcionamiento mutuamente excluyentes. No puede haber dos estados exclusivos en el mismo nivel jerárquico que estén activos o se ejecuten al mismo tiempo. Stateflow representa cada estado exclusivo con un rectángulo sólido.
Los estados paralelos (AND) representan modos de funcionamiento independientes. Pueden estar activos dos o más estados paralelos al mismo tiempo, aunque se ejecuten en serie. Stateflow representa cada estado paralelo con un rectángulo discontinuo con un número que indica su orden de ejecución.
Todos los estados de un determinado nivel jerárquico deben ser del mismo tipo. El estado principal o, en el caso de los estados de nivel superior, el gráfico propiamente dicho, tiene una descomposición OR (exclusiva) o AND (paralela). El tipo predeterminado de descomposición de un estado es OR (exclusiva). Para cambiar el tipo de descomposición, haga clic con el botón secundario en el estado principal y seleccione Decomposition > AND (Parallel).
Ejemplo de descomposición paralela
En este ejemplo se utiliza el paralelismo para implementar un controlador de aire que mantiene la temperatura del aire a 120 grados en una planta física.
El controlador hace funcionar dos ventiladores. El primer ventilador se enciende cuando la temperatura del aire supera los 120 grados. El segundo ventilador proporciona una refrigeración adicional cuando la temperatura del aire supera los 150 grados. El gráfico modeliza estos ventiladores como estados paralelos, FAN1
y FAN2
, ambos activos cuando el controlador está encendido. Excepto por sus umbrales de funcionamiento, los ventiladores tienen una configuración idéntica de estados y transiciones que refleja los dos modos de funcionamiento de los ventiladores (On
y Off
).
Un tercer estado paralelo, SpeedValue
, calcula el valor de los datos de salida airflow
en función del número de ventiladores que se han encendido en cada unidad de tiempo. La expresión booleana in(FAN1.On)
tiene el valor de 1 cuando está activo el estado On
de FAN1
. De lo contrario, in(FAN1.On)
es igual a 0. Del mismo modo, el valor de in(FAN2.On)
representa si FAN2
se ha encendido o apagado. La suma de estas expresiones indica el número de ventiladores que están encendidos durante cada unidad de tiempo.
Combinar estados exclusivos (OR) y paralelos (AND)
En esta tabla se enumeran los motivos por los que se utilizan los estados exclusivos (OR) y paralelos (AND) en el gráfico del controlador de aire.
Estado | Descomposición | Motivo |
---|---|---|
PowerOff , PowerOn | Estados exclusivos (OR) | El controlador no puede estar conectado y desconectado al mismo tiempo. |
FAN1 , FAN2 | Estados paralelos (AND) | Los ventiladores funcionan como componentes independientes que se encienden o se apagan en función de la necesidad de refrigeración. |
FAN1.On , FAN1.Off | Estados exclusivos (OR) | El ventilador 1 no puede estar encendido y apagado al mismo tiempo. |
FAN2.On , FAN2.Off | Estados exclusivos (OR) | El ventilador 2 no puede estar encendido y apagado al mismo tiempo. |
SpeedValue | Estado paralelo (AND) | SpeedValue representa un subsistema independiente que supervisa el estado de los ventiladores en cada unidad de tiempo. |
Nota
Para dar identificadores únicos a los objetos cuando tienen el mismo nombre en diferentes partes de la jerarquía del gráfico, utilice la notación de puntos (por ejemplo, Fan1.On
y Fan2.On
). Para obtener más información, consulte Identify Data by Using Dot Notation.
Orden de ejecución para estados paralelos
Aunque FAN1
, FAN2
y SpeedValue
están activos simultáneamente, estos estados se ejecutan en serie durante la simulación. Los números en las esquinas superiores derechas de los estados especifican el orden de ejecución. El motivo de este orden de ejecución es:
FAN1
se ejecuta primero porque se enciende a una temperatura más baja queFAN2
. Puede encenderse independientemente de siFAN2
está encendido o apagado.FAN2
se ejecuta en segundo lugar porque se enciende a una temperatura más alta queFAN1
. Solo puede encenderse siFAN1
ya está encendido.SpeedValue
se ejecuta en último lugar para poder conocer el estado más actualizado deFAN1
yFAN2
.
De forma predeterminada, Stateflow asigna el orden de ejecución de los estados paralelos en función de su orden de creación en el gráfico. Para cambiar el orden de ejecución de un estado paralelo, haga clic con el botón secundario en el estado y seleccione un valor de la lista desplegable Execution Order.
Explorar el ejemplo
El ejemplo de Stateflow contiene un gráfico de Stateflow y un subsistema de Simulink®.
En función de la temperatura del aire, temp
, el gráfico Air Controller enciende los ventiladores y pasa el valor de airflow
al subsistema Physical Plant. Este valor de salida determina la cantidad de actividad de refrigeración, como se indica en esta tabla.
Valor de airflow | Descripción | Factor de actividad de refrigeración kCool |
---|---|---|
0 | No hay ventiladores en funcionamiento. El valor de temp no disminuye. | 0 |
1 | Hay un ventilador en funcionamiento. El valor de temp disminuye en función del factor de actividad de refrigeración. | 0.05 |
2 | Hay dos ventiladores en funcionamiento. El valor de temp disminuye en función del factor de actividad de refrigeración. | 0.1 |
El bloque Physical Plant actualiza la temperatura del aire en el interior de la planta basándose en las ecuaciones
temp
(0) = TInitial
temp
'(t) = (TAmbient - temp
(t))·(kHeat - kCool),
donde:
TInitial es la temperatura inicial (valor predeterminado = 70o)
TAmbient es la temperatura ambiente (valor predeterminado = 160o)
kHeat es el factor de transferencia de calor de la planta (valor predeterminado = 0.01)
kCool es el factor de actividad de refrigeración correspondiente a
airflow
El valor nuevo de temp
determina la cantidad de refrigeración en la siguiente unidad de tiempo de la simulación.