Contenido principal

Conectar transiciones utilizando intersecciones

Puede conectar múltiples transiciones a una sola ruta, a una ruta ramificada o a un diagrama de flujo utilizando intersecciones.

En Stateflow®, una ruta consiste en una o múltiples transiciones que conectan un origen y un destino. Puede crear una ruta con múltiples transiciones conectando cada transición a una intersección. Las intersecciones son objetos gráficos que representan un punto de decisión y aparecen como círculos en el área de diseño. Por ejemplo, en el gráfico que se muestra a continuación, múltiples transiciones e intersecciones forman una única ruta de un estado a otro.

Un estado o intersección puede tener múltiples rutas de entrada o de salida. Si un estado o intersección tiene múltiples rutas de salida, el gráfico numera las rutas en el orden en el que se evalúan.

En este ejemplo, se utilizan intersecciones para crear un diagrama de flujo dentro del modelo de un sistema de baterías recargables. El diagrama de flujo hace coincidir la salida del sistema de baterías con la demanda del dispositivo conectado, sin sobrepasar los límites de la batería.

Abrir el modelo

Para construir el modelo, siga las instrucciones del paso anterior del tutorial. Alternativamente, utilice el botón Open Model de la parte superior y abra el modelo sfGetStartedFlowchart.

Haga doble clic en el bloque Chart para entrar en el gráfico Battery.

Los estados Charge y Discharge representan los modos de funcionamiento del sistema de baterías. Cada estado contiene estados secundarios que representan las velocidades de carga y descarga cuando la batería se va cargando o descargando. La entrada isCharging determina el estado activo. Los datos sentPower y charge representan la potencia de salida y el nivel de carga de la batería.

Crear un diagrama de flujo

En Stateflow, un diagrama de flujo hace referencia a un gráfico o estado cuyos elementos secundarios están formados exclusivamente por intersecciones y transiciones. Todas las rutas de un diagrama de flujo deben terminar en una intersección única compartida. Puede crear un diagrama de flujo en cualquier nivel de una jerarquía de gráficos.

Cuando la batería se descarga mientras está conectada a una fuente de alimentación, la potencia de salida se mantiene constante. En el estado Powered, cree un diagrama de flujo que haga coincidir la salida de la batería con la demanda del dispositivo conectado, sin sobrepasar un valor máximo.

Añada una ruta que represente que el dispositivo demanda más potencia de la que la batería puede proporcionar.

  1. En el estado Discharge, elimine la acción entry.

  2. En el estado Powered, elimine la acción during.

  3. En el estado Powered, añada la primera intersección. En la paleta, haga clic en el icono Intersección. Coloque la intersección en el estado Powered.

  4. Añada una segunda intersección a la derecha de la primera.

  5. Añada una tercera intersección debajo de la segunda.

  6. Represente una transición desde la primera intersección a la segunda. Añada la condición [deviceDemand>maxPower].

  7. Represente una transición desde la segunda intersección a la tercera. Añada la acción {sentPower=maxPower;}.

Añada una ruta que represente la demanda de potencia dentro de los límites de la batería.

  1. Añada una cuarta intersección debajo de la primera.

  2. Represente una transición desde la primera intersección a la cuarta. Añada la acción {sentPower=deviceDemand;}.

  3. Cree una transición desde la tercera intersección a la cuarta.

Los números de la primera intersección indican el orden de evaluación. La transición con la etiqueta [deviceDemand>maxPower] tiene la etiqueta de orden 1, que indica que se evalúa primero. La transición con la etiqueta {sentPower=deviceDemand;} tiene la etiqueta de orden 2, que indica que se evalúa en segundo lugar.

Una intersección terminal es una intersección sin transiciones de salida. Conecte ambas rutas a una intersección terminal compartida. En la transición a la intersección terminal, disminuya la carga de la batería en proporción a la potencia de salida.

  1. Añada una quinta intersección debajo de la cuarta.

  2. Cree una transición desde la cuarta intersección a la quinta. Añada la acción {charge=charge-sentPower;}.

Evaluar durante los pasos activos con transiciones internas

Las transiciones internas son el equivalente gráfico de una acción during. Cuando un estado contiene una transición interna, dicha transición se evalúa en cada paso mientras el estado permanece activo, pero no en pasos en los que el estado se activa o se desactiva. Si un estado contiene transiciones internas y transiciones entre estados secundarios, las transiciones internas se evalúan primero. Puede crear una transición interna representando una transición desde el borde de un estado hasta un objeto dentro de ese estado.

Represente una transición interna desde el borde del estado Powered hasta la primera intersección.

Definir datos de gráficos

Defina los datos creados en el diagrama de flujo.

  1. En el panel Symbols, en la fila maxPower, en Type, haga clic en el icono y seleccione Local Data. Establezca Value en 3.5.

  2. En la fila deviceDemand, en Type, haga clic en el icono y seleccione Input Data.

  3. En la fila charge, establezca Value en 100.

Añada un bloque que se conecta al puerto de entrada deviceDemand.

  1. Abra el modelo de nivel superior.

  2. Añada un bloque Sine Wave. Conecte el puerto de salida al puerto deviceDemand del gráfico Battery.

  3. Especifique que la onda sinusoidal comience en 0 y alcance un valor máximo de 5. Haga doble clic en el bloque para abrir el cuadro de diálogo del bloque y, después, establezca los parámetros Amplitude y Bias en 2.5. Establezca el parámetro Phase en -pi/4.

  4. Haga clic con el botón secundario en la línea de conexión desde el bloque Sine Wave hasta el gráfico Battery y haga clic en Log selected signals. Repita este paso para la línea de conexión desde el gráfico Battery hasta el bloque Scope.

Simular el modelo

Simule el modelo y observe los resultados.

  1. Para simular el modelo, en la pestaña Simulation, haga clic en Run.

  2. Para abrir Simulation Data Inspector, en la pestaña Simulation, haga clic en Data Inspector.

  3. En la pestaña Inspect, seleccione Battery:1 y Sine Wave:1.

La potencia de salida de la batería coincide con el aumento y disminución de la demanda de energía, hasta un máximo de 3.5. Cerca del final de la simulación, la batería se agota y la potencia de salida desciende a 0.

El sistema de baterías genera potencia según lo esperado. No obstante, si la batería se agota, el sistema ya no puede funcionar.

En el siguiente paso del tutorial, se añade una batería de emergencia no recargable que mantiene las funciones esenciales si la batería principal se agota. Para modelar el funcionamiento simultáneo de las baterías, se usan estados paralelos y eventos.

Consulte también

Temas