Wetenschap
Samenstelling van modellen die discrete- en continue tijdblokken combineren in Simulink (R2016b). (a) Basismodel. (b) Simulatie van het basismodel. Krediet:Benveniste et al.
Hybride systemen zijn systemen die zowel continu als discreet dynamisch gedrag vertonen, waardoor meer flexibiliteit bij het modelleren van dynamische verschijnselen. Modelleringstalen voor hybride systemen worden veel gebruikt voor de ontwikkeling van cyber-fysieke systemen, waarin besturingssoftware interageert met fysieke apparaten.
Onderzoekers van Inria en ANSYS/Esterel Technologies hebben onlangs een nieuwe benadering gepresenteerd voor het ontwerpen en implementeren van hybride systeemtalen. hun methode, geschetst in een paper in Procedures van de IEEE , is gebaseerd op synchrone taalprincipes en bijbehorende compilatietechnieken.
Hybride systeemmodelleringstools zijn geëvolueerd van louter interfaces naar numerieke oplossers, werden toen volwaardige talen voor het programmeren van uitvoerbare modellen van dynamische systemen. Deze modellen zijn over het algemeen gesimuleerd, getest, debuggen en geverifieerd in verschillende stadia van hun ontwikkelingsketen.
In de modernste methoden, compilers controleren meestal bronmodellen, produceer tussentijdse representaties en genereer sequentiële code voor ofwel efficiënte simulatie of uitvoering op doelplatforms. Echter, deze compilatiestappen zijn vaak moeilijk te ontwerpen en te implementeren.
De recente studie richtte zich op het ontwerp, semantiek en implementatie van modelleringstalen voor hybride systemen. Het is gebaseerd op de veronderstelling dat dergelijke talen programmeertalen zijn met hybride systeemsemantiek, dus een aantal nieuwe uitdagingen.
"Het komt erop neer dat de complexiteit van de huidige modelleringstalen voor hybride systemen de definitie van een uitgebreide formele statische en dynamische semantiek moeilijk te bereiken maakt, ' schrijven de onderzoekers in hun paper. 'Verre van abstracte filosofische bekommernissen, deze moeilijkheden hebben praktische gevolgen."
Om deze uitdagingen aan te gaan, de onderzoekers gingen op zoek naar een minimale taalkern van orthogonale programmeerconstructies die expressief genoeg is om realistische hybride modellen te schrijven. Ze wilden ook gedetailleerde statische en dynamische semantiek van deze taal definiëren, evenals de compilatiestappen.
"Het resultaat is een modelleertaal voor hybride systemen waarin synchrone programmeerconstructies kunnen worden gemengd met gewone differentiaalvergelijkingen (ODE's) en nuldoorgangsgebeurtenissen, en een runtime die hun benadering delegeert aan een kant-en-klare numerieke oplosser, " leggen de onderzoekers uit in hun paper. "We stellen een ideale semantiek voor op basis van niet-standaardanalyse, die de uitvoering van een hybride model definieert als een oneindige opeenvolging van oneindig kleine tijdstappen."
Het door de onderzoekers voorgestelde semantisch raamwerk kan worden gebruikt om drie essentiële compilatiestappen te specificeren en te bewijzen. Eerst, het leidt tot een typesysteem dat garandeert dat een continu-tijdsignaal nooit wordt gebruikt in situaties waar een discreet-tijdsignaal wordt verwacht, en vice versa. In aanvulling, het zorgt voor de afwezigheid van combinatorische lussen, evenals het genereren van statisch geplande code voor een efficiënte uitvoering.
"Onze aanpak is geëvalueerd in twee implementaties:de academische taal Zélus, die een taal die doet denken aan Luster uitbreidt met Odes en zero-crossing-evenementen, en het industriële prototype Scade Hybrid, een conservatieve uitbreiding van Scade 6, ' schrijven de onderzoekers in hun paper.
In vergelijking met andere tools en talen, zoals Ptolemaeus, de door de onderzoekers gebruikte aanpak bevordert de detectie van onveilige modellen tijdens het compileren. Het gevolg hiervan is dat sommige goede modellen worden verworpen, vooral omdat de resulterende typesystemen niet expressief genoeg zijn. Verdere experimentele studies zouden kunnen helpen om te bepalen of dit type systemen te beperkend zijn.
"De ontdekking van numerieke problemen is gerelateerd aan stijfheid blijft runtime, en sluit de noodzaak uit van al te restrictieve programmeerdisciplines in industriële contexten, ', schrijven de onderzoekers in hun paper. 'Rijke analyses uitvoeren tijdens het compileren, terwijl de gebruikers worden beperkt, kan fouten in modellen vroegtijdig detecteren; het maakt het ook mogelijk om runtime-controles te verwijderen en om de berekening van de stapfunctie en de reset-acties statisch te plannen, wat leidt tot efficiëntere code."
© 2018 Wetenschap X Netwerk
Wetenschap © https://nl.scienceaq.com