Crear diagramas de flujo de Stateflow
R2026bUn diagrama de flujo de Stateflow® es una construcción gráfica que modeliza patrones lógicos como árboles de decisión y bucles iterativos. Los diagramas de flujo representan una lógica combinatoria en la que un resultado no depende de resultados anteriores. Los diagramas de flujo se crean combinando únicamente uniones conectivas y transiciones. Las uniones proporcionan ramas de decisión entre las distintas rutas de transición. Se empieza a ejecutar un diagrama de flujo en una transición predeterminada y se termina en una unión final, que es una unión que no tiene ninguna transición de salida. Para obtener más información, consulte Combinar transiciones e uniones para crear rutas ramificadas.
Nota
Si un gráfico de Stateflow solo contiene un diagrama de flujo, el gráfico evalúa el diagrama de flujo cada vez que se activa. Por el contrario, el gráfico evalúa cualquier diagrama de flujo dentro de un estado solo durante el acceso al estado.
Una práctica recomendada consiste en encapsular diagramas de flujo en funciones gráficas para crear una lógica modular reutilizable que se puede llamar desde cualquier lugar del gráfico. Para obtener más información sobre las funciones gráficas, consulte Reutilizar patrones lógicos definiendo funciones gráficas.
Este diagrama de flujo, por ejemplo, modeliza la lógica if-else simple:

El diagrama de flujo modeliza este código:
if u > 0 y = 1; else y = 0; end
Representar un diagrama de flujo
Puede representar diagramas de flujo usando uniones conectivas como puntos de ramificación entre rutas de transición alternas. Para representar un diagrama de flujo:
Abra un gráfico nuevo.
Añada una transición predeterminada a una unión en la que comience la ejecución del diagrama de flujo. En la paleta de objetos, haga clic en el icono de transición predeterminada
. A continuación, en el área de diseño del gráfico, haga clic en la ubicación de la transición. El editor de Stateflow añade una unión conectiva nueva como destino de la transición.Para añadir una transición nueva, apunte al borde de una unión. A continuación, haga clic y arrastre desde la unión. El editor de Stateflow proporciona indicaciones gráficas que permiten añadir una unión o un estado.
Para situar una unión al final de la transición, haga clic en el indicador circular.
Para conectar la transición a una unión existente, arrastre el puntero hasta el destino que desee.
Para añadir una unión conectiva al gráfico, en la paleta de objetos, haga clic en el icono de unión
. A continuación, en el área de diseño del gráfico, haga clic en la ubicación de la nueva unión.Repita los pasos anteriores según sea necesario.
Etiquete las transiciones como se describe en Definir acciones en una transición.
Prácticas recomendadas para crear diagramas de flujo
Siga estas prácticas recomendadas cuando se crean diagramas de flujo.

Utilice una única transición predeterminada
Los diagramas de flujo solo tienen un punto de entrada.
Proporcione una única unión final
La presencia de múltiples uniones finales dificulta la legibilidad de diagramas de flujo.
Unifique todas las rutas de transición en una unión final
La ejecución de diagramas de flujo llega siempre al punto final.
Proporcione una transición sin condiciones desde todas las uniones excepto la final
Si se producen retrocesos no intencionados durante la simulación, aparecerá un mensaje de advertencia.
Para controlar el nivel de acción de diagnóstico para retroceso no intencionado, abra el cuadro de diálogo Configuration Parameters y, en el panel Diagnostics > Stateflow, establezca el parámetro Unexpected backtracking en none, warning o error. El ajuste predeterminado es warning. Para obtener más información, consulte Unexpected backtracking (Simulink).
Pueden producirse retrocesos no intencionados en una unión si se dan las condiciones siguientes:
La unión no tiene una ruta de transición sin condiciones a un estado o a una unión final.
Hay múltiples rutas de transición que llevan a esa unión.
Utilice acciones de condición en lugar de acciones de transición para procesar las actualizaciones
Los diagramas de flujo prueban las transiciones, pero no las ejecutan. Como resultado, los diagramas de flujo no ejecutan nunca acciones de transición. Además, en los gráficos que utilizan MATLAB® como lenguaje de acción, utilizar acciones de transición en una función gráfica da lugar a un error en tiempo de compilación.