Contenido principal

Diseñar máquinas de estados finitos en Stateflow

Stateflow® es un entorno de programación gráfica que permite utilizar máquinas de estados finitos para crear lógica de control en modelos de Simulink®. 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.

Stateflow también admite tablas de verdad y diagramas de flujo. Para obtener más información, consulte Usar tablas de verdad para modelar la lógica combinatoria y Crear diagramas de flujo de Stateflow.

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, donde las marchas son el modo de funcionamiento. Esta imagen animada modela las marchas como estados, representados por rectángulos. A medida que la velocidad del vehículo varía, la transmisión cambia las marchas, representadas mediante el resaltado en azul.

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.

La imagen animada 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 bloques State Transition Table o Chart.

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 transiciones de estados modela las marchas de una transmisión automática como estados.

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 ver un tutorial sobre cómo crear tablas de transición de estado, consulte Model Rechargeable Battery System by Using a State Transition Table.

Utilizar gráficos

Cuando se crea un gráfico, se modela la máquina de estados colocando rectángulos y flechas que representan estados y transiciones en el área de diseño, como en la animación anterior. Considere utilizar un gráfico si el diseño requiere:

  • Componentes reutilizables. Por ejemplo, puede reutilizar estados en múltiples lugares de un gráfico o utilizar el mismo estado en múltiples 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 lógico que utiliza bucles o rutas ramificadas.

Para ver un tutorial sobre cómo crear gráficos de Stateflow, consulte Model Rechargeable Battery System as Chart.

Consulte también

Temas