who what where why and how
play

Who, What, Where, Why, and How Synchron'08 Aussois Mouaiad ALRAS - PowerPoint PPT Presentation

Model-Based Design of Embedded Control Systems with a Synchronous Intermediate Model Who, What, Where, Why, and How Synchron'08 Aussois Mouaiad ALRAS December 2008 Who LIG, POPART Where Alain GIRAULT What Why How Mouaiad ALRAS Whole


  1. Model-Based Design of Embedded Control Systems with a Synchronous Intermediate Model Who, What, Where, Why, and How Synchron'08 Aussois Mouaiad ALRAS December 2008

  2. Who LIG, POPART Where Alain GIRAULT What Why How Mouaiad ALRAS Whole Pascal RAYMOND Synchrone What Paul CASPI 2 Model-Based Design of Embedded Control Systems with a Synchronous Intermediate Model

  3. Embedded Systems Who Where Where A special-purpose computer system, What Often designed with real-time computing constraints, and limited resources. Why Usually embedded as part of a complete device including hardware. How Whole What 3 Model-Based Design of Embedded Control Systems with a Synchronous Intermediate Model

  4. What is the story ? Who Where Simulink What What Model-based design (MBD) precisely attempts at replacing the manual coding phase by an automatic code Why generation one. Synchronous Model How Lustre The main issue raised by MBD is the faithfulness of the generated code with respect to the initial model, the Whole latter being defined by the simulation RTOS semantics. What Xenomai 4 Model-Based Design of Embedded Control Systems with a Synchronous Intermediate Model

  5. What is Simulink ? Who An interactive graphical environment that let you design, simulate, Where implement, and test a variety of systems. What What Why How Whole What 5 Model-Based Design of Embedded Control Systems with a Synchronous Intermediate Model

  6. What is Lustre ? Who Lustre is a formally defined, declarative, and synchronous dataflow programming language, for programming reactive Where systems. What What Why How Whole What 6 Model-Based Design of Embedded Control Systems with a Synchronous Intermediate Model

  7. What is Xenomai RTOS ? Who Where Categories of services : Xenomai is a real-time ➢ Ta s k m a n a g e m e n t. C re a te a n e w re a l-tim e ta s k . What What development framework S ta rt a re a l-tim e ta s k . M a k e a re a l-tim e ta s k p e rio d ic . cooperating with the Linux S e n d a m e s s a g e to a ta s k . R e p ly to a ta s k . kernel, in order to provide a W a it o n th e te rm in a tio n o f a re a l-tim e ta s k . Why .... pervasive, interface-agnostic, ➢ T im in g a n d A la rm s s e rv ic e s . C re a te a n a la rm o b je c t. hard real-time support to W a it fo r th e n e x t a la rm s h o t. C o n v e rt n a n o s e c o n d s to in te rn a l c lo c k tic k s . How user-space applications, In q u ire a b o u t th e tim e r. S e t th e s ys te m c lo c k ra te . seamlessly integrated into the .... ➢ S y n c h ro n iz a tio n GNU/Linux environment. s u p p o rt. Whole C o u n tin g s e m a p h o re s , M u te x e s , C o n d itio n v a ria b le s , E v e n t fla g g ro u p s . ➢ M e s s a g in g a n d c o m m u n ic a tio n . M e s s a g e q u e u e s , M e m o ry h e a p s , What M e s s a g e p ip e s . ➢ D e v ic e I/ O h a n d lin g . ➢ R e g is try s u p p o rt. 7 Model-Based Design of Embedded Control Systems with a Synchronous Intermediate Model

  8. Why Model-based ? Who In the domain of embedded systems, it offers the huge advantage of avoiding the time-consuming and error-prone Where final coding phase. Why Simulink ? What One of the most popular design tool for automatic control application. Why Why Automatic control people love Simulink. How Why Lustre ? Whole Software people do not like Simulink. Lustre, as a synchronous language, has a clean What mathematical semantics. Using Lustre as a intermediare model permet the use of Lustre tools for simulation and validation 8 Model-Based Design of Embedded Control Systems with a Synchronous Intermediate Model

  9. Why Model-based ? Who In the domain of embedded systems, it offers the huge advantage of avoiding the time-consuming and error-prone Where final coding phase. Why Simulink ? What One of the most popular design tool for automatic control application. Why Why Automatic control people love Simulink. How Why Lustre ? Whole Software people do not like Simulink. Lustre, as a synchronous language, has a clean What mathematical semantics. Using Lustre as a intermediare model permet the use of Lustre tools for simulation and validation 9 Model-Based Design of Embedded Control Systems with a Synchronous Intermediate Model

  10. Why Model-based ? Who In the domain of embedded systems, it offers the huge advantage of avoiding the time-consuming and error-prone Where final coding phase. Why Simulink ? What One of the most popular design tool for automatic control application. Why Why Automatic control people love Simulink. How Why Lustre ? Whole Software people do not like Simulink. Lustre, as a synchronous language, has a clean What mathematical semantics. Using Lustre as a intermediare model permet the use of Lustre tools for simulation and validation 10 Model-Based Design of Embedded Control Systems with a Synchronous Intermediate Model

  11. Objective Who Where Our goal is to bridge the gap Simulink between the high-level model and the low-level implementation, and to What develop a complete multi-tier MBD tool that goes from a Simulink Why Why model to a real-time implementation Synchronous for the Xenomai RTOS. Model How Lustre Whole RTOS What Xenomai 11 Model-Based Design of Embedded Control Systems with a Synchronous Intermediate Model

  12. Who Restrictions, Confinements: To prevent unsafe behaviors of Simulink. Where User Guidelines: in order to produce better code, we propose user What guidelines in two directions: Grouping tasks to generate minimum number of RTOS Why threads, Using exclusive modes with data sharing to generate efficient and better structured code. How How Meta-operators: Whole We extend Lustre with specific meta-operators, witch are used to subsume new features of simulink on one hand, What and to incarnate on the other hand the real-time and system-level items of Xenomai library. 12 Model-Based Design of Embedded Control Systems with a Synchronous Intermediate Model

  13. The Clock & Condact Meta-operators Who Lustre' code Where node main(in1: int, in3: bool ) G T=20, Init=1 returns (out1,out2: int ); What var 1 in1 out1 clk_20_0 : bool ; in1 Why let 1 + clk_20_0 = clock << 20,0 >> (); out1 out1 = condact << G,clk_20_0,1 >> (in1) How How + condact << H,clk_20_0,2 >> (in1); in1 out1 out2 = condact << F, in3,0 >> (in2); tel H T=20, Init=2 Whole 2 in2 What in1 2 out1 out2 F Init=0 13 Model-Based Design of Embedded Control Systems with a Synchronous Intermediate Model

  14. Who Xenomai code rt_task task_G; Where rt_alarm clk_20_0; rt_alarm_create (&clk_20_0,"clk_20_0"); G T=20, Init=1 What rt_alram_start (&clk_20_0, 0, ns2ticks(20 * 1 in1 out1 MILLE)); in1 Why 1 + rt_task_create (&task_G, "task_G"); out1 ctx->out1 = 1; //initial value How How in1 out1 rt_task_start (&task_G, &calc_G, ctx); H T=20, Init=2 Whole void calc_G(void* ctx){ while(1){ 2 rt_alarm_wait (&clk_20_0); in2 What ... call_step(ctx); in1 2 out1 ... out2 } F Init=0 } 14 Model-Based Design of Embedded Control Systems with a Synchronous Intermediate Model

  15. The Atomic subsystem guideline Who Where Atomic subsystem What 1 out1 1 in1 in1 out1 Why GH 2 How How in2 in1 2 out1 Whole out2 F Init=0 What 15 Model-Based Design of Embedded Control Systems with a Synchronous Intermediate Model

  16. The multi-modes guideline Who Where What Why How How Whole What 16 Model-Based Design of Embedded Control Systems with a Synchronous Intermediate Model

  17. The switch-case meta-operator Who node shift_control ( Where in_trig: bool, in_omega_t:real, in_omega_cr:real, in_T_t:real ) returns ( out_tc1:real, out_tc2:real, out_to_gear:int ) What var tmp_mod: int; let Why (tmp_mod, tmp_gear) = condact << mode_control,in_trig >> (in_omega_t, in_omega_cr); How How .... switch tmp_mod case mod_1: Whole (out_tc2, out_tc1) = first_pressure(in_T_t) case mod_2: (out_tc2, out_tc1) = change_of_mind(in_T_t) What case mod_3: (tmp_tc2, out_tc1) = second_pressure(in_T_t) ; .... tel 17 Model-Based Design of Embedded Control Systems with a Synchronous Intermediate Model

  18. The memory meta-operator Who node shift_control (in_trig: bool, in_omega_t:real, in_omega_cr:real, in_T_t:real ) Where returns ( out_tc1:real, out_tc2:real, out_to_gear:int ) var mem_tc2 : memory <<real,0>>; tmp_tc2 : real; tmp_mod: int; What let (tmp_mod, out_to_gear) = condact <<mode_control,in_trig>>(in_omega_t, in_omega_cr); Why switch tmp_mod case mod_1: How How (out_tc2, out_tc1) = first_pressure(in_T_t) case mod_2: (out_tc2, out_tc1) = change_of_mind[mem_tc2](in_T_t) case mod_3: Whole (tmp_tc2, out_tc1) = second_pressure[mem_tc2](in_T_t) ; void = memory_write <<mem_tc2>>(tmp_tc2); What out_tc2 = tmp_tc2; tel 18 Model-Based Design of Embedded Control Systems with a Synchronous Intermediate Model

  19. The ford gear-shift study case Who Where What Why How How Whole What 19 Model-Based Design of Embedded Control Systems with a Synchronous Intermediate Model

Recommend


More recommend