2012-09-18 11 views
5

Per quanto ne so, Stateflow e Simulink vengono spesso utilizzati contemporaneamente e sono entrambi ambienti sviluppati da MathWorks, che produce Matlab. Posso sapere qual è la differenza tra loro?Qual è la differenza tra stateflow e simulink?

+0

Hai provato a leggere le pagine Web di MathWorks? Quali altre cose hai esaminato? Qual è la tua attuale comprensione, puoi spiegare? Cosa vedi come somiglianze e punti comuni? Di cosa sei ancora confuso? Rispondere a queste domande aiuterà le altre persone a darti l'aiuto di cui hai bisogno. – AndrewC

+0

Sì, ho letto le pagine web. A mio parere, sono tutte le macchine sate. c'è stato, transizione. La differenza è solo che ci sono variabili continue nel simulink. –

+0

Il mio punto era che la tua domanda era un po 'aperta, non ha esposto la tua comprensione attuale e sembrava che tu volessi che noi leggessimo le descrizioni dei prodotti per te. Ho usato MatLab, ma né stateflow né simulink. La mia comprensione è che stateflow è un particolare ambiente specifico del dominio all'interno di simulink, utilizzato specificamente per la logica discreta, mentre simulink è un pacchetto più generale con un'ampia varietà di strumenti. Non sono esperto, però. Forse qualcun altro lo è. Ho aggiunto altri tag per portare la tua domanda a un pubblico più ampio. – AndrewC

risposta

12

Simulink è in gran parte una soluzione orientata ai controlli. Rappresenta graficamente prodotti come la matematica, somme, integrali, ecc. Tuttavia, manca la struttura logica condizionale. Qualsiasi tipo di costrutto if diventa rapidamente terso e ingestibile secondo me. Ho visto molti modelli, e qui c'è una linea chiara dove Simulink dovrebbe finire e Stateflow dovrebbe iniziare.

Stateflow gestisce molto bene con la logica e, naturalmente, le macchine di stato. Ora con l'aggiunta dei blocchi funzione di Simulink all'interno di Stateflow, abbiamo una potente combinazione per consentire alla macchina a stati in Stateflow di dirigere il resto del programma.

Per quanto riguarda la funzionalità, sono entrambi funzionalmente completi, ovvero qualsiasi cosa è possibile codificare in C, è possibile codificare in Simulink o Stateflow. Tuttavia, non consiglierei di codificare un loop PID in Stateflow, ma è possibile. Potresti anche creare facilmente una macchina a stati in Simulink, ma sconsiglierei di farlo.

Per quanto riguarda la generazione del codice; all'inizio della fusione, Stateflow e Simulink avevano generatori di codice separati che venivano cuciti insieme con più codice C generato da Simulink al momento della generazione del codice. Poi arrivò CGIR (Code Generation Intermediary Representation), che unifica il generatore di codice tra Stateflow e Simulink. È arrivato intorno al 2007 e ha continuato a offrire sostanziali aumenti delle prestazioni. Il codice generato ha incrementato le prestazioni target fino a un punto in cui le aziende possono utilizzare il codice nei loro sistemi incorporati e ottenere prestazioni piuttosto che ottenere un piccolo successo. Inoltre, anche il tempo di generare il codice è notevolmente diminuito. CGIR è un rimpiazzo del Target Language Compiler, tuttavia, non temete mai, l'API TLC sarà ancora disponibile, forse per sempre per coloro che hanno sviluppato enormi librerie di librerie di generazione di codice proprietarie.

Spero che questo aiuti, fammi sapere se qualcosa suona di pesce o se ho bisogno di chiarire.

0

Per saperne di più su Stateflow in generale a: http://www.mathworks.com/products/stateflow/examples.html

Stateflow è stato aggiornato per renderlo molto facile creare state machines e diagrammi di flusso in R2012b.

Gli aggiornamenti principali includono un nuovo editor grafico, tabelle di transizione di stato, MATLAB come linguaggio di azione e un debugger integrato. Trova brevi video per queste caratteristiche e come possono essere utilizzati:

http://www.mathworks.com/products/stateflow/whatsnew.html

migliore, Siddharth

0

sto inoltre attualmente coinvolto sia con Simulink e Stateflow. Fino ad ora ho fatto tutto in Simulink ma una volta che devi implementare la logica (se, caso) il tuo modello diventa visivamente difficile da analizzare dopo la codifica. Ma penso che teoricamente puoi fare tutto anche solo in Simulink (correggimi se sbaglio).

La risposta di macduff spiega molto bene le differenze.

saluti, GR

1

Citando a Stateflow Webinar:

Simulink viene utilizzato per rispondere ai continui cambiamenti cambiamenti dinamici. Stateflow viene utilizzato per rispondere a cambiamenti istantanei nelle modifiche dinamiche. I sistemi reali devono rispondere a cambiamenti sia continui che istantanei. Usa sia Simulink che Stateflow in modo da poter utilizzare lo strumento giusto per il lavoro giusto. Esempi: le dinamiche delle sospensioni di un'auto sono modellate con Simulink mentre, la trasmissione ad ingranaggi è modellata con Stateflow.

Problemi correlati