Stateflow

Lógica de diseño

Stateflow ofrece interfaces gráficas y tabulares para modelar la lógica del sistema mediante máquinas de estado. En una máquina de estado, se modelan los modos de funcionamiento del sistema a modo de estados y se representa la lógica para cambiar de un modo a otro mediante transiciones y uniones. Es posible modelar los distintos componentes del sistema a modo de estados que se ejecutan de forma exclusiva o en paralelo. Stateflow permite gestionar la complejidad del diseño mediante la organización de objetos, funciones y componentes del diagrama de estado de forma jerárquica.

En Stateflow, se puede representar la lógica combinatoria de forma gráfica mediante diagramas de flujo y en formato tabular mediante tablas de verdad.

El diseño de la lógica implica definir la comprobación de las condiciones y las acciones subsiguientes que se realizarán. Stateflow permite definir condiciones y acciones en C o en MATLAB®. Es posible gestionar los datos empleados en las condiciones y las acciones desde Simulink® Model Explorer. Antes de ejecutar el diseño, Stateflow notifica las posibles incoherencias de estado, los datos y eventos no utilizados y las transiciones no válidas.

Stateflow diagram defining the logic for a boiler temperature control system.
Diagrama de Stateflow que define la lógica de un sistema de control de la temperatura de una caldera. En el diagrama se emplean funciones gráficas (parte derecha) para implementar los algoritmos de utilidad a los que llama el sistema de calefacción (parte izquierda).

Diseño gráfico de la lógica

Stateflow ofrece un editor y objetos gráficos para diseñar máquinas de estado y diagramas de flujo. Para crear una máquina de estado, se seleccionan estados, transiciones y uniones en una paleta gráfica y se arrastran al editor de Stateflow. También se pueden crear funciones mediante la notación de diagramas de flujo, subsistemas de Simulink, MATLAB y tablas de verdad. El diagrama de Stateflow se puede especificar como un híbrido de máquinas de Mealy y Moore con funciones ampliadas, como una máquina de Mealy o como una máquina de Moore.

Es posible crear diagramas de flujo mediante el diseño de transiciones que se conectan en las uniones y se ejecutan en función de una lógica condicional. El Pattern Wizard permite crear patrones de flujo de lógica empleados con frecuencia. Los diagramas de flujo se pueden colocar en funciones gráficas para su uso en diversas ubicaciones del diagrama de estado y en otros diagramas de estado del mismo modelo. Los diagramas de flujo se pueden utilizar para diseñar la lógica de las transiciones entre estados.

Stateflow diagram that uses a graphical function generated by the pattern wizard.
Diagrama de Stateflow (izquierda) que emplea una función gráfica (derecha) generada mediante Pattern Wizard (centro).

El editor de Stateflow proporciona comprobaciones en tiempo de edición para identificar la colocación incorrecta de objetos y las transiciones no válidas.

Stateflow Editor with a model of a cooling system.
Stateflow Editor con un modelo de un sistema de refrigeración. Los estados con límites superpuestos están resaltados en rojo.

Diseño de la lógica mediante tablas

Las tablas de transición de estado de Stateflow proporcionan un entorno estructurado para modelar máquinas de estado. Con el fin de crear una máquina de estado, se añaden filas para los estados y columnas para las transiciones entre estados. Las tablas de transición de estado ayudan a crear máquinas de estado, ya que proporcionan menús desplegables con nombres de estados, completan de forma automática la sintaxis de las máquinas de estado finito y llevan a cabo otras comprobaciones durante la edición. Antes de ejecutar el modelo, puede ejecutar tests estáticos de diagnóstico a fin de detectar errores de sintaxis, transiciones incompletas y estados que no se pueden alcanzar.

La vista de matriz de transición de estado generada a partir de las tablas de transición de estado permite identificar rápidamente condiciones y posibles estados de destino a partir de un estado concreto.

Las tablas de verdad de Stateflow permiten modelar una lógica que no requiere el mantenimiento de un estado en las sucesivas ejecuciones. Para crear una tabla de verdad, se introducen las condiciones que se deben comprobar seguidas por combinaciones de resultados para esas condiciones. Después, se pueden introducir acciones para las distintas combinaciones de resultados. Tras crear la tabla de verdad, se pueden ejecutar tests estáticos de diagnóstico a fin de identificar las condiciones con exceso o falta de especificación.

Truth table implementing the logic for selecting a valid sensor reading in a fault-detection algorithm, and an automatically generated graphical representation of the truth table.
Izquierda: Tabla de verdad que implementa la lógica para seleccionar una lectura de sensor válida en un algoritmo de detección de fallos. Derecha: Representación gráfica generada automáticamente de la tabla de verdad.
Siguiente: Integración de componentes y algoritmos de planificación

Probar Stateflow

Obtener software de prueba

Modelización y Simulación de Manera Sencilla con Simulink

Ver seminario virtual