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?
risposta
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.
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
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
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.
- 1. Test unità/integrazione continua con Simulink/Stateflow
- 2. Qual è la differenza tra = e: =
- 3. Qual è la differenza tra Verilog! e ~?
- 4. Qual è la differenza tra? : e ||
- 5. qual è la differenza tra [[], []] e [[]] * 2
- 6. Qual è la differenza tra $ e $$?
- 7. Qual è la differenza tra ("") e (null)
- 8. Qual è la differenza tra dict() e {}?
- 9. Qual è la differenza tra " " e ""?
- 10. Qual è la differenza tra {0} e ""?
- 11. Qual è la differenza tra `##` e `hashCode`?
- 12. Qual è la differenza tra {0} e +?
- 13. Qual è la differenza tra .ToString() e + ""
- 14. qual è la differenza tra:.! e: r !?
- 15. Qual è la differenza tra "è Nessuno" e "== Nessuno"
- 16. Unix: Qual è la differenza tra la fonte e l'esportazione?
- 17. Qual è la differenza tra il callback e la promessa
- 18. Qual è la differenza tra la sezione .got e .got.plt?
- 19. Qual è la differenza tra la lista() e []
- 20. Qual è la differenza tra GHC e la piattaforma Haskell?
- 21. Qual è la differenza tra sé e la finestra?
- 22. Qual è la differenza tra la cartella vim72 e vimfiles?
- 23. Qual è la differenza tra la serratura e RLock
- 24. Qual è la differenza tra la funzione() {}() e function() {}()
- 25. Qual è la differenza tra la crittografia SHA e AES?
- 26. Qual è la differenza tra la [OptionalField] e [NonSerialized]
- 27. Qual è la differenza tra Chisel e Lava e CLaSH?
- 28. Qual è la differenza tra queste funzioni
- 29. Qual è la differenza tra queste funzioni?
- 30. Qual è la differenza tra Response.Write() eResponse.Output.Write()?
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
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. –
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