In questo articolo andremo a parlare dei costrutti di base del linguaggio Modelica applicati ad un semplicissimo esempio: un corpo rigido a cui viene applicata una forza costante (Vedi figura in basso).

Forza costante applicata ad una massa

Forza costante applicata ad una massa

La modellazione di questo semplice sistema fisico è assai banale se effettuata tramite l’utilizzo della sotto-libreria Mechanics.Traslational della Libreria Standard Modelica, noi invece andremo a modellare il sistema direttamente utilizzando la sintassi Modelica di base:

model MassaForza "Massa spinta da una forza costante"
parameter Real m=2 "Massa del blocco";
parameter Real f=6 "Forza applicata";
Real s "Posizione del blocco";
Real v "Velocità del bloco";
annotation(Diagram(Rectangle(extent=)));
equation
v = der(s);
m*der(v) = f;
end MassaForza;

Le keyword Modelica sono evidenziate in grassetto. Abbiamo qui definito il modello di un nuovo componente, ed in particolare la sintassi utilizzata è “model <nome> … end <nome>”, dove <nome> è il nome che abbiamo scelto per il modello. Un modello Modelica consiste in differenti sezioni delimitate da alcune keywords come “equation“. In Modelica ogni componente o variabile DEVE essere dichiarato prima di venire utilizzato all’interno del modello. In questo esempio abbiamo definito le variabili reali m, f, s, v. La keyword “parameter” definisce che la variabile in questione sarà costante durante la simulazione e che essa sarà inclusa all’interno del menu per la modifica dei parametri del modello stesso. Il valore di ogni parametro può essere definito in fase di creazione del modello (“m=2″ come nell’esempio)  oppure andando a modificare tale valore utilizzando il menu relativo al componente.

Abbiamo quindi creato un modello composto da due variabili reali v e s e due parametri anch’essi reali m ed f aventi dei valori di default. In Modelica l’ordine delle dichiarazioni delle variabili non conta, infatti una variabile può essere utilizzata prima di essere dichiarata, questo poiché basandosi sulla modellazione grafica a blocchi, sarebbe complicato andare a controllare l’ordine in cui ciascun componente è stato trascinato con il mouse all’interno del modello.

Ogni elemento Modelica può contenere una descrizione opzionale racchiusa tra doppi apici, che se inserita prima del putno e virgola “;” che definisce la fine del codice appartenente al modello , sarà associato definitivamente al componente. E’ inoltre possibile inserire commenti su una o più righe utilizzando la sintassi classica di C++/Java (‘// commento su una linea’, ‘/* commento su più linee*/’ ).