Generating embedded software from hierarchical hybrid models

Benefits of high-level modeling and analysis are significantly enhanced if code can be generated automatically from a model such that the correspondence between the model and the code is precisely understood. For embedded control software, hybrid systems is an appropriate modeling paradigm because it can be used to specify continuous dynamics as well as discrete switching between modes. Establishing a formal relationship between the mathematical semantics of a hybrid model and the actual executions of the corresponding code is particularly challenging due to sampling and switching errors. In this paper, we describe an approach to compile the modeling language Charon that allows hierarchical specifications of interacting hybrid systems. We show how to exploit the semantics of Charon to generate code from a model in a modular fashion, and identify sufficient conditions on the model that guarantee the absence of switching errors in the compiled code. The approach is illustrated by compiling a model for coordinated motion of legs for walking onto Sony's AIBO robot.

[1]  Thomas A. Henzinger,et al.  The embedded machine: predictable , 2002 .

[2]  Ivar Jacobson,et al.  The Unified Modeling Language User Guide , 1998, J. Database Manag..

[3]  Insup Lee,et al.  Compositional Refinement for Hierarchical Hybrid Systems , 2001, HSCC.

[4]  Henning Dierks,et al.  PLC-automata: a new class of implementable real-time automata , 1997, Theor. Comput. Sci..

[5]  Thomas A. Henzinger,et al.  Hybrid systems III : verification and control , 1996 .

[6]  Vijay Kumar,et al.  Hierarchical modeling and analysis of embedded systems , 2003, Proc. IEEE.

[7]  Edward A. Lee,et al.  What's Ahead for Embedded Software? , 2000, Computer.

[8]  Insup Lee,et al.  Modular code generation from hybrid automata based on data dependency , 2003, The 9th IEEE Real-Time and Embedded Technology and Applications Symposium, 2003. Proceedings..

[9]  Vijay Kumar,et al.  Accurate Event Detection for Simulating Hybrid Systems , 2001, HSCC.

[10]  Mark R. Greenstreet,et al.  Hybrid Systems: Computation and Control , 2002, Lecture Notes in Computer Science.

[11]  Pascal Raymond,et al.  The synchronous data flow programming language LUSTRE , 1991, Proc. IEEE.

[12]  Giorgio Buttazzo,et al.  Hard Real-Time Computing Systems: Predictable Scheduling Algorithms and Applications , 1997 .

[13]  Claude Sammut,et al.  Omnidirectional Locomotion for Quadruped Robots , 2001, RoboCup.

[14]  Chi-Tsong Chen,et al.  Linear System Theory and Design , 1995 .

[15]  Bran Selic,et al.  Real-time object oriented modeling and design , 1994 .

[16]  Thomas A. Henzinger,et al.  Giotto: a time-triggered language for embedded programming , 2001, Proc. IEEE.

[17]  David Harel,et al.  Statecharts: A Visual Formalism for Complex Systems , 1987, Sci. Comput. Program..

[18]  S. Liberty,et al.  Linear Systems , 2010, Scientific Parallel Computing.

[19]  Pravin Varaiya,et al.  SHIFT: A Formalism and a Programming Language for Dynamic Networks of Hybrid Automata , 1996, Hybrid Systems.

[20]  Edward A. Lee,et al.  Taming heterogeneity - the Ptolemy approach , 2003, Proc. IEEE.

[21]  Olivier Bournez,et al.  Approximate Reachability Analysis of Piecewise-Linear Dynamical Systems , 2000, HSCC.

[22]  Thomas A. Henzinger,et al.  The Algorithmic Analysis of Hybrid Systems , 1995, Theor. Comput. Sci..

[23]  Gabor Karsai,et al.  Model-integrated development of embedded software , 2003, Proc. IEEE.

[24]  References , 1971 .

[25]  Zohar Manna,et al.  From Timed to Hybrid Systems , 1991, REX Workshop.

[26]  Rajeev Alur,et al.  Counterexample-guided predicate abstraction of hybrid systems , 2003, Theor. Comput. Sci..