• Home
  • Chimica
  • Astronomia
  • Energia
  • Natura
  • Biologia
  • Fisica
  • Elettronica
  • Un nuovo approccio per la progettazione e l'implementazione di un linguaggio di sistemi ibridi

    Composizione di modelli che mescolano blocchi a tempo discreto e continuo in Simulink (R2016b). (a) Modello di base. (b) Simulazione del modello base. Credito:Benveniste et al.

    I sistemi ibridi sono sistemi che mostrano un comportamento dinamico sia continuo che discreto, consentendo una maggiore flessibilità nella modellazione dei fenomeni dinamici. I linguaggi di modellazione di sistemi ibridi sono ampiamente utilizzati per lo sviluppo di sistemi cyber-fisici, in cui il software di controllo interagisce con i dispositivi fisici.

    I ricercatori di Inria e ANSYS/Esterel Technologies hanno recentemente presentato un nuovo approccio per progettare e implementare linguaggi di sistemi ibridi. Il loro metodo, delineato in un documento in Atti dell'IEEE , si basa sui principi del linguaggio sincrono e sulle tecniche di compilazione associate.

    Gli strumenti di modellazione di sistemi ibridi si sono evoluti da semplici interfacce a risolutori numerici, poi sono diventati linguaggi a tutti gli effetti per la programmazione di modelli eseguibili di sistemi dinamici. Questi modelli sono generalmente simulati, testato, debug e verificati in diverse fasi della loro catena di sviluppo.

    Nei metodi all'avanguardia, i compilatori in genere controllano i modelli sorgente, produrre rappresentazioni intermedie e generare codice sequenziale per una simulazione efficiente o per l'esecuzione su piattaforme di destinazione. Però, questi passaggi di compilazione sono spesso difficili da progettare e implementare.

    Il recente studio si è concentrato sulla progettazione, semantica e implementazione di linguaggi di modellazione di sistemi ibridi. Si basa sul presupposto che tali linguaggi siano linguaggi di programmazione con semantica di sistemi ibridi, presentando quindi una serie di nuove sfide.

    "La linea di fondo è che la complessità degli attuali linguaggi di modellazione dei sistemi ibridi rende difficile la definizione di una semantica statica e dinamica formale completa, " scrivono i ricercatori nel loro articolo. "Lungi dall'essere preoccupazioni filosofiche astratte, queste difficoltà hanno conseguenze pratiche".

    Per affrontare queste sfide, i ricercatori si sono proposti di identificare un kernel linguistico minimo di costrutti di programmazione ortogonale che sia sufficientemente espressivo per scrivere modelli ibridi realistici. Volevano anche definire una semantica statica e dinamica dettagliata di questo linguaggio, così come le sue fasi di compilazione.

    "Il risultato è un linguaggio di modellazione di sistemi ibridi in cui i costrutti di programmazione sincrona possono essere mescolati con equazioni differenziali ordinarie (ODE) ed eventi di zero-crossing, e un runtime che delega la loro approssimazione a un solutore numerico standard, " spiegano i ricercatori nel loro articolo. "Proponiamo una semantica ideale basata su analisi non standard, che definisce l'esecuzione di un modello ibrido come una sequenza infinita di passi temporali infinitamente piccoli."

    Il quadro semantico proposto dai ricercatori può essere utilizzato per specificare e dimostrare tre passaggi essenziali di compilazione. Primo, porta a un sistema di tipo che garantisce che un segnale a tempo continuo non venga mai utilizzato in situazioni in cui è previsto un segnale a tempo discreto, e viceversa. Inoltre, assicura l'assenza di loop combinatori, così come la generazione di codice pianificato in modo statico per un'esecuzione efficiente.

    "Il nostro approccio è stato valutato in due implementazioni:il linguaggio accademico Zélus, che estende un linguaggio che ricorda Lustre con Odi ed eventi zero-crossing, e il prototipo industriale Scade Hybrid, un'estensione conservativa di Scade 6, " scrivono i ricercatori nel loro paper.

    Rispetto ad altri strumenti e linguaggi, come Tolomeo, l'approccio utilizzato dai ricercatori favorisce l'individuazione di modelli non sicuri in fase di compilazione. La conseguenza di ciò è che alcuni buoni modelli vengono rifiutati, principalmente perché i sistemi di tipo risultanti non sono sufficientemente espressivi. Ulteriori studi sperimentali potrebbero aiutare a determinare se questi sistemi di tipo sono eccessivamente vincolanti.

    "La scoperta delle difficoltà numeriche è legata alla rigidità dei tempi di esecuzione, ed esclude la necessità di discipline di programmazione eccessivamente restrittive in contesti industriali, " scrivono i ricercatori nel loro articolo. "Eseguendo analisi ricche in fase di compilazione, mentre vincola gli utenti, può rilevare errori nei modelli in anticipo; consente inoltre di rimuovere i controlli di runtime e di programmare staticamente il calcolo della funzione passo e le azioni di ripristino, che porta a un codice più efficiente."

    © 2018 Science X Network




    © Scienza https://it.scienceaq.com