Crear diagramas de flujo de Stateflow
Un 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 intersecciones conectivas y transiciones sin utilizar ningún estado. Las intersecciones 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 intersección final (una intersección que no tiene ninguna transición saliente válida).
Un 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 Reuse Logic Patterns by Defining Graphical Functions.
Ejemplo de diagrama de flujo que modeliza una lógica If-Else sencilla:
El diagrama de flujo modeliza este código:
if u > 0 y = 1; else y = 0; end
Representar un diagrama de flujo
Puede representar y personalizar diagramas de flujo a mano utilizando intersecciones conectivas como puntos de ramificación entre rutas de transición alternas:
Abra un gráfico.
Desde la barra de herramientas del Editor, arrastre una o más intersecciones conectivas al gráfico con la herramienta Intersección conectiva:
Añada rutas de transición entre las intersecciones.
Etiquete las transiciones.
Añada una transición predeterminada a una intersección en la que comience la ejecución del diagrama de flujo.
Prácticas recomendadas para crear diagramas de flujo
Siga estas prácticas recomendadas para crear diagramas de flujo eficientes y precisos.
Utilice una única transición predeterminada
Los diagramas de flujo solo tienen un punto de entrada.
Proporcione una única intersección final
La presencia de múltiples intersecciones finales dificulta la lectura de diagramas de flujo.
Una todas las rutas de transición en una intersección final
La ejecución de diagramas de flujo llega siempre al punto final.
Proporcione una transición sin condiciones desde todas las intersecciones excepto la final
Si se producen búsquedas hacia atrás no intencionadas durante la simulación, aparecerá un mensaje de advertencia.
Para controlar el grado de acción de diagnóstico para búsquedas hacia atrás no intencionadas, 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 búsquedas hacia atrás no intencionadas en una intersección si se dan las condiciones siguientes:
La intersección no tiene una ruta de transición sin condiciones a un estado o a una intersección final.
Hay múltiples rutas de transición que llevan a esa intersección.
Para procesar las actualizaciones, utilice acciones de condición en lugar de acciones de transición
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 produce un error en tiempo de compilación.