Modellazione di sottosistemi sincroni tramite l'utilizzo del parallelismo
Per implementare modalità operative che vengono eseguite nello stesso momento, utilizzare il parallelismo nel proprio grafico Stateflow®. Ad esempio, nell'ambito della progettazione di un sistema complesso, è possibile utilizzare gli stati paralleli per modellare componenti indipendenti o sottosistemi che sono attivi contemporaneamente. Per ulteriori informazioni, vedere Modellazione di macchine a stati finiti.
Decomposizione degli stati
I grafici Stateflow possono combinare stati esclusivi (OR) e stati paralleli (AND):
Gli stati esclusivi (OR) rappresentano modalità di funzionamento che si escludono a vicenda. Due stati esclusivi dello stesso livello gerarchico non possono essere attivi o eseguiti contemporaneamente. Stateflow rappresenta ogni stato esclusivo con un rettangolo pieno.
Gli stati paralleli (AND) rappresentano modalità di funzionamento indipendenti. Due o più stati paralleli possono essere attivi contemporaneamente, anche se vengono eseguiti in serie. Stateflow rappresenta ogni stato parallelo con un rettangolo tratteggiato e un numero che indica l'ordine di esecuzione.
Tutti gli stati di un determinato livello gerarchico devono essere dello stesso tipo. Lo stato principale o, nel caso di stati di livello superiore, il grafico stesso, presenta una decomposizione OR (esclusiva) o AND (parallela). Il tipo di decomposizione di stato predefinito è OR (esclusivo). Per cambiare il tipo di decomposizione, fare clic con il tasto destro sullo stato principale e selezionare Decomposition > AND (Parallel).
Esempio di decomposizione parallela
Questo esempio impiega il parallelismo per implementare un controller dell'aria che mantiene la temperatura dell'aria a 120 gradi in un impianto fisico.
Il controller gestisce due ventole. La prima ventola si accende quando la temperatura dell'aria supera i 120 gradi. La seconda ventola fornisce un ulteriore raffreddamento quando la temperatura dell'aria supera i 150 gradi. Il grafico modella queste ventole come stati paralleli FAN1
e FAN2
, entrambi attivi quando il controller è acceso. A eccezione delle soglie di funzionamento, le ventole presentano una configurazione identica di stati e transizioni che riflette le due modalità di funzionamento delle ventole (On
e Off
).
Un terzo stato parallelo SpeedValue
calcola il valore dei dati di output airflow
in base a quante ventole si sono attivate a ogni passaggio temporale. L'espressione booleana in(FAN1.On)
ha valore 1 quando lo stato On
di FAN1
è attivo. Altrimenti, in(FAN1.On)
è uguale a 0. Allo stesso modo, il valore di in(FAN2.On)
rappresenta se FAN2
si è attivato o disattivato. La somma di queste espressioni indica il numero di ventole accese a ogni passaggio temporale.
Combinazione di stati esclusivi (OR) e paralleli (AND)
La seguente tabella elenca i motivi dell'utilizzo degli stati esclusivi (OR) e paralleli (AND) nel grafico del controller dell'aria.
Stato | Decomposizione | Motivo |
---|---|---|
PowerOff , PowerOn | Stati esclusivi (OR) | Il controller non può essere acceso e spento contemporaneamente. |
FAN1 , FAN2 | Stati paralleli (AND) | Le ventole funzionano come componenti indipendenti che si accendono o si spengono a seconda della quantità di raffreddamento richiesta. |
FAN1.On , FAN1.Off | Stati esclusivi (OR) | La ventola 1 non può essere accesa e spenta contemporaneamente. |
FAN2.On , FAN2.Off | Stati esclusivi (OR) | La ventola 2 non può essere accesa e spenta contemporaneamente. |
SpeedValue | Stato parallelo (AND) | SpeedValue rappresenta un sottosistema indipendente che monitora lo stato delle ventole a ogni passaggio temporale. |
Nota
Per assegnare agli oggetti con lo stesso nome identificativi unici in diverse parti della gerarchia del grafico, utilizzare un sistema di notazione a punti come Fan1.On
e Fan2.On
. Per ulteriori informazioni, vedere Identify Data by Using Dot Notation.
Ordine di esecuzione degli stati paralleli
Sebbene FAN1
, FAN2
e SpeedValue
siano attivi contemporaneamente, durante la simulazione questi stati vengono eseguiti in serie. I numeri nell'angolo in alto a destra degli stati specificano l'ordine di esecuzione. Il motivo di questo ordine di esecuzione è:
FAN1
viene eseguito per primo perché si attiva a una temperatura inferiore rispetto aFAN2
. Esso può attivarsi indipendentemente dal fatto cheFAN2
sia acceso o spento.FAN2
viene eseguito per secondo perché si attiva a una temperatura superiore rispetto aFAN1
. Esso può attivarsi solo seFAN1
è già acceso.SpeedValue
viene eseguito per ultimo in modo da poter rispettare lo stato più recente diFAN1
eFAN2
.
Per impostazione predefinita, Stateflow assegna l'ordine di esecuzione degli stati paralleli in base al loro ordine di creazione nel grafico. Per modificare l'ordine di esecuzione di uno stato parallelo, fare clic con il tasto destro sullo stato e selezionare un valore dall’elenco a discesa Execution Order.
Analisi dell'esempio
L'esempio Stateflow contiene un grafico Stateflow e un sottosistema Simulink®.
In base alla temperatura dell'aria temp
, il grafico Air Controller accende le ventole e passa il valore di airflow
al sottosistema Physical Plant. Questo valore di output determina la quantità di attività di raffreddamento, come indicato dalla seguente tabella.
Valore di airflow | Descrizione | Fattore di attività di raffreddamento kCool |
---|---|---|
0 | Non ci sono ventole in funzione. Il valore di temp non diminuisce. | 0 |
1 | Una ventola è in funzione. Il valore di temp diminuisce in base al fattore di attività di raffreddamento. | 0.05 |
2 | Due ventole sono in funzione. Il valore di temp diminuisce in base al fattore di attività di raffreddamento. | 0.1 |
Il blocco Physical Plant aggiorna la temperatura dell'aria all'interno dell'impianto in base alle equazioni
temp
(0) = TInitial
temp
'(t) = (TAmbient - temp
(t))·(kHeat - kCool),
dove:
TIniziale è la temperatura iniziale (predefinita = 70o)
TAmbiente è la temperatura ambiente (predefinita = 160o)
kCalore è il fattore di trasferimento del calore per l'impianto (predefinito = 0.01)
kFreddo è il fattore di attività di raffreddamento che corrisponde a
airflow
Il nuovo valore di temp
determina la quantità di raffreddamento al passaggio temporale successivo della simulazione.