Creazione di una gerarchia per gestire la complessità di un sistema
Aggiungere struttura al proprio modello con un componente secondario alla volta, creando una gerarchia di stati annidati. A quel punto è possibile controllare più livelli di complessità nel proprio grafico Stateflow®. Per ulteriori informazioni, vedere Modellazione di macchine a stati finiti.
Gerarchia di stati
Per creare una gerarchia di stati, posizionare uno o più stati all'interno dei limiti di un altro stato. Gli stati interni sono stati secondari (o substati) dello stato esterno. Lo stato esterno è lo stato principale (o stato aggregato) degli stati interni.
I contenuti di uno stato principale si comportano come un grafico più piccolo. Quando uno stato principale diventa attivo, anche uno dei suoi stati secondari diventa attivo. Quando lo stato principale diventa inattivo, tutti i suoi stati secondari diventano inattivi.
Esempio di una gerarchia
Questo esempio modella un impianto stereo composto da una radio AM, una radio FM e un lettore CD. Durante la simulazione, è possibile controllare l'impianto stereo facendo clic sui pulsanti dell'interfaccia utente di Media Player Helper.
Inizialmente lo stereo è in modalità standby (OFF). Quando si seleziona uno dei pulsanti di richiesta della radio, lo stereo attiva il componente secondario corrispondente. Se si seleziona il lettore CD, si può cliccare su uno dei pulsanti di richiesta del CD per scegliere Riproduzione, Riavvolgimento, Avanzamento rapido o Arresto. Durante la simulazione è possibile inserire o espellere un disco in qualsiasi momento.
Implementazione di un comportamento tramite l'utilizzo della gerarchia di stati
Inizialmente, l'implementazione completa di questo sistema stereo sembra piuttosto complicata. Tuttavia, concentrandosi su un singolo livello di attività alla volta, è possibile progettare il progetto complessivo del sistema in modo incrementale. Ad esempio, affinché il lettore CD entri in modalità di riproduzione Avanzamento rapido sono necessarie le seguenti condizioni:
Accensione dello stereo.
Accensione del lettore CD.
Riproduzione di un disco.
Clic sul pulsante Avanzamento rapido nell'interfaccia utente.
È possibile costruire un modello gerarchico che consideri ciascuna di queste condizioni una alla volta. Ad esempio, il livello più esterno può definire le transizioni tra l'accensione e lo spegnimento dello stereo. I livelli intermedi definiscono la transizione tra i diversi componenti secondari dello stereo e tra le modalità di arresto e riproduzione del lettore CD. Il livello più inferiore definisce la risposta ai pulsanti di richiesta del CD quando sono soddisfatte tutte le altre condizioni per la riproduzione di un disco.
Per implementare il comportamento del sistema stereo, sf_mediaplayer
utilizza la gerarchia di stati annidati elencati dal Model Explorer sotto il grafico Mode Manager
. Per aprire il Model Explorer, selezionare Model Explorer nella scheda Modeling.
La seguente tabella elenca il ruolo di ogni stato all'interno della gerarchia.
Livello gerarchico | Stato | Descrizione |
---|---|---|
Primo livello (grafico Mode Manager ) | Eject | Modalità di espulsione del disco (interrompe tutte le altre funzioni stereo) |
NormalOperation | Modalità di funzionamento normale dell'impianto stereo | |
Attività del sistema stereo (stati secondari di | Standby | Il sistema stereo è in modalità standby (OFF) |
ON | Il sistema stereo è attivo (ON) | |
Componenti secondari dello stereo (stati secondari di | CDMode | Il componente secondario del lettore CD è attivo |
AMMode | Il componente secondario della radio AM è attivo | |
FMMode | Il componente secondario della radio FM è attivo | |
Attività del lettore CD (stati secondari di | Stop | Il lettore CD è fermo |
Play | Il lettore CD sta riproducendo un disco | |
Modalità di riproduzione del disco (stati secondari di | Normal | Modalità di riproduzione normale |
Rewind | Modalità di riproduzione all'indietro | |
FastForward | Modalità di riproduzione Avanzamento rapido |
Questa immagine mostra la disposizione completa degli stati nel grafico.
Prima di espellere un disco o spegnere il sistema, i collegamenti cronologici all'interno degli stati
NormalOperation
e ON
registrano la modalità operativa (Standby o ON) e il componente secondario attivo del lettore multimediale (lettore CD, radio AM o radio FM).
Esplorazione dell'esempio
L'esempio sf_mediaplayer
contiene altri due grafici Stateflow:
App Interface
gestisce l'interfaccia con l'interfaccia utente e passa gli input ai graficiMode Manager
eCD Player
.CD Player
riceve l'output dai graficiApp Interface
eMode Manager
e imita il comportamento meccanico del lettore CD.
Durante la simulazione, è possibile verificare in che modo ogni grafico risponde alle interazioni con l'applicazione Media Player Helper. Per passare rapidamente da un grafico all'altro, utilizzare le schede nella parte superiore dell'editor Stateflow.