Main Content

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.

    Stateflow chart with two exclusive (OR) states.

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

    Stateflow chart with two parallel (AND) states.

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.

StatoDecomposizioneMotivo
PowerOff, PowerOnStati esclusivi (OR)Il controller non può essere acceso e spento contemporaneamente.
FAN1, FAN2Stati paralleli (AND)Le ventole funzionano come componenti indipendenti che si accendono o si spengono a seconda della quantità di raffreddamento richiesta.
FAN1.On, FAN1.OffStati esclusivi (OR)La ventola 1 non può essere accesa e spenta contemporaneamente.
FAN2.On, FAN2.OffStati esclusivi (OR)La ventola 2 non può essere accesa e spenta contemporaneamente.
SpeedValueStato 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 a FAN2. Esso può attivarsi indipendentemente dal fatto che FAN2 sia acceso o spento.

  • FAN2 viene eseguito per secondo perché si attiva a una temperatura superiore rispetto a FAN1. Esso può attivarsi solo se FAN1 è già acceso.

  • SpeedValue viene eseguito per ultimo in modo da poter rispettare lo stato più recente di FAN1 e FAN2.

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

Simulink model that simulates an air controller system.

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 airflowDescrizioneFattore di attività di raffreddamento kCool
0Non ci sono ventole in funzione. Il valore di temp non diminuisce.0
1Una ventola è in funzione. Il valore di temp diminuisce in base al fattore di attività di raffreddamento.0.05
2Due 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.

Argomenti complementari