Contenido principal

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 Air Controller 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.

Modelar la planta física

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.

Consulte también

Temas