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:
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:
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.
Attualmente Migrate è in grado di tradurre controllori la cui funzione di trasferimento è generalizzabile come segue:
Applicando opportunamente la trasformazione di Tustin 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:
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.