Stateflow

Progettazione della logica

Stateflow offre interfacce grafiche e tabulari per la modellazione della logica di sistema utilizzando macchine a stati. In una macchina a stati, si modellano le modalità operative del sistema come stati e si rappresenta la logica per passare da una modalità all'altra usando transizioni e giunzioni. È possibile modellare i diversi componenti del sistema come stati che vengono eseguiti in modo esclusivo o in parallelo. Stateflow consente di gestire la complessità della progettazione organizzando gerarchicamente gli oggetti, le funzioni e i componenti del diagramma di stato.

In Stateflow è possibile rappresentare graficamente la logica combinatoria con diagrammi di flusso e/o in formato tabulare con tabelle della verità.

La progettazione della logica comprende la definizione di condizioni da verificare (guard conditions) e le successive azioni da eseguire. Stateflow consente di definire le condizioni e le azioni in C o in MATLAB®. È possibile gestire i dati usati nelle condizioni e nelle azioni anche da Simulink® Model Explorer. Prima di eseguire la progettazione, Stateflow analizza il modello e comunica la possibilità di incoerenze di stato, di dati ed eventi inutilizzati e di transizioni non valide.

Stateflow diagram defining the logic for a boiler temperature control system.
Diagramma Stateflow che definisce la logica di un sistema di controllo temperatura di una caldaia. Il diagramma usa funzioni grafiche (destra) per implementare gli algoritmi di utility chiamati dal sistema di riscaldamento (sinistra).

Progettazione grafica della logica

Stateflow fornisce un editor e oggetti grafici per il disegno di macchine a stati e diagrammi di flusso. Per creare una macchina a stati si selezionano stati, transizioni e giunzioni da una paletta grafica e li si trascina nell'editor Stateflow. È anche possibile creare funzioni usando le notazioni del diagramma di flusso (data flow) , i sottosistemi Simulink, MATLAB e le tabelle della verità. Il diagramma Stateflow può essere specificato come un ibrido delle macchine Mealy e Moore con funzionalità estesa, come una macchina Mealy oppure una macchina Moore.

È possibile creare diagrammi di flusso disegnando transizioni collegate a giunzioni e procedere all'esecuzione sulla base della logica condizionale. Pattern Wizard consente di creare schemi di flusso logici di comune utilizzo. I diagrammi di flusso possono essere inseriti in funzioni grafiche per l'uso in diverse posizioni del diagramma di stato e in altri diagrammi di stato dello stesso modello. I diagrammi di flusso possono essere utilizzati per progettare la logica di transizione tra gli stati.

Stateflow diagram that uses a graphical function generated by the pattern wizard.
Diagramma Stateflow (sinistra) che utilizza una funzione grafica (destra) generata da Pattern Wizard (centro).

Stateflow Editor fornisce controlli al momento della modifica per identificare il posizionamento non corretto di oggetti e transizioni non valide.

Stateflow Editor with a model of a cooling system.
Stateflow Editor con un modello di sistema di raffreddamento. Gli stati con i contorni sovrapposti sono evidenziati in rosso.

Progettazione di logica con tabelle

Le tabelle di transizione di stato in Stateflow offrono un ambiente strutturato per la modellazione delle macchine a stati. Per creare una macchina a stati si aggiungono righe per gli stati e colonne per le transizioni tra gli stati. Le tabelle di transizione di stato aiutano a creare macchine a stati fornendo menu a discesa per i nomi di stato, completamento automatico della sintassi della macchina a stati finiti e altri controlli disponibili al momento della modifica. Prima di eseguire un modello, si possono eseguire test diagnostici statici per rilevare gli errori di sintassi, transizioni incomplete e stati non raggiungibili.

La vista della matrice di transizione degli stati generata dalle tabelle di transizione degli stati consente di identificare velocemente le condizioni e i possibili stati di destinazione a partire da un particolare stato.

Le tabelle della verità in Stateflow consentono di modellare una logica che non richieda la manutenzione di uno stato nelle successive esecuzioni (niente gestione della memoria di stato). Per creare una tabella delle verità si inseriscono le condizioni da controllare seguite dalle combinazioni dei risultati di tali condizioni. Per le diverse combinazioni di risultati possono poi essere inserite delle azioni. Dopo aver creato la tabella della verità, è possibile eseguire controlli diagnostici statici per identificare le condizioni sovra-specificate e quelle sotto-specificate.

Truth table implementing the logic for selecting a valid sensor reading in a fault-detection algorithm, and an automatically generated graphical representation of the truth table.
Sinistra: tabella della verità con implementazione della logica per la selezione di una lettura di sensore valida in un algoritmo di identificazione guasti. Destra: rappresentazione grafica generata automaticamente della tabella della verità.
Avanti: Integrazione di componenti e pianificazione degli algoritmi

Progettare e Testare Sistemi di Active Safety con MATLAB e Simulink

Visualizza webinar