Sammensætning af modeller, der blander diskrete- og kontinuerlige tidsblokke i Simulink (R2016b). (a) Grundmodel. (b) Simulering af grundmodel. Kredit:Benveniste et al.
Hybridsystemer er systemer, der udviser både kontinuerlig og diskret dynamisk adfærd, tillader mere fleksibilitet i modellering af dynamiske fænomener. Hybridsystemers modelleringssprog bruges i vid udstrækning til udvikling af cyberfysiske systemer, hvor kontrolsoftware interagerer med fysiske enheder.
Forskere ved Inria og ANSYS/Esterel Technologies har for nylig præsenteret en ny tilgang til at designe og implementere hybride systemsprog. Deres metode, skitseret i et papir i Proceduren for IEEE , er baseret på synkrone sprogprincipper og tilhørende kompileringsteknikker.
Hybride systemmodelleringsværktøjer har udviklet sig fra blot at være grænseflader til numeriske løsere, blev derefter fuldgyldige sprog til programmering af eksekverbare modeller af dynamiske systemer. Disse modeller er generelt simulerede, testet, debugged og verificeret på forskellige stadier af deres udviklingskæde.
I state-of-the-art metoder, kompilatorer tjekker typisk kildemodeller, producere mellemrepræsentationer og generere sekventiel kode til enten effektiv simulering eller eksekvering på målplatforme. Imidlertid, disse kompileringstrin er ofte svære at designe og implementere.
Den nylige undersøgelse fokuserede på designet, semantik og implementering af hybridsystemers modelleringssprog. Det er baseret på den antagelse, at sådanne sprog er programmeringssprog med hybridsystemsemantik, giver derfor en række nye udfordringer.
"Konklusionen er, at kompleksiteten af egentlige hybridsystemers modelleringssprog gør definitionen af en omfattende formel statisk og dynamisk semantik vanskelig at opnå, " skriver forskerne i deres papir. "Langt fra at være abstrakte filosofiske bekymringer, disse vanskeligheder har praktiske konsekvenser."
For at løse disse udfordringer, forskerne satte sig for at identificere en minimal sprogkerne af ortogonale programmeringskonstruktioner, der er udtryksfulde nok til at skrive realistiske hybridmodeller. De ønskede også at definere detaljeret statisk og dynamisk semantik af dette sprog, samt dets kompileringstrin.
"Resultatet er et hybridsystemmodelleringssprog, hvor synkrone programmeringskonstruktioner kan blandes med almindelige differentialligninger (ODE'er) og nulkrydsningshændelser, og en kørselstid, der uddelegerer deres tilnærmelse til en standard numerisk løser, "forklarer forskerne i deres papir." Vi foreslår en ideel semantik baseret på ikke -standardiseret analyse, som definerer udførelsen af en hybridmodel som en uendelig sekvens af uendeligt små tidstrin."
Den semantiske ramme foreslået af forskerne kan bruges til at specificere og bevise tre væsentlige kompileringstrin. Først, det fører til et typesystem, der garanterer, at et kontinuerligt tidssignal aldrig bruges i situationer, hvor et tidsdiskret signal forventes, og omvendt. Ud over, det sikrer fraværet af kombinatoriske loops, samt generering af statisk planlagt kode for effektiv eksekvering.
"Vores tilgang er blevet evalueret i to implementeringer:det akademiske sprog Zélus, som udvider et sprog, der minder om Luster med Odes og nul-krydsende begivenheder, og den industrielle prototype Scade Hybrid, en konservativ udvidelse af Scade 6, "skriver forskerne i deres papir.
Sammenlignet med andre værktøjer og sprog, såsom Ptolemæus, den tilgang, som forskerne bruger, favoriserer påvisning af usikre modeller på kompileringstidspunktet. Konsekvensen af dette er, at nogle gode modeller bliver forkastet, hovedsagelig fordi de resulterende typesystemer ikke er udtryksfulde nok. Yderligere eksperimentelle undersøgelser kan hjælpe med at afgøre, om disse type systemer er alt for begrænsende.
"Opdagelsen af numeriske vanskeligheder er relateret til stivhed forbliver køretid, og udelukker behovet for overdrevent restriktive programmeringsdiscipliner i industrielle sammenhænge, " skriver forskerne i deres papir. "Udførelse af omfattende analyser på kompileringstidspunktet, mens de begrænser brugerne, kan opdage fejl i modeller tidligt; det giver også mulighed for at fjerne kørselskontroller og statisk planlægge beregningen af trinfunktionen og nulstillingshandlingerne, hvilket fører til mere effektiv kode."
© 2018 Science X Network
Sidste artikelEn ny måde at give køling uden strøm
Næste artikelEuMoBot:Replikering af euglenoid -bevægelse i en blød robot