MIgrATE ModelIcA Translator+ Embedded

[cml_media_alt id='208']migrate[/cml_media_alt]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).

[cml_media_alt id='209']migrate2[/cml_media_alt]

Fig. 1-MIgrate

Attualmente Migrate è in grado di tradurre controllori la cui funzione di trasferimento è generalizzabile come segue:

[cml_media_alt id='210']migrate3[/cml_media_alt]

Applicando opportunamente la trasformazione di Tustin (fig. 2) si ottiene il filtro ARMA rappresentativo del modello.

[cml_media_alt id='211']migrate4[/cml_media_alt]

Fig. 2 – Digital controller

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

Start typing and press Enter to search