Main Content

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 únicamente intersecciones conectivas y transiciones. 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, que es una intersección que no tiene ninguna transición saliente. Para obtener más información, consulte Combinar transiciones e intersecciones 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 Reuse Logic Patterns by Defining Graphical Functions.

Este diagrama de flujo, por ejemplo, modeliza la lógica if-else simple:

Flow chart that models an if else statement.

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 intersecciones conectivas como puntos de ramificación entre rutas de transición alternas. Para representar un diagrama de flujo:

  1. Abra un gráfico nuevo.

  2. Añada una transición predeterminada a una intersecció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 trabajo del gráfico, haga clic en la ubicación de la transición. El editor de Stateflow añade una intersección conectiva nueva como destino de la transición.

  3. Para añadir una transición nueva, apunte al borde de una intersección. A continuación, haga clic y arrastre desde la intersección. El editor de Stateflow proporciona indicaciones gráficas que permiten añadir una intersección o un estado.

    • Para situar una intersección al final de la transición, haga clic en el indicador circular.

    • Para conectar la transición a una intersección existente, arrastre el puntero hasta el destino que desee.

  4. Para añadir una intersección conectiva al gráfico, en la paleta de objetos, haga clic en el icono de intersección . A continuación, en el área de trabajo del gráfico, haga clic en la ubicación de la nueva intersección.

  5. Repita los pasos anteriores según sea necesario.

  6. 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 al crear diagramas de flujo.

Flow chart that illustrates best practices.

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 legibilidad 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.

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.

Temas relacionados