Modelica è un linguaggio ad oggetti open source che si basa su equazioni e viene impiegato per la modellazione di sistemi fisici complessi che coinvolgono, ad esempio, aspetti meccanici, elettronici, idraulici, termici e controllistici.

Perché è nato il linguaggio Modelica?
  • Per la modellazione del comportamento dinamico di sistemi complessi multidominio.
  • Per la modellazione di sistemi il cui comportamento fisico sia descritto da equazioni differenziali, algebriche e discrete (no uso di equazioni differenziali alle derivate parziali, cioè impieghi in ambito FEM o CFD).
Ambiente di Simulazione basato su Modelica

Dymola è un ambiente di simulazione basato su Modelica e completamente compatibile con tutte le sue librerie. Questo significa che Dymola è in grado di risolvere e simulare correttamente qualsiasi modello sviluppato secondo il linguaggio Modelica.

Caratteristiche del linguaggio Modelica
  • Notazione matematica per dichiarare matrici ed array non solo composti da numeri, ma anche da modelli.
  • Sottomodelli rimpiazzabili modificabili: versioni diverse di uno stesso tipo di modello possono essere sostituite con rapidità e semplicità.
  • Possibilità di descrivere sistemi caratterizzati da discontinuità, come ad esempio switch elettrici o attriti meccanici.
  • Possibilità di introdurre funzioni matematiche con un numero variabile di input/output il cui contenuto viene eseguito in maniera procedurale.
  • Possibilità di richiamare all’interno di un modello Modelica funzioni esterne scritte in C/C++, FORTRAN Java.
  • Possibilità di impacchettare i modelli in packages e librerie.
Linguaggio di modellazione ad oggetti

Modelica è un linguaggio di modellazione ad oggetti in cui:

  • Ogni icona può rappresentare un componente fisico (es. resistenza elettrica, pompa, ecc.).
  • Una linea di connessione può rappresentare un reale accoppiamento fisico (cavi elettrici, flusso di fluido, di calore, ecc.).
  • Un componente può essere costituito da sottosistemi connessi (ciascuno con la propria struttura gerarchica) e/o essere descritto da equazioni.
  • Attraverso un solutore simbolico, la descrizione Modelica di alto livello viene tradotta in linguaggio C in modo da risolvere il set di equazioni differenziali algebriche risultante.
  • Per ogni dominio fisico o campo di applicazione sono previsti specifici connettori che possono essere o di tipo causale (in cui il flusso dell’informazione delle corrispondenti connessioni è ben definito) o di tipo acausale (in cui il flusso dell’informazione delle corrispondenti connessioni non è noto a priori, ma solo in fase di risoluzione delle equazioni).
  • Ogni tipologia di connettore è compatibile solo con se stessa, in quanto è definita a partire dalle grandezze fisiche relative al dominio fisico/ingegneristico di appartenenza.
  • La connessione di connettori acausali appartenenti allo stesso dominio produce due tipologie di equazioni, una di uguaglianza tra le variabili potenziali e una di bilancio tra le variabili flusso.
  • I modelli sono costituiti da una rappresentazione testuale (il codice Modelica vero e proprio) e, opzionalmente, dalla corrispondente rappresentazione grafica in termini di diagramma a blocchi in cui i componenti sono collegati tra loro.
  • Ogni blocco grafico è rappresentativo di un’istanza di una classe/modello.
  • Le istanze di classi/modelli possono essere modificate (ad esempio in termini del valore dei parametri caratteristici) e rinominate quando dichiarate.