Conference article

Higher-Order Non-Causal Modelling and Simulation of Structurally Dynamic Systems

George Giorgidze
Functional Programming Laboratory, School of Computer Science, University of Nottingham, United Kingdom

Henrik Nilsson
Functional Programming Laboratory, School of Computer Science, University of Nottingham, United Kingdom

Download articlehttp://dx.doi.org/10.3384/ecp09430137

Published in: Proceedings of the 7th International Modelica Conference; Como; Italy; 20-22 September 2009

Linköping Electronic Conference Proceedings 43:22, s. 208-218

Show more +

Published: 2009-12-29

ISBN: 978-91-7393-513-5

ISSN: 1650-3686 (print), 1650-3740 (online)

Abstract

This paper explores a novel approach to the implementation of non-causal modelling and simulation languages supporting highly structurally dynamic systems. One reason the support for structural dynamics is limited in present mainstream non-causal modelling and simulation languages is that they are designed and implemented on the assumption that symbolic processing of models and ultimately compilation of simulation code takes place prior to simulation. We seek to lift that restriction; without sacrificing efficiency; by exploiting just-in-time (JIT) compilation to allow new simulation code; reflecting structural changes; to be generated as the simulation progresses. Our work is carried out in a framework called Functional Hybrid Modelling that supports higher-order modelling; as higher-order modelling lends itself naturally to expressing structural dynamism. However; the central ideas of the paper should be of general interest in the area of structural dynamism. The paper provides an in-depth description of the implementation techniques we have developed as well as a performance evaluation.

Keywords

Non-causal Modelling and Simulation; Structurally Dynamic Systems; Functional Programming; Just-In-Time Compilation; Symbolic/Numerical Methods

References

[1] Kathryn Eleda Brenan; Stephen La Vern Campbell; and Linda Ruth Petzold. Numerical solution of initial value problems in differential-algebraic equations. SIAM; Philadelphia; 1996.

[2] David Broman. Flow Lambda Calculus for declarative physical connection semantics. Technical Reports in Computer and Information Science 1; Linköping University Electronic Press; 2007.

[3] David Broman and Peter Fritzson. Higher-order acausal models. In Peter Fritzson; Franc ¸ois Cellier; and David Broman; editors; Proceedings of the 2nd International Workshop on Equation-Based Object-Oriented Languages and Tools (EOOLT); number 29 in Linköping Electronic Conference Proceedings; pages 59–69; Paphos; Cyprus; 2008. Linköping University Electronic Press.

[4] Conal Elliott and Paul Hudak. Functional reactive animation. In Proceedings of ICFP’97: International Conference on Functional Programming; pages 163–173; June 1997.

[5] George Giorgidze and Henrik Nilsson. Embedding a functional hybrid modelling language in Haskell. In Refereed Proceedings of the 20th International Symposium on the Implementation and Application of Functional Languages (IFL ’08) ; University of Hertfordshire; Hatfield; UK; September 2008. To Appear.

[6] Alan C. Hindmarsh; Peter N. Brown; Keith E. Grant; Steven L. Lee; Radu Serban; Dan E. Shumaker; and Carol S. Woodward. Sundials: Suite of nonlinear and differential/algebraic equation solvers. ACM Trans. Math. Softw.; 31(3):363–396; 2005. doi: 10.1145/1089014.1089020.

[7] Chris Lattner. LLVM: An Infrastructure for Multi-Stage Optimization. Master’s thesis; Computer Science Dept.; University of Illinois at Urbana-Champaign; Urbana; IL; Dec 2002. See http://llvm.org.

[8] Chris Lattner. Introduction to the llvm compiler system. In Proceedings of International Workshop on Advanced Computing and Analysis Techniques in Physics Research; Erice; Sicily; Italy; 2008.

[9] Chris Lattner and Vikram Adve. The LLVM Compiler Framework and Infrastructure Tutorial. In LCPC’04 Mini Workshop on Compiler Research Infrastructures; West Lafayette; Indiana; Sep 2004.

[10] Geoffrey Mainland. Why it’s nice to be quoted: quasiquoting for haskell. In Haskell ’07: Proceedings of the ACM SIGPLAN workshop on Haskell workshop; pages 73–82; New York; NY; USA; 2007. ACM. doi: 10.1145/1291201.1291211.

