Main Content

La traducción de esta página aún no se ha actualizado a la versión más reciente. Haga clic aquí para ver la última versión en inglés.

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.

    Stateflow chart with two exclusive (OR) states.

  • 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.

    Stateflow chart with two parallel (AND) states.

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.

EstadoDescomposiciónMotivo
PowerOff, PowerOnEstados exclusivos (OR)El controlador no puede estar conectado y desconectado al mismo tiempo.
FAN1, FAN2Estados 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.OffEstados exclusivos (OR)El ventilador 1 no puede estar encendido y apagado al mismo tiempo.
FAN2.On, FAN2.OffEstados exclusivos (OR)El ventilador 2 no puede estar encendido y apagado al mismo tiempo.
SpeedValueEstado 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 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 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®.

Simulink model that simulates an air controller system.

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 airflowDescripciónFactor de actividad de refrigeración kCool
0No hay ventiladores en funcionamiento. El valor de temp no disminuye.0
1Hay un ventilador en funcionamiento. El valor de temp disminuye en función del factor de actividad de refrigeración.0.05
2Hay 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.

Temas relacionados