Contenuto principale

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

  1. Nel modello old_sf_car, aprire il grafico shift_logic.

  2. Per aprire il riquadro Symbols (Simboli), nella scheda Modeling (Modellazione), selezionare Symbols Pane (Riquadro simboli).

  3. In ogni sottostato di gear_state, eliminare l'azione entry che assegna un valore alla variabile dei dati di output gear.

  4. Nel riquadro Symbols (Simboli), fare clic con il tasto destro del mouse sulla variabile di output gear e selezionare Delete.

Passaggio 2: abilitare l'output dello stato attivo

  1. Aprire il Property Inspector (Controllo delle proprietà). Nella scheda Modeling (Modellazione), selezionare Property Inspector (Controllo delle proprietà).

  2. Nell'Editor di Stateflow, selezionare lo stato gear_state.

  3. Nel Property Inspector (Controllo delle proprietà), selezionare la casella di spunta Create output for monitoring (Crea output per il monitoraggio), quindi scegliere Child activity.

  4. Nel campo Data name (Nome dati), inserire il nome gear dei dati dello stato attivo.

  5. Nel campo Enum name (Nome enumerazione), inserire il nome gearType del tipo di dato di enumerazione dei dati dello stato attivo.

Passaggio 3: collegare il segnale ai blocchi Simulink

  1. 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).

  2. Collegare il segnale di output gear dal grafico shift_logic al blocco Cast To Double.

  3. Collegare il segnale di output dal blocco Cast To Double al sottosistema Transmission (Trasmissione).

  4. 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).

  5. Effettuare un secondo collegamento dal segnale di output del blocco Cast To Double al blocco Memory.

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

(Simulink) | (Simulink)

Argomenti