powerwindow_multi_rate_BASE.sa 795 B

12345678910111213141516171819202122232425262728
  1. import PowerWindowModel
  2. semantic adaptation window_sa
  3. for fmu window
  4. out rules {
  5. true -> { } --> { reaction_torque := -reaction_torque; };
  6. }
  7. semantic adaptation window_obstacle_sa_loop
  8. for fmu window_sa, obstacle
  9. // just for the sake of declaring this, look at algebraic loop iteration
  10. semantic adaptation window_obstacle_sa_multirate with master // multi-rate for window and object
  11. for fmu window_obstacle_sa_loop
  12. input ports motor_speed
  13. output ports reaction_torque
  14. param init_motor_speed = 0;
  15. control rules { multiplied 10 times }
  16. in var stored_motor_speed := init_motor_speed;
  17. in var linear_increment;
  18. in rules {
  19. true -> {
  20. linear_increment := (motor_speed - stored_motor_speed) / 10;
  21. stored_motor_speed := motor_speed;
  22. } --> {
  23. motor_speed := motor_speed + linear_increment;
  24. };
  25. }