[11] The Modelica Association. Modelica – A Unified Object-Oriented Language for Physical Systems Modeling: Tutorial version 1.4; December 2000.

[12] Pieter J. Mosterman. Hybrid Dynamic Systems: A Hybrid Bond Graph Modeling Paradigm and its Application in Diagnosis. PhD thesis; Graduate School of Vanderbilt University; Nashville; Tennessee; May 1997.

[13] Pieter J. Mosterman. An overview of hybrid simulation phenomena and their support by simulation packages. In HSCC ’99: Proceedings of the Second International Workshop on Hybrid Systems; pages 165–177; London; UK; 1999. Springer-Verlag.

[14] Pieter J. Mosterman; Gautam Biswas; and Martin Otter. Simulation of discontinuities in physical system models based on conservation principles. In Proceedings of SCS Summer Conference 1998; pages 320–325; July 1998.

[15] Henrik Nilsson. Type-based structural analysis for modular systems of equations. In Peter Fritzson; Franc ¸ois Cellier; and David Broman; editors; Proceedings of the 2nd International Workshop on Equation-Based Object-Oriented Languages and Tools; number 29 in Linköping Electronic Conference Proceedings; pages 71–81; Paphos; Cyprus; July 2008. Linköping University Electronic Press.

[16] Henrik Nilsson; Antony Courtney; and John Peterson. Functional reactive programming; continued. In Proceedings of the 2002 ACM SIGPLAN Haskell Workshop (Haskell’02); pages 51–64; Pittsburgh; Pennsylvania; USA; October 2002. ACM Press.

[17] Henrik Nilsson; John Peterson; and Paul Hudak. Functional hybrid modeling. In Proceedings of PADL’03: 5th International Workshop on Practical Aspects of Declarative Languages; volume 2562 of Lecture Notes in Computer Science; pages 376–390; New Orleans; Lousiana; USA; January 2003. Springer-Verlag. doi: 10.1007/3-540-36388-2_25.

[18] Henrik Nilsson; John Peterson; and Paul Hudak. Functional hybrid modeling from an object-oriented perspective. In Peter Fritzson; Franc ¸ois Cellier; and Christoph Nytsch-Geusen; editors; Proceedings of the 1st International Workshop on Equation-Based Object-Oriented Languages and Tools (EOOLT);number 24 in Linköping Electronic Conference Proceedings; pages 71–87; Berlin; Germany; 2007. Linköping University Electronic Press.

[19] Christoph Nytsch-Geusen; Thilo Ernst; Andr´e Nordwig; Peter Schwarz; Peter Schneider; Matthias Vetter; Christof Wittwer; Thierry Nouidui; Andreas Holm; Jürgen Leopold; Gerhard Schmidt; Alexander Mattes; and Ulrich Doll. MOSILAB: Development of a mod-elica based generic simulation tool supporting model structural dynamics. In Proceedings of the 4th International Modelica Conference; pages 527–535; Hamburg; Germany; 2005.

[20] Günther Zauner; Daniel Leitner; and Felix Breitenecker. Modelling structural-dynamics systems in Modelica/Dymola; Modelica/MOSILAB; and AnyLogic. In Peter Fritzson; Franc ¸ois Cellier; and Christoph Nytsch-Geusen; editors; Proceedings of the 1st International Workshop on Equation-Based Object-Oriented Languages and Tools (EOOLT); number 24 in Linköping Electronic Conference Proceedings; pages 99–110; Berlin; Germany; 2007.Linköping University Electronic Press.

[21] Dirk Zimmer. Enhancing Modelica towards variable structure systems. In Peter Fritzson; Franc ¸ois Cellier; and Christoph Nytsch-Geusen; editors; Proceedings of the 1st International Workshop on Equation-Based Object-Oriented Languages and Tools (EOOLT); number 24 in Linköping Electronic Conference Proceedings; pages 61–70; Berlin; Germany; 2007. Linköping University Electronic Press.

[22] Dirk Zimmer. Introducing Sol: A general methodology for equation-based modeling of variable-structure systems. In Proceedings of the 6th International Modelica Conference; pages 47–56; Bielefeld; Germany; 2008.

[23] Dirk Zimmer. An application of Sol on variable-structure systems with higher index. In Proceedings of the 7th International Modelica Conference; Como; Italy; 2009.

Citations in Crossref