Questa pagina si riferisce alla release precedente. La corrispondente pagina in inglese è stata rimossa nella release attuale.
Definizione del comportamento del grafico tramite l'utilizzo delle azioni di stato e delle etichette di transizione
Le azioni di stato e le azioni di transizione sono istruzioni che si scrivono rispettivamente all'interno di uno stato o di una transizione per definire il comportamento di un grafico Stateflow® durante la simulazione. Ad esempio, le azioni di questo grafico definiscono una macchina a stati che verifica empiricamente un'istanza della congettura di Collatz. Per un dato input numerico
, il grafico calcola la sequenza di Hailstone
... iterando la seguente regola:
Se
è pari, allora
.Se
è dispari, allora
.
La congettura di Collatz afferma che ogni intero positivo ha una sequenza di Hailstone che alla fine raggiunge l'uno.

Il grafico è composto da tre stati. All'inizio della simulazione, lo stato Init inizializza i dati del grafico impostando:
I dati locali
nsul valore di inputu.I dati locali
n2sul resto, quandonviene diviso per due.I dati di output
ysufalse.
A seconda della parità dell'input, il grafico passa allo stato Even o Odd. Quando l'attività dello stato si sposta tra gli stati Even e Odd, il grafico calcola i numeri della sequenza di Hailstone. Quando la sequenza raggiunge il valore di uno, i dati di output y diventano true e attivano un blocco Stop Simulation (Simulink) nel modello Simulink®.
Tipi di azioni di stato
Le azioni di stato definiscono le attività di un grafico Stateflow quando uno stato è attivo. I tipi più comuni di azioni di stato sono entry, during e exit:
Le azioni
entrysi verificano quando lo stato diventa attivo.Le azioni
duringsi verificano a un passaggio temporale in cui lo stato è già attivo e il grafico non esce dallo stato.Le azioni
exitsi verificano quando il grafico esce dallo stato.
È possibile specificare il tipo di azione di stato utilizzando una parola chiave completa (entry, during, exit) o un'abbreviazione (en, du, ex). Puoi anche raggruppare i tipi di azioni di stato utilizzando le virgole. Ad esempio, un'azione con il tipo combinato entry, during si verifica al passaggio temporale in cui lo stato diventa attivo e a ogni passaggio temporale successivo finché lo stato rimane attivo.
Il grafico di Hailstone contiene azioni in questi stati:
Init: quando questo stato diventa attivo all'inizio della simulazione, l'azioneentrydetermina la parità dine impostaysufalse. Quando il grafico esce daInitdopo un passaggio temporale, l'azioneexitdetermina senè uguale a uno.Even: quando questo stato diventa attivo, così come in ciascun successivo passaggio temporale in cui tale stato è attivo, l'azione combinataentry, duringcalcola il valore e la parità per il numero successivo della sequenza di Hailstonen/2.Odd: quando questo stato diventa attivo, così come in ciascun successivo passaggio temporale in cui tale stato è attivo, l'azione combinataentry, duringverifica senè maggiore di uno e, in caso affermativo, calcola il valore e la parità per il numero successivo della sequenza di Hailstone3*n+1.
Tipi di etichette di transizione
Le etichette di transizione definiscono le attività di un grafico Stateflow quando si modifica lo stato attivo. I tipi più comuni di etichette di transizione sono le condizioni e le azioni di condizione.
[Condition]{ConditionAction} Condition è un'espressione booleana che determina se la transizione si verifica. Se non si specifica una condizione, la transizione avviene nel passaggio temporale successivo a quello in cui lo stato sorgente è diventato attivo.
ConditionAction è un'istruzione che viene eseguita quando la condizione che protegge la transizione è vera. L'azione di condizione avviene dopo la condizione ma prima di qualsiasi azione di stato exit o entry.
Il grafico di Hailstone contiene azioni in queste transizioni:
Transizione predefinita in
Init: all'inizio della simulazione, l'azione di condizionen = uassegna il valore di inputuai dati localin.Transizione da
InitaEven: la condizionen2 == 0determina che la transizione avvenga quandonè pari. Il numero 1 all'origine di questa transizione indica che questa transizione viene valutata prima della transizione daInitaOdd.Transizione da
OddaEven: la condizionen2 == 0determina che la transizione avvenga quandonè pari.Transizione da
EvenaOdd: la condizionen2 ~= 0determina che la transizione avvenga quandonè dispari. In questo caso, l'azione di condizioney = isequal(n,1)determina senè uguale a uno.
Analisi del comportamento del grafico
Per calcolare la sequenza di Hailstone partendo da un valore iniziale di nove:
1. Nel blocco Constant, inserire un valore di 9.
2. Nella scheda Simulation (Simulazione), fare clic su Run (Esegui). Il grafico risponde con le seguenti azioni:
Al tempo
, si verifica la transizione predefinita a Init. L'azione di transizione imposta il valore dinsu 9. Lo statoInitdiventa attivo. Le azionientryinInitimpostanon2su 1 eysufalse.Al tempo
, la condizione n2 == 0è falsa e il grafico si prepara a passare aOdd. L'azioneexitinInitimpostaysufalse. Lo statoInitdiventa inattivo e lo statoOdddiventa attivo. L'azioneentryinOddimpostansu 28 en2su 0.Al tempo
, la condizione n2 == 0è vera, quindi il grafico si prepara a passare aEven. Lo statoOdddiventa inattivo e lo statoEvendiventa attivo. L'azione entry inEvenimpostansu 14 en2su 0.Al tempo
, la condizione n2 ~= 0è falsa, quindi il grafico non esegue una transizione. Lo statoEvenrimane attivo. L'azioneduringinEvenimpostansu 7 en2su 1.Al tempo
, la condizione n2 ~= 0è vera, quindi il grafico si prepara a passare aOdd. L'azione di transizione impostaysu falso. Lo statoEvendiventa inattivo e lo statoOdddiventa attivo. Le azionientryinOddimpostanonsu 22 en2su 0.Il grafico continua a calcolare la sequenza di Hailstone finché non raggiunge un valore
n
al tempo
.Al tempo
, il grafico si prepara a passare da EvenaOdd. L'azione di transizione impostaysutrue. Lo statoEvendiventa inattivo e lo statoOdddiventa attivo. Le azionientryinOddnon modificanonon2. Il blocco Stop Simulation collegato al segnale di outputyinterrompe la simulazione.
3. Nella scheda Simulation (Simulazione), sotto Review Results (Revisiona risultati), fare clic su Data Inspector (Controllo dei dati).
4. Per vedere i valori della sequenza di Hailstone, selezionare il segnale registrato n in Simulation Data Inspector (Controllo dei dati di simulazione).

La sequenza di Hailstone raggiunge il valore di uno dopo 19 iterazioni.