Crear una jerarquía para gestionar la complejidad del sistema
Añada estructura al modelo, de un subcomponente a la vez, creando una jerarquía de estados anidados. A continuación, puede controlar múltiples niveles de complejidad en el gráfico de Stateflow®. Para obtener más información, consulte Modelizar máquinas de estados finitos.
Jerarquía de estados
Para crear una jerarquía de estados, coloque uno o más estados dentro de los límites de otro estado. Los estados internos son estados secundarios (o subestados) del estado externo. El estado externo es el estado principal (o superestado) de los estados internos.
El contenido de un estado principal se comporta como un gráfico más pequeño. Cuando un estado principal se activa, también se activa uno de sus estados secundarios. Cuando el estado principal se inactiva, se inactivan todos sus estados secundarios.
Ejemplo de jerarquía
Este ejemplo modela un sistema estéreo que consta de una radio AM, una radio FM y un reproductor de CD. Durante la simulación, puede controlar el sistema estéreo haciendo clic en los botones de la interfaz de usuario de Media Player Helper.
El sistema estéreo está inicialmente en modo de espera (OFF). Cuando selecciona uno de los botones, el sistema estéreo enciende el subcomponente correspondiente. Si selecciona el reproductor de CD, puede hacer clic en Reproducir, Rebobinar, Avance rápido o Detener. Puede insertar o expulsar un CD en cualquier momento durante la simulación.
Implementar el comportamiento mediante la jerarquía de estado
Inicialmente, la implementación completa del sistema estéreo parece bastante complicada. Sin embargo, al centrarse en un solo nivel de actividad cada vez, puede realizar el diseño general del sistema gradualmente. Por ejemplo, estas condiciones son necesarias para que el reproductor de CD entre en Avance rápido:
Encender el sistema estéreo.
Encender el reproductor de CD.
Reproducir un CD.
Hacer clic en el botón de FF en la IU.
Puede construir un modelo jerárquico que considere cada una de estas condiciones cada vez. Por ejemplo, el nivel más externo define las transiciones entre el encendido y el apagado del sistema estéreo. Los niveles intermedios definen la transición entre los diferentes subcomponentes del sistema estéreo y entre los modos de detención y reproducción del reproductor de CD. El nivel más bajo define la respuesta a los botones cuando cumple con todas las demás condiciones para reproducir un CD.
Para implementar el comportamiento del sistema estéreo, sf_mediaplayer
utiliza la jerarquía de estados anidados enumerados por Model Explorer (Explorador de modelos) en el gráfico de Mode Manager
. Para abrir el explorador de modelos, en la pestaña Modeling, seleccione Model Explorer.
Esta tabla enumera el rol de cada estado en la jerarquía.
Nivel de jerarquía | Estado | Descripción |
---|---|---|
Nivel superior (gráfico de Mode Manager ) | Eject | Modo de expulsión del CD (interrumpe todas las demás funciones del sistema estéreo) |
NormalOperation | Modo de funcionamiento normal del sistema estéreo | |
Actividad del sistema estéreo (estados secundarios de | Standby | El sistema estéreo está en modo de espera (OFF) |
ON | El sistema estéreo está activo (ON) | |
Subcomponentes del sistema estéreo (estados secundarios de | CDMode | El subcomponente reproductor de CD está activo |
AMMode | El subcomponente radio AM está activo | |
FMMode | El subcomponente radio FM está activo | |
Actividad del reproductor de CD (estados secundarios de | Stop | El reproductor de CD está detenido |
Play | El reproductor de CD está reproduciendo un CD | |
Modos de reproducción de CD (estados secundarios de | Normal | Modo de reproducción normal |
Rewind | Modo de retroceso | |
FastForward | Modo de avance rápido |
Esta figura muestra el diseño completo de los estados en el gráfico.
Las intersecciones históricas dentro de los estados
NormalOperation
y ON
registran el modo de funcionamiento (en espera o encendido) y el subcomponente activo del reproductor multimedia (reproductor de CD, radio AM o radio FM) antes de que expulse un CD o apague el sistema.
Explorar el ejemplo
El ejemplo sf_mediaplayer
contiene otros dos gráficos de Stateflow:
App Interface
gestiona la interfaz con la IU y pasa las entradas a los gráficos deMode Manager
yCD Player
.CD Player
recibe la salida de los gráficos deApp Interface
yMode Manager
e imita el comportamiento mecánico del reproductor de CD.
Durante la simulación, puede investigar cómo responde cada gráfico a las interacciones con la app Media Player Helper. Para cambiar rápidamente entre gráficos, utilice las pestañas en la parte superior del editor de Stateflow.