2010-10-07 10 views
8

Mi piacerebbe capire come funziona il motore di simulazione Simulink. Utilizza un mecanismo di simulazione di eventi discreti (allora come viene gestito il tempo continuo?)? Si basa su una generazione di codice basata su cicli statici? O ?Come funziona il motore di simulazione Simulink?

risposta

4

Prima del primo ciclo, si capisce l'ordine di esecuzione dei blocchi (a partire da quelli che non richiedono input da altri blocchi)

Ogni ciclo, calcola l'uscita di ciascun blocco basato sugli ingressi e sul codice del blocco. Il codice di ogni blocco è statico, esisteva principalmente prima di mettere insieme il modello. (Non so se le opzioni di blocco cambiano effettivamente il codice o se vengono valutate solo in fase di esecuzione, ad ogni iterazione.)

Se la fase di simulazione è variabile, di ogni ciclo calcola la dimensione del passaggio successivo , basato principalmente sulla velocità con cui le variabili del modello stanno cambiando. Più velocemente cambiano, più piccola deve essere la dimensione del passo, quindi non si presume che un derivato brevemente alto duri molto più a lungo di quanto dovrebbe. (Non conosco i dettagli di questo calcolo, forse qualcun altro può far luce?) Quindi, la simulazione "continua", o passo variabile, significa solo che Simulink farà un'ipotesi calcolata su ogni ciclo di dimensioni del gradino sufficientemente piccolo per mantenere l'errore di quantizzazione del tempo a un livello accettabile. Una simulazione veramente continua è letteralmente impossibile su un hardware completamente digitale, come il processore del tuo computer.

+0

Thx. Questo è quello che stavo pensando anche. Ci scusiamo per questa strana domanda, ma come hai ottenuto queste informazioni? Che livello di confidenza hai? – JCLL

+0

@ JLCC Non molto. Ho anni di esperienza nell'uso di Simulink, ma le informazioni derivano da inferire e ottenere indizi dalla documentazione (ci sono molti indizi lì, ma non ho mai trovato una descrizione semplice). Ciò che mi dà più fiducia in ciò che ho detto qui è la mia conoscenza limitata delle funzioni S, che sono blocchi il cui codice scrivi tu stesso. Raccomando di leggerli, forniscono informazioni su cosa sta succedendo. Quello che ho detto sull'algoritmo del calcolo a passo variabile è una fiducia molto bassa. Ma sono sicuro che la simulazione veramente continua è impossibile, anche se non può essere rifatta –

0

Non sono certo un esperto, ma è probabile che la risposta sia "dipende".

Simulink utilizza sicuramente l'integrazione numerica per alcune cose, e per alcuni integratori ci si ritroverà con passaggi temporali discreti. Per altri integratori, il time-step può essere modificato mentre la simulazione è in esecuzione - questo è particolarmente importante per simulare insiemi di equazioni "rigide".