Main Content

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.

Stateflow chart with a hierarchy of states. The outer state is called Parent. It contains two inner states called Child1 and Child2.

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:

  1. Accensione dello stereo.

  2. Accensione del lettore CD.

  3. Riproduzione di un disco.

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

Hierarchy of nested states, as listed by the Model Explorer.

La seguente tabella elenca il ruolo di ogni stato all'interno della gerarchia.

Livello gerarchicoStatoDescrizione
Primo livello (grafico Mode Manager)EjectModalità di espulsione del disco (interrompe tutte le altre funzioni stereo)
NormalOperationModalità di funzionamento normale dell'impianto stereo

Attività del sistema stereo (stati secondari di NormalOperation)

StandbyIl sistema stereo è in modalità standby (OFF)
ONIl sistema stereo è attivo (ON)

Componenti secondari dello stereo (stati secondari di On)

CDModeIl componente secondario del lettore CD è attivo
AMModeIl componente secondario della radio AM è attivo
FMModeIl componente secondario della radio FM è attivo

Attività del lettore CD (stati secondari di CDMode)

StopIl lettore CD è fermo
PlayIl lettore CD sta riproducendo un disco

Modalità di riproduzione del disco (stati secondari di Play)

NormalModalità di riproduzione normale
RewindModalità di riproduzione all'indietro
FastForwardModalità di riproduzione Avanzamento rapido

Questa immagine mostra la disposizione completa degli stati nel grafico.

Arrangement of states in the Mode Manager chart.

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 grafici Mode Manager e CD Player.

  • CD Player riceve l'output dai grafici App Interface e Mode Manager e imita il comportamento meccanico del lettore CD.

Simulink model that simulates a media player. The model contains the chart Media Player Mode Manager and two additional charts, User Request and CD Player Behavior Model.

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.

Argomenti complementari