devs flattening with mumodelica and pydevs
play

DEVS Flattening with muModelica and pyDEVS Jesse Doherty Outline - PowerPoint PPT Presentation

DEVS Flattening with muModelica and pyDEVS Jesse Doherty Outline Introduction Motivations Tools Solution Conclusion Introduction DEVS Atomic S ,ta, int , X , ext ,Y , Coupled X self ,Y self


  1. DEVS Flattening with muModelica and pyDEVS Jesse Doherty

  2. Outline ● Introduction ● Motivations ● Tools ● Solution ● Conclusion

  3. Introduction ● DEVS – Atomic 〈 S ,ta,  int , X ,  ext ,Y , 〉 – Coupled 〈 X self ,Y self , D, { M i } , { I i } , { Z ij } ,select 〉

  4. Introduction ● DEVS – Closed under coupling, through flattening – Closure Procedure 〈 X self ,Y self , D, { M i } , { I i } , { Z ij } ,select 〉 〈 S ,ta,  int , X ,  ext ,Y , 〉

  5. Motivation ● Why do we use a coupled DEVS solver?

  6. Motivation ● Why do we use a coupled DEVS solver? – Solver can be parallelized – Solving the original system seems more satisfying – Solving through flattening still requires an atomic solver

  7. Motivation ● Why would we want to flatten?

  8. Motivation ● Why would we want to flatten? – Static analysis – Optimizations – Tools become less complex

  9. How? ● Seems simple – take some cross products – find some minimums – keep track of some time – forward some transition functions

  10. Problems ● Questions come up quickly – how do we specify DEVS – how do we represent them – how do we transform them – how do we solve them

  11. Tools ● Modelica ● muModelica ● Devs in Modelica ● Python Devs

  12. Modelica ● Object oriented model description language – not a programming language ● Highly structured ● Suitable for high-level model description

  13. muModelica ● Modelica compiler originally intended to target octave code ● Written in python ● Extendable ● Provides an AST of input code

  14. DEVS in Modelica ● Set of Modelica classes used to represent DEVS components – Events – State – Port – Atomic DEVS – Coupled DEVS ● More structured than pydevs representation

  15. DEVS in Modelica ● Functionality added to muModelica to DEVS semantics and output pydevs code ● Some restrictions – submodels must be explicitly listed – atomic DEVS' states are expected to have a sequential state component (though not enforced)

  16. PyDEVS ● All seen before

  17. Ideal Solution ● For each coupled DEVS – produce a new atomic DEVS with ● state equivalent to a combination of all sub model states ● transition, output and ta functions are an inlining of component functions – discard original AST and produce AST for just the new atomic DEVS

  18. Initial Solution ● Maintain original AST structure ● Create new flattened versions of coupled models ● State of these flattened versions would consist of a list of instances of component models, and an elapsed time for each ● For each function, perform appropriate logic and forward the function to the needed component models

  19. Current Solution ● While producing python code for modelica models, also produce python code for flattened DEVS models ● Benefits: – Simpler to implement, direct access to python language ● Drawbacks: – loose access to structure of flattened model

  20. Encountered Problems ● muModelica AST can be clumsy when dealing with DEVS structure ● Need a useful way of representing combined states, for use in analysis

  21. Conclusion ● Flattening might be useful ● More specialized tools for dealing with DEVS structure would be needed produce useful analysis

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend