Main Content

Aggiunta di dati di Stateflow

Quando si desidera memorizzare valori che risultino visibili a un livello specifico della gerarchia di Stateflow®, aggiungere dati al grafico. Quando si simula il modello, gli oggetti dati del grafico mantengono i loro valori per tutta la durata della simulazione.

I dati definiti in un grafico Stateflow sono visibili da più oggetti Stateflow nel grafico, compresi gli stati, le transizioni, le funzioni di MATLAB® e le tabelle della verità. Per determinare quali dati sono utilizzati in uno stato o in una transizione, fare clic con il tasto destro del mouse sullo stato o sulla transizione e selezionareExplore. Un menu contestuale elenca i nomi e gli ambiti di tutti i simboli risolti nello stato o nella transizione. Selezionando un simbolo dal menu contestuale, le sue proprietà vengono visualizzate nel Model Explorer. Selezionando un evento di output dal menu contestuale, si apre il sottosistema Simulink® o il grafico Stateflow associato all'evento.

Nota

I dati Stateflow non sono disponibili per le funzioni Simulink all'interno di un grafico Stateflow.

È possibile aggiungere dati a un grafico Stateflow utilizzando il riquadro Symbols, il menu dell'Editor di Stateflow o il Model Explorer.

Aggiunta di dati tramite il riquadro dei simboli

  1. Nella scheda Modeling, sotto Design Data, selezionare Symbols Pane.

  2. Fare clic sull'icona Create Data .

  3. Nella riga destinata ai nuovi dati, sotto Type, fare clic sull'icona e scegliere:

    • Input Data

    • Local Data

    • Output Data

    • Constant

    • Data Store Memory

    • Parameter

    • Temporary

    Per ulteriori informazioni su queste opzioni, vedere Scope.

  4. Modificare il nome dei dati.

  5. Per i dati di input e di output, fare clic sul campo Port e scegliere un numero di porta.

  6. Per specificare le proprietà dei dati, aprire il Property Inspector. Nel riquadro Symbols, fare clic con il tasto destro del mouse sulla riga del simbolo e selezionareExplore. Per ulteriori informazioni, vedere Set Data Properties.

Aggiunta di dati utilizzando il menu dell'Editor di Stateflow

  1. In un grafico Stateflow in un modello di Simulink, selezionare l'opzione del menu corrispondente all'ambito dei dati che si desidera aggiungere. Per ulteriori informazioni su queste opzioni, vedere Scope.

    AmbitoOpzioni del menu
    Input

    Nella scheda Modeling, sotto Design Data, selezionare Data Input.

    Output

    Nella scheda Modeling, sotto Design Data, selezionare Data Output.

    Local

    Nella scheda Modeling, sotto Design Data, selezionare Local.

    Constant

    Nella scheda Modeling, sotto Design Data, selezionare Constant.

    Parameter

    Nella scheda Modeling, sotto Design Data, selezionare Parameter.

    Data Store Memory

    Nella scheda Modeling, sotto Design Data, selezionare Data Store.

  2. Nella finestra di dialogo dei dati, specificare le proprietà dei dati. Per ulteriori informazioni, vedere Set Data Properties.

Aggiunta di dati tramite il Model Explorer

Per aggiungere dati collegati a una funzione o a uno stato ai grafici Stateflow nei modelli di Simulink, utilizzare il Model Explorer:

  1. Nella scheda Modeling, sotto Design Data, selezionare Model Explorer.

  2. Nel riquadro Model Hierarchy, selezionare l'oggetto nella gerarchia di Stateflow in cui si desidera che i nuovi dati siano visibili. L'oggetto selezionato diventa il genitore dei nuovi dati.

  3. Nella barra degli strumenti del Model Explorer, selezionare il pulsante Add Data (Aggiungi dati) . In alternativa, dal menu del Model Explorer, selezionareAdd > Data. I nuovi dati con una definizione predefinita sono visualizzati nel riquadro Contents del Model Explorer.

  4. Nel riquadro Data, specificare le proprietà dei dati. Per ulteriori informazioni, vedere Set Data Properties.

Suggerimento

Nei seguenti tipi di funzioni non è necessario creare esplicitamente dati locali o temporanei:

  • Funzioni grafiche nei grafici che utilizzano MATLAB come linguaggio di azione

  • Funzioni di tabelle della verità che utilizzano MATLAB come linguaggio di azione

  • Funzioni di MATLAB

In queste funzioni è invece possibile utilizzare variabili non definite per memorizzare i valori accessibili solo durante il resto della chiamata di funzione. Per memorizzare valori che persistono tra le chiamate di funzione, utilizzare dati locali a livello del grafico. In alternativa, nelle funzioni di MATLAB, è possibile utilizzare la parola chiave persistent.

Migliori pratiche per l'utilizzo dei dati nei grafici

Prevenzione dell'ereditarietà delle proprietà dei dati di output dai blocchi Simulink

I dati di output di Stateflow non devono ereditare le proprietà dai segnali di output poiché i valori si propagano a ritroso dai blocchi Simulink e possono essere imprevedibili.

Generazione di codice più efficiente grazie all'utilizzo di dati in-place

È possibile migliorare le prestazioni e ridurre il peso in memoria del codice generato per i grafici Stateflow, le tabelle della verità e le tabelle di transizione di stato utilizzando i dati in-place. Si creano dati in-place quando si utilizza lo stesso nome di dati per l'input e l'output di un grafico. Quando si genera codice dal grafico, il codice generato tratta i dati di input e di output come un singolo argomento in-place trasferito per riferimento. L'utilizzo dei dati in-place riduce il numero di volte in cui il codice generato copia i dati intermedi, rendendo quindi il codice più efficiente.

Quando i dati di input e di output hanno lo stesso nome, è possibile modificare le proprietà solo dei dati di input. Le proprietà dei dati di output sono in sola lettura.

Argomenti complementari