Il linguaggio modelica

Modelica è un linguaggio ad oggetti open source basato su equazioni per la modellazione di sistemi fisici complessi contenenti, ad esempio, meccanica, elettronica, idraulica, termica e controlli.

Perché è nato il linguaggio modelica?
  • Per la modellazione del comportamento dinamico di complessi sistemi multidominio.
  • I modelli sono descritti da equazioni differenziali, algebriche e discrete.
  • Nessuna modellazione tramite equazioni differenziali alle derivate parziali, cioé no FEM (metodi agli elementi finiti) e no CFD (Computational Fluid Dynamics), ma riutilizzo dei loro risultati.
modello dettagliato di veicolo in modelica

Modello dettagliato di veicolo

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 con Modelica.

Relazione fra Dymola e Modelica

Ambiente di simulazione basato su Modelica

Caratteristiche del linguaggio Modelica
  • Notazione matematica per matrici ed array non solo composti da numeri, ma anche da modelli.
  • Sottomodelli rimpiazzabili e modificabili: ad esempio è possibile cambiare velocemente tra versioni diverse di una trasmissione in un modello di veicolo.
  • Costrutti per definire sistemi discontinui e variabili, come ad esempio switch o attriti.
  • Funzioni matematiche con un numero variabile di input / output. La parte procedurale di Modelica è usata come linguaggio di scripting.
  • Chiamata di funzioni scritte in C, Fortran e Java all’interno di Modelica.
  • Potente concetto di libreria (I compilatori dispongono di informazioni sufficienti per la ricerca automatica all’interno di modelli , la gestione della versione, aggiornamento dei modelli, …).
Linguaggio di modellazione ad oggetti

Modelica è un linguaggio di modellazione ad oggetti in cui:

  • Ogni icona rappresenta un componente fisico (resistenza elettrica, pompa, …).
  • Una linea di connessione rappresenta il reale accoppiamento fisico (cavo, flusso di fluido, flusso di calore, …).
  • Un componente può essere costituito da sottosistemi connessi (= struttura gerarchica) e/o è descritto da equazioni.
  • Attraverso algoritmi di manipolazione simbolica, la descrizione Modelica di alto livelloviene tradotta in un set di equazioni differenziali algebriche.
modellazione ad oggetti basata su Modelica in Dymola

Schema di un modello in Dymola basato su Modelica

  • Per ogni dominio vengono quindi definiti i relativi connettori causali e/o acausali (bidirezionali).
Descrizione delle varie tipologie di connettori Modelica

Tipologie di connettori Modelica

  • Ogni tipologia di connettori è compatibile solo con se stessa, in quanto è definita a partire dalle grandezze fisiche relative al dominio ingeristico di appartenenza.
  • Per ogni dominio vengono inoltre definite le leggi fisiche di bilancio relative ad ogni generico componente.
Modellazione da zero di un componente in Modelica

Definizione di un componente di base utilizzando il codice Modelica

  • I modelli sono costituiti da una rappresentazione sotto forma di codice sorgente Modelica e dalla relativa rappresentazione grafica sotto forma di schema a blocchi.
  • Ogni blocco grafico rappresenta un’istanza di una classe definita all’esterno del modello.
  • Le istanze di classi esterne possono venire modificate e rinominate in fase di dichiarazione.
  • Le connessioni fra blocchi non sono altro che equazioni.
Esempio di modellazione ad oggetti in Modelica

Modellazione ad oggetti testuale e a blocchi basata su Modelica

Modello di un sistema complesso multidominio, modellando utilizzando le classi e Modelica

Modello di un sistema complesso multidominio, modellando utilizzando le classi e Modelica

Hardware in the loop

Il codice sorgente Modelica di ogni modello può essere facilmente suddiviso in unità logiche e quindi partizionato definendo differenti task e subtask. Una volta definite tali unità logiche il tool di sviluppo basato su Modelica (Dymola) sarà in grado di suddividere automaticamente le equazioni e di generare codice per ogni target fisico, grazie alla struttura della sintassi Modelica.

Hardware in the loop con Modelica

Hardware in the loop con Modelica

© 2009-2014 Dofware s.r.l. All rights reserved. P.I. 10107570011