Main Content

La traducción de esta página está obsoleta. Haga clic aquí para ver la última versión en inglés.

Combinar transiciones e intersecciones para crear rutas ramificadas

Una intersección conectiva representa un punto de decisión en una ruta de transición. Puede combinar las transiciones y las intersecciones conectivas para crear rutas desde un origen común a múltiples destinos o de múltiples orígenes a un destino común. Para obtener más información sobre la semántica de las rutas ramificadas, consulte Represent Multiple Paths by Using Connective Junctions.

Añadir una intersección conectiva

Cuando añade una transición a un gráfico, 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 la indicación de intersección circular.

De forma alternativa, para añadir una intersección aislada a un gráfico:

  1. En la paleta de objetos, haga clic en el icono Intersección .

  2. En el área de trabajo del gráfico, haga clic en la ubicación para la nueva intersección conectiva.

Modificar las propiedades de una intersección conectiva

Para modificar el tamaño de una o más intersecciones conectivas:

  1. Seleccione las intersecciones conectivas.

  2. Haga clic con el botón secundario en una de las intersecciones seleccionadas y seleccione Junction Size.

  3. En la lista desplegable, seleccione un tamaño de intersección.

Para cambiar otras propiedades de una intersección conectiva, haga clic con el botón secundario en la intersección conectiva y seleccione Properties. El cuadro de diálogo Intersección conectiva muestra las siguientes propiedades:

  • Parent: estado principal de la intersección conectiva. Para poner elemento principal en primer plano, haga clic en el enlace hipertextual. Esta propiedad es de solo lectura.

  • Description: descripción textual de la intersección. Puede introducir una descripción breve y comentarios.

  • Document link: enlace a la documentación online de la intersección. Puede introducir una dirección URL o un comando de MATLAB® que muestre la documentación en un formato online adecuado, como un archivo HTML o texto de la ventana de comandos de MATLAB. Cuando hace clic en el hipervínculo Document link, Stateflow evalúa el enlace y muestra la documentación.

Ejemplos de rutas de transición con intersecciones conectivas

Al combinar transiciones e intersecciones conectivas puede crear patrones de transición habituales, tales como:

  • Patrones de decisión if-then-else

  • Patrones de bucle for

  • Patrones de bucle while

Para reducir el tiempo de creación de dichos patrones, utilice Pattern Wizard. Para obtener más información, consulte Create Flow Charts by Using Pattern Wizard.

Patrón If-then-else con todas las condiciones especificadas

En este ejemplo, el estado Checked_in presenta una ruta de transición predeterminada con tres intersecciones conectivas. Cada rama de la ruta está restringida por una condición.

Si el estado Front_desk está activo, el evento check_in activa la ejecución de la transición predeterminada de Checked_in. El resultado de la transición predeterminada depende del valor de room_type:

  • Si room_type es 1, el subestado Executive_suite se activa.

  • Si room_type es 2, el subestado Family_suite se activa.

  • Si room_type es 3, el subestado Single_room se activa.

  • Si ninguna de estas condiciones es verdadera, la ruta de transición predeterminada no es válida y Front_desk permanece activa.

Para obtener más información sobre este gráfico, consulte How Stateflow Objects Interact During Execution.

Patrón If-then-else con una transición sin condiciones

En este ejemplo, la transición del estado Start tiene tres intersecciones conectivas. Las primeras dos ramas de la ruta están restringidas por una condición. La última rama de la ruta no tiene ninguna condición.

El gráfico aplica lógica temporal para determinar cuándo la entrada u es igual a 1:

  • Si u es igual a 1 antes del tiempo $t=2$, el estado Fast se activa.

  • Si u es igual a 1 entre $t=2$ y $t=5$, el estado Good se activa.

  • Si u es igual a 1 después de $t=5$, el estado Slow se activa.

Para obtener más información sobre este gráfico, consulte Detect Elapsed Time.

Patrón bucle For

En este ejemplo, un diagrama de flujo utiliza una combinación de transiciones e intersecciones conectivas para construir un bucle for.

A medida que el valor del contador i aumenta de 1 a 10, el diagrama de flujo define los elementos de un arreglo output. El bucle de este diagrama de flujo es equivalente a este fragmento de código de MATLAB:

for i = 1:10
    output(i) = 2*i;
end

Patrón bucle While

En este ejemplo, un diagrama de flujo combina transiciones e intersecciones conectivas para construir un bucle while que calcula el máximo común divisor de las entradas.

El bucle de este diagrama de flujo es equivalente a este fragmento de código C:

while(q > 0) {
    r = fmod(p,q);
    p = q;
    q = r;
}

Temas relacionados