Semplificazione dei grafici Stateflow tramite l'incorporazione dell'output dello stato attivo
Questo esempio mostra come i dati dello stato attivo possano semplificare la progettazione di alcuni grafici Stateflow® poiché non è necessario gestire i dati strettamente correlati alla gerarchia del grafico. Quando si abilitano i dati dello stato attivo, Stateflow riporta l'attività dello stato tramite una porta di output verso Simulink® oppure come dati locali nel grafico. Questo esempio mostra come semplificare la progettazione di un grafico Stateflow aggiungendo i dati di output dello stato attivo. Per ulteriori informazioni, vedere Monitor State Activity Through Active State Data.
Nel modello legacy old_sf_car, il grafico Stateflow shift_logic traccia l'attività dello stato secondario in gear_state aggiornando il valore dei dati di output gear.

Incorporando i dati dello stato attivo, il modello sf_car evita di aggiornare manualmente i dati per riflettere l'attività del grafico. Il grafico, invece, genera automaticamente l'attività dello stato secondario tramite la marcia di output dello stato attivo.

Modifica del modello
Per semplificare la progettazione del modello di old_sf_car, eliminare i dati strettamente correlati alla gerarchia del grafico e abilitare il monitoraggio automatico dell'attività dello stato secondario in gear_state.
Passaggio 1: eliminare il tracking manuale dell'attività dello stato
Nel modello
old_sf_car, aprire il graficoshift_logic.Per aprire il riquadro Symbols (Simboli), nella scheda Modeling (Modellazione), selezionare Symbols Pane (Riquadro simboli).
In ogni sottostato di
gear_state, eliminare l'azione entry che assegna un valore alla variabile dei dati di outputgear.Nel riquadro Symbols (Simboli), fare clic con il tasto destro del mouse sulla variabile di output
geare selezionareDelete.
Passaggio 2: abilitare l'output dello stato attivo
Aprire il Property Inspector (Controllo delle proprietà). Nella scheda Modeling (Modellazione), selezionare Property Inspector (Controllo delle proprietà).
Nell'Editor di Stateflow, selezionare lo stato
gear_state.Nel Property Inspector (Controllo delle proprietà), selezionare la casella di spunta Create output for monitoring (Crea output per il monitoraggio), quindi scegliere
Child activity.Nel campo Data name (Nome dati), inserire il nome
geardei dati dello stato attivo.Nel campo Enum name (Nome enumerazione), inserire il nome
gearTypedel tipo di dato di enumerazione dei dati dello stato attivo.

Passaggio 3: collegare il segnale ai blocchi Simulink
Nel modello di Simulink, aggiungere un blocco Cast To Double. Questo blocco converte l'output enumerato del grafico Stateflow in un segnale di tipo
double. Per ulteriori informazioni, vedere Data Type Conversion (Simulink).Collegare il segnale di output
geardal graficoshift_logical blocco Cast To Double.Collegare il segnale di output dal blocco Cast To Double al sottosistema Transmission (Trasmissione).
Aggiungere un blocco Memory (Simulink). Questo blocco impedisce la formazione di un loop algebrico tra il grafico Stateflow e il sottosistema Threshold Calculation (Calcolo della soglia).
Effettuare un secondo collegamento dal segnale di output del blocco Cast To Double al blocco Memory.
Collegare l'output del blocco Memory al sottosistema Threshold Calculation (Calcolo della soglia).

Visualizzazione dei risultati di simulazione
Il segnale di output gear è un tipo enumerato gestito da Stateflow. È possibile visualizzare il segnale di output dello stato attivo della marcia durante la simulazione collegando il grafico a un blocco Scope. I nomi dei valori enumerati corrispondono ai nomi dei sottostati in gear_state. L'ulteriore valore enumerato di None indica i passi temporali in cui nessun elemento secondario è attivo.

Vedi anche
Data Type Conversion (Simulink) | Memory (Simulink)