Main Content

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 que FAN2. Puede encenderse independientemente de si FAN2 está encendido o apagado.

  • FAN2 se ejecuta en segundo lugar porque se enciende a una temperatura más alta que FAN1. Solo puede encenderse si FAN1 ya está encendido.

  • SpeedValue se ejecuta en último lugar para poder conocer el estado más actualizado de FAN1 y FAN2.

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, $k_{\mathrm Cool}$, de acuerdo con estas reglas:

  • airflow = 0: no hay ventiladores en funcionamiento. La temperatura del aire no disminuye porque $k_{\mathrm{Cool}} = 0$.

  • airflow = 1: hay un ventilador en funcionamiento. La temperatura del aire disminuye en función del factor de actividad de refrigeración $k_{\mathrm{Cool}} = 0.05$.

  • airflow = 2: hay dos ventiladores en funcionamiento. La temperatura del aire disminuye en función del factor de actividad de refrigeración $k_{\mathrm{Cool}} = 0.1$.

El subsistema Physical Plant actualiza la temperatura del aire, $temp$, en el interior de la planta basándose en las ecuaciones

$$temp(0) = T_{\mathrm{Initial}}$$

$$temp'(t) = (T_{\mathrm{Ambient}}-temp(t)) \cdot (k_{\mathrm{Heat}}-k_{\mathrm{Cool}}),$$

donde:

  • $T_{\mathrm{Initial}}$ es la temperatura inicial. El valor predeterminado es 70°.

  • $T_{\mathrm{Ambient}}$ es la temperatura ambiente. El valor predeterminado es 160°.

  • $k_{\mathrm{Heat}}$ es el factor de transferencia de calor de la planta. El valor predeterminado es 0.01.

  • $k_{\mathrm{Cool}}$ 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.

Temas relacionados