Modelar subsistemas sincrónicos utilizando la descomposición paralela
Para implementar modos de funcionamiento que se ejecuten simultáneamente, utilice estados paralelos en el gráfico de Stateflow®. Por ejemplo, como parte del diseño de un sistema complejo, puede recurrir a estados paralelos para modelar componentes o subsistemas independientes que estén activos simultáneamente.
Descomposición de un estado
El tipo de descomposición de un gráfico o estado especifica si el gráfico o el estado contiene estados exclusivos o estados paralelos:
Los estados exclusivos 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. Los gráficos de Stateflow representan cada estado exclusivo con un rectángulo sólido.
Los estados paralelos representan modos de funcionamiento independientes. Dos o más estados paralelos pueden estar activos al mismo tiempo, aunque se ejecuten en serie. Los gráficos de Stateflow representan cada estado paralelo con un rectángulo discontinuo con un número que indica su orden de ejecución.
Puede combinar estados exclusivos y paralelos en el gráfico de Stateflow estableciendo la descomposición de estado en diferentes niveles de la jerarquía de estados. El tipo predeterminado de descomposición de un estado es Exclusive (OR)
. Para cambiar el tipo de descomposición a Parallel (AND)
, haga clic con el botón secundario en el estado principal y seleccione Decomposition > Parallel (AND). Para volver a cambiar el tipo de descomposición a Exclusive (OR)
, haga clic con el botón secundario en el estado principal y seleccione Decomposition > Exclusive (OR).
Modelar un controlador de temperatura de aire
En este ejemplo se utiliza la descomposición paralela para modelar un controlador de aire que mantiene la temperatura del aire a 120 grados en una planta física.
En el nivel superior, el gráfico del controlador de aire tiene dos estados exclusivos, PowerOff
y PowerOn
. El gráfico usa la descomposición exclusiva (OR) porque el controlador no puede estar encendido y apagado al mismo tiempo.
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 modela estos ventiladores como subestados paralelos, FAN1
y FAN2
, del estado de nivel superior PowerOn
. Dado que los ventiladores funcionan como componentes independientes que se encienden o se apagan en función de la necesidad de refrigeración, PowerOn
utiliza la descomposición paralela (AND) para garantizar que ambos subestados estén activos cuando se enciende el controlador.
Excepto por los umbrales de funcionamiento, los ventiladores están modelados por estados con una configuración idéntica de subestados y transiciones que refleja los dos modos de funcionamiento de los ventiladores, On
y Off
. Dado que ninguno de los ventiladores puede estar encendido y apagado al mismo tiempo, FAN1
y FAN2
tienen una descomposición exclusiva (OR).
En PowerOn
, un tercer estado paralelo denominado SpeedValue
representa un subsistema independiente que calcula el 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.
Especificar el 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 del orden en que los añade al 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
Este ejemplo contiene un gráfico de Stateflow denominado Air Controller
y un subsistema de Simulink® denominado Physical Plant
.
En función de la temperatura del aire de la planta física, el gráfico enciende los ventiladores y devuelve como salida el número de ventiladores en funcionamiento, airflow
, al subsistema. Este valor determina el factor de actividad de refrigeración, , de acuerdo con estas reglas:
airflow
= 0: no hay ventiladores en funcionamiento. La temperatura del aire no disminuye porque .airflow
= 1: hay un ventilador en funcionamiento. La temperatura del aire disminuye en función del factor de actividad de refrigeración .airflow
= 2: hay dos ventiladores en funcionamiento. La temperatura del aire disminuye en función del factor de actividad de refrigeración .
El subsistema Physical Plant actualiza la temperatura del aire, , en el interior de la planta basándose en las ecuaciones
donde:
es la temperatura inicial. El valor predeterminado es 70°.
es la temperatura ambiente. El valor predeterminado es 160°.
es el factor de transferencia de calor de la planta. El valor predeterminado es 0.01.
es el factor de actividad de refrigeración correspondiente a
airflow
.
La temperatura nueva determina la cantidad de refrigeración en la siguiente unidad de tiempo de simulación.