Stateflow

 

Stateflow

Modellazione e simulazione di una logica decisionale usando macchine a stati e diagrammi di flusso

Progettazione di macchine a stati

Con Stateflow, è possibile progettare macchine a stati usando elementi di trascinamento ed enunciati logici semplici. Stateflow Onramp e sessioni di formazione sono disponibili per aiutarti a prendere dimestichezza con lo strumento.

Statechart con più stati e blocchi funzione di MATLAB. Lo stato “exchange” contiene logica rappresentata usando un diagramma di flusso per determinare se entra in uno dei due stati figlio o se esce dallo stato.

Creazione di diagrammi di flusso

È possibile utilizzare i diagrammi di flusso per rappresentare la logica a stati. Pattern Wizard consente di generare automaticamente dei diagrammi di flusso per pattern logici comuni.

Modellazione della logica con le tabelle

Stateflow dispone di tabelle di transizione di stato e di tabelle di verità. Le tabelle di transizione di stato offrono una visione tabulare per modellare la logica, mentre le tabelle di verità implementano progetti di logica combinatoria in formato tabulare.

Esecuzione dei grafici Stateflow

Una volta eseguito il proprio diagramma di stato, delle animazioni mettono in evidenza gli stati attivi e le transizioni. È possibile modificare manualmente le variabili durante l’esecuzione per visualizzarne l’impatto sul sistema.

A sinistra è rappresentato un grafico Stateflow per un cambio manuale. I dati di simulazione per due degli stati del grafico sono rappresentati nei grafici a destra, con delle frecce che identificano il diagramma corrispondente di ciascuno stato.

Monitoraggio e analisi dei dati

Simulation Data Inspector offre la possibilità di visualizzare i dati delle simulazioni. Questo strumento consente di monitorare un sistema per raccogliere informazioni utili sul suo comportamento.

Debug della logica in Stateflow

La funzionalità di debugging di Stateflow consente di seguire nel dettaglio l’esecuzione del grafico. È possibile impostare dei breakpoint e seguire varie funzioni del proprio diagramma di stato per capirne il comportamento imprevisto.

Uno schedulatore a logica temporale è implementato in un modello Simulink. Il blocco pianifica l’esecuzione di tre sottosistemi Function-Call, di cui il terzo viene inviato a un blocco Scope.

Pianificazione delle attività in Stateflow

Stateflow può invocare gli algoritmi di Simulink in modo periodico o continuo per pianificare l’esecuzione di componenti e simulare un ambiente in tempo reale.

Modello Simulink che è stato riprogettato dopo la convalida dei requisiti. Sotto il modello, gli stati di verifica dei requisiti elencati sono colorati di verde per indicare che tutte le proprietà del modello sono valide.

Convalida dei progetti con Simulink

Stateflow si integra perfettamente con gli altri prodotti MathWorks per verificare, convalidare e testare i progetti. È possibile sfruttare questi prodotti per assicurarsi che i propri progetti soddisfino i requisiti, per trovare gli errori fin dalle prime fasi e per raggiungere gli obiettivi in termini di qualità.

Due finestre dell’applicazione collegate da un elemento grafico che indica che la seconda finestra è stata creata dalla prima. La prima finestra mostra un grafico Stateflow mentre la seconda mostra il codice C generato automaticamente dal grafico.

Generazione di codice per la distribuzione

La generazione di codice consente di implementare la logica del proprio statechart su sistemi embedded. Stateflow supporta workflow per generare codice C, C++, VHDL e Verilog, così come testo strutturato per PLC.

“Fino a Deep Space 1, la tecnologia basata sulla generazione automatica di codice e gli statechart non erano mai stati utilizzati su sistemi di grandi dimensioni per i software per l’avionica per veicoli spaziali. Gli strumenti di MathWorks hanno reso possibile questo approccio.”