2016-05-20 39 views
5

Sono nuovo alla materia "modellazione di sistemi fisici". Ho letto alcune pubblicazioni di base e ho fatto alcuni tutorial su Modelica e Simulink/Simscape. Volevo chiederti, se ho ben capito il seguente contenuto in modo corretto:Terminologia coerente: modellazione, DAE, ODE

  • manipolazione simbolica è il processo di trasformazione di un sistema differenziale-algebrico dell'equazione (modello fisico: DAE) in un sistema di equazioni differenziali (ODE) che può essere risolto con solutori standard (Runge, Kutta, BDF, ...)
  • Esistono anche solutori che possono risolvere direttamente DAE. Ma Modelica (openModelica, Dymola) e Simscape trasferiscono il sistema in un ODE (perché questi metodi sono migliori rispetto ai risolutori DAE diretti?)
  • Un "codice Modelica piatto" è il risultato (= ODE) della trasformazione.

Grazie mille per le vostre risposte.

risposta

7

elaborazione simbolica per Modelica comprende:

  • rimuovi object oriented struttura ed ottenere un ibrido DAE (Modelica piatto)
  • eseguire adattamento, riduzione dell'indice, precarietà di ottenere un ODE
  • eseguire l'ottimizzazione (strappo , l'eliminazione comuni subexpression, ecc)
  • generare il codice per un particolare risolutore

OpenModelica può anche risolvere il sistema in modalità DAE senza trasformarlo in ODE e credo che anche altri strumenti Modelica possano farlo.

Un "codice Modelica piatto" è un codice Modelica in cui viene rimosso l'orientamento dell'oggetto, le equazioni di connessione vengono espanse alle equazioni normali. Il risultato è un DAE ibrido.

See Modelica Spec 3.3 per maggiori informazioni su tutto questo (per esempio Appendice C): https://modelica.org/documents/ModelicaSpec33Revision1.pdf

1

Quindi penso che la comprensione della terminologia è molto buona. A causa del modo dichiarativo (opposto all'imperativo) della programmazione in modelica, otteniamo immediatamente un numero molto elevato di equazioni algebriche. Risolvere questi (in parte) simbolicamente ha, soprattutto, questi vantaggi essenziali:

  • Velocità. Senza eliminare i loop algebrici, la modelica non sarebbe praticamente utilizzabile per qualsiasi problema del mondo reale e anche allora solo in casi semplici non rimangono equazioni algebriche. Sarebbe troppo lento e ti costringerebbe a eseguire manualmente le trasformazioni anche in modelica (come nei linguaggi imperativi, ad esempio in C/C++ o Simulink). Ancora oggi la modelica può essere ancora più lenta delle soluzioni trasformate e ottimizzate manualmente. Inoltre le applicazioni di modellazione spesso richiedono simulazioni in tempo reale.

  • Correttezza. Le trasformazioni simboliche sono basate su prove e le applicazioni di modelica si trovano spesso nell'area dei sistemi critici di sicurezza o cyber-fisici.