MIgrATE ModelIcA Translator+ Embedded
ModelIcA Translator Embedded (MIgrATE) è un applicativo software che permette di tradurre automaticamente modelli di controllori sviluppati in linguaggio Modelica nell’equivalente rappresentazione in codice ANSI C per applicazioni Embedded
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.
I vantaggi derivanti dall’utilizzo di Modelica sono diversi e tra questi:
- modellazione del comportamento dinamico di complessi sistemi multidominio;
- 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.
I modelli sviluppati in Modelica sono costituiti da una rappresentazione sotto forma di codice sorgente e dalla relativa rappresentazione grafica sotto forma di schema a blocchi. In particolare:
- Ogni blocco grafico rappresenta un’istanza di una classe;
- Le connessioni fra blocchi non sono altro che equazioni.
Dalle caratteristiche evidenziate si deduce la possibilità di tradurre il modello in un codice sorgente adatto ad applicazioni Embedded: da questa idea nasce MIgrATE.
MIgrATE
ModelIcA Translator Embedded (MIgrATE) è un applicativo software che permette di tradurre automaticamente modelli di controllori sviluppati in linguaggio Modelica nell’equivalente rappresentazione in codice ANSI C per applicazioni Embedded (fig.1).
Attualmente Migrate è in grado di tradurre controllori la cui funzione di trasferimento è generalizzabile come segue:Applicando opportunamente la trasformazione di Tustin (fig. 2) si ottiene il filtro ARMA rappresentativo del modello.
L’applicazione di algoritmi di traduzione al filtro ottenuto permette la generazione automatica di codice ANSI C e l’applicazione di opportune regole di codifica statica derivate da standard applicativi (MISRA-C) che gli conferiscono precise caratteristiche di affidabilità in applicazioni embedded:
Es:
- allocazione statica della memoria;
- loop di lunghezza predefinita;
Video 1 – MIgrATE translation demo
Le possibili evoluzioni applicative di MIgrATE potrebbero riguardare l’adattamento agli obiettivi di conformità previsti da standard avionici come RTCA DO178-B/C e ferroviari EN 50128.
Caso di studio
Full Authority Digital Engine Control (FADEC) è un sistema composto da un computer digitale, chiamato unità di controllo motore (ECU), e relativi accessori correlati che controllano tutti gli aspetti del velivolo relativamente alle prestazioni del motore. Esistono sistemi FADECs sia per motori a pistone che per motori a getto. FADEC funziona tramite la ricezione di più ingressi variabili relativi alla attuale condizione di volo compresa la densità dell’aria, posizione leva dell’acceleratore, temperatura motore e molti altri parametri. Gli ingressi sono ricevuti dall’ECU e analizzati fino a 70 volte al secondo. Parametri di funzionamento quali flusso del carburante del motore, posizione della valvola di sfiato e altri vengono calcolati da questi dati e applicati opportunamente. FADEC agisce anche sulle limitazioni del motore che variano in funzione dello stato di salute e di manutenzione del motore. Controlli di FADEC, ad esempio, sono pertinenti alla coppia, al monitoraggio della temperatura del flusso del gas, la temperatura e pressione dell’olio. Quando il FADEC acquisisce i dati dai sensori, ne verifica il valore e la gamma, su questa base aggiorna lo stato corrente del sottosistema di attuazione; ad esempio, se la pressione dell’olio o la temperatura dell’olio o il valore di coppia è fuori della relativa gamma di valore, lo stato viene aggiornato come non valido. I requisiti rispetto a questa funzionalità sono definiti come segue: • ECUX_Torque_Status shall [SRS-FADEC-112] be set to INVALID if ECUX_Torque_Value is outside [0; 210]% range of value. • ECUX_Engine_Oil_Temperature_Status shall [SRS-FADEC-125] be set to INVALID if ECUX_Engine_Oil_Temperature_Value is outside [-50; 180] °C range. • ECUX_Engine_Oil_Pressure_Status shall [SRS-FADEC-097] be set to INVALID if ECUX_Engine_Oil_Pressure_Value is outside [-0.10; 15.0] BAR range.
Contattaci