Contenuto principale

Creazione delle modalità operative principali e secondarie

Nei grafici Stateflow® è possibile creare modalità operative annidate inserendo uno stato all'interno del confine di uno stato esistente. Lo stato esistente è chiamato stato principale, mentre gli stati che contiene sono chiamati stati secondari.

I contenuti dello stato principale si comportano come un grafico più piccolo. In modo analogo a un grafico, lo stato principale contiene una transizione predefinita. Quando lo stato principale diventa attivo, anche lo stato secondario collegato alla transizione predefinita diventa attivo. A questo punto, il grafico transita tra gli stati secondari. Quando lo stato principale è disattivato, anche gli stati secondari sono disattivati.

Ad esempio, in questo modello delle luci di emergenza di un'ambulanza, lo stato On ha gli stati secondari Red e White. Quando On è attivo, l'ambulanza alterna le luci colorate, partendo dallo stato Red. Quando On si spegne, entrambe le luci si spengono.

In questo esempio, si utilizzano gli stati secondari per modellare le velocità di ricarica variabili in un sistema di batterie ricaricabili.

Apertura del modello

Il modello sfGetStartedBattery rappresenta la logica di controllo di un sistema di batterie ricaricabili. Per costruire il modello, seguire le istruzioni riportate nei passaggi precedenti del tutorial.

Fare doppio clic sul blocco Chart per accedere al grafico della batteria.

Gli stati Charge e Discharge rappresentano le modalità operative del sistema di batterie. I dati di input isCharging determinano lo stato attivo. I dati di output sentPower e i dati locali charge indicano la potenza di output in watt e il livello di carica della batteria.

Aggiunta di stati secondari alla gerarchia del modello

Attualmente, il sistema di batterie continua a caricarsi quando è completamente carico e a scaricarsi quando è completamente scarico. Per rappresentare le modalità di carica completa, scarica completa e intermedia, il sistema di batterie richiede ulteriori modalità operative:

Modalità principale Modalità secondaria Azioni Condizione di uscita
Charge FastCharge Quando è attiva, aumenta il livello di carica con una velocità del 4% Quando il livello di carica è superiore all’80%, passa a SlowCharge
Charge SlowCharge Quando è attiva, aumenta il livello di carica con una velocità dell'1%. Quando il livello di carica è pari al 100%, passa a Full
Charge Full Nessuna Nessuna
Discharge Powered Quando è attiva, diminuisce il livello di carica con una velocità del 3%. Quando il livello di carica è inferiore o uguale al 3%, passa a Empty
Discharge Empty In entrata, impostare la potenza di output in watt su 0 Nessuna.

Aggiungere uno stato che indichi la ricarica rapida.

  1. Negli stati Charge e Discharge, rimuovere le azioni during.

  2. Espandere gli stati Charge e Discharge in modo che possano contenere fino a tre stati secondari. Per ridimensionare uno stato, fare clic su un angolo qualsiasi e trascinare verso l'esterno.

  3. In Charge, aggiungere uno stato secondario denominato FastCharge. Gli stati secondari devono essere completamente racchiusi dallo stato principale. I confini degli stati secondario e principale non possono sovrapporsi.

  4. In FastCharge, aggiungere un'azione during che incrementi il dato charge di 4.

Aggiungere due stati che rappresentino la carica lenta e quella in pausa.

  1. Aggiungere uno stato secondario denominato SlowCharge. Aggiungere un'azione during che incrementi charge di 1.

  2. Aggiungere una transizione da FastCharge a SlowCharge che venga eseguita quando charge supera 80.

  3. Aggiungere uno stato secondario denominato Full.

  4. Aggiungere una transizione da SlowCharge a Full che venga eseguita quando charge è uguale a 100.

Aggiungere due stati che rappresentino la scarica normale e quella in pausa.

  1. In Discharge, aggiungere uno stato secondario denominato Powered. Aggiungere un'azione during che decrementi charge di 3.

  2. Aggiungere un altro stato secondario denominato Empty. Aggiungere un'azione entry che imposti sentPower su 0.

  3. Aggiungere una transizione tra Powered e Empty che venga eseguita quando charge è minore o uguale a 3.

Simulazione del modello

Osservare come il grafico transita tra gli stati secondari.

  1. Nell'Editor di Simulink, assicurarsi che il blocco Manual Switch sia impostato su 1.

  2. Nella scheda Simulation (Simulazione), fare clic su Run (Esegui) per simulare il modello. Nella prima fase, sia Charge che FastCharge si attivano. All'aumentare di charge, il grafico transita agli stati secondari SlowCharge e Full. Nel riquadro Symbols (Simboli), charge non supera mai 100.

  3. Tornare al modello ad alto livello di Simulink. Commutare il valore del blocco Manual Switch facendo doppio clic sul blocco.

  4. Accedere al grafico. Il grafico attiva lo stato Discharge e lo stato secondario Powered. Quando charge scende al di sotto di 3, il grafico transita da Powered a Empty. Nel riquadro Symbols (Simboli), charge non scende mai al di sotto di 0.

Il modello della batteria è ora più realistico. Tuttavia, il progetto presenta ancora dei problemi. Ad esempio, se il dispositivo collegato richiede meno di 3,5 watt di potenza, l'output della batteria rimane invariato.

Nel passaggio successivo del tutorial, verrà creato un diagramma di flusso che regola l'output di potenza del sistema di batterie in base alla richiesta del dispositivo collegato.

Vedi anche

Argomenti