Contenido principal

Diseñar máquinas de estados finitos en Stateflow

Stateflow® es un entorno de programación gráfica que permite crear lógica de control en modelos de Simulink® definiendo los modos de funcionamiento del sistema como estados en una máquina de estados finitos. Además, puede:

  • Reutilizar y compartir la lógica entre modelos.

  • Utilizar código de MATLAB® o subsistemas de Simulink como funciones de una máquina de estados.

  • Visualizar la lógica con animación en vivo.

  • Depurar la lógica utilizando puntos de interrupción y registrando datos de simulación.

Definir lógica usando estados y transiciones

Las máquinas de estados finitos modelan los modos de funcionamiento de un sistema como estados. Un estado puede modificar datos, ejecutar código y eventos, o contener otros estados.

Las máquinas de estados finitos se ejecutan en una serie de pasos. Durante cada paso, cada estado puede estar activo o inactivo. Los estados activos pueden realizar acciones o ejecutar código, mientras que los estados inactivos no pueden. A medida que las condiciones de la máquina de estados cambian, los estados activos también lo hacen.

Considere la transmisión automática de un automóvil. En esta imagen animada, el gráfico de Stateflow modela las marchas como estados. A medida que la velocidad del vehículo cambia, la transmisión cambia las marchas.

Chart animation showing states and transitions activating.

En una máquina de estados, una transición representa la ruta de un estado a otro. Por ejemplo, un sistema de transmisión automática puede cambiar de la primera marcha a la segunda marcha, de la segunda marcha a la primera o a la tercera marcha, etc.

En la gráfica anterior, el gráfico de Stateflow representa las transiciones en el sistema de transmisión como flechas entre estados. Cada transición tiene una condición que determina cuándo cambia el estado activo. Por ejemplo, el automóvil cambia de la primera a la segunda marcha cuando la velocidad del automóvil es superior a 10.

Modelar máquinas de estados utilizando tablas de transición de estado y gráficos

Con Stateflow, puede modelar máquinas de estados como tablas de transición de estado o gráficos.

Utilizar tablas de transición de estado

Las tablas de transición de estado representan los estados y transiciones como entradas de una tabla. Por ejemplo, esta tabla de transición de estado tiene la misma funcionalidad que el gráfico de transmisión automática de la sección anterior.

State transition table that models the automatic transmission of a car.

Considere utilizar una tabla de transición de estado si desea centrarse en implementar lógica sin preocuparse del diseño gráfico de los estados.

Para obtener más información sobre cómo crear tablas de transición de estado, consulte Model Bang-Bang Controller by Using a State Transition Table.

Utilizar gráficos

Cuando se crea un gráfico, se modela la máquina de estados colocando objetos gráficos que representan estados y transiciones en el área de diseño. Considere utilizar un gráfico si la lógica requiere:

  • Componentes reutilizables. Por ejemplo, puede reutilizar código en varios lugares de un gráfico o utilizar el mismo código en varios gráficos.

  • Modos de funcionamiento basados en eventos. Por ejemplo, puede cambiar estados cuando un componente de un gráfico recibe una señal de un componente diferente.

  • Flujo no lineal. Por ejemplo, puede diseñar un flujo de funcionamiento que utiliza bucles o rutas ramificadas.

Para obtener más información sobre cómo crear gráficos de Stateflow, siga los siguientes pasos:

En el tutorial, puede crear un sistema de baterías recargables. El sistema tiene dos baterías que contienen varios modos de funcionamiento, comparten componentes reutilizables y se ejecutan en paralelo.

A chart of a rechargeable battery system with main and emergency batteries that operate in parallel. Each battery has multiple layers of hierarchy.

Consulte también

Temas