1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- semantic adaptation reactive moore RateSA rate_sa
- at "./path/to/RateSA.fmu"
- for inner fmu LoopSA loop_sa
- at "./test_input/single_folder_spec/rate/LoopSA.fmu"
- with input ports displacement (rad), speed (rad/s)
- with output ports tau (N.m)
-
- input ports speed
- output ports tau
- param RATE := 10,
- INIT_LOOP_SA_TAU := 0.0;
- control var previous_speed := 0;
- control rules {
- var micro_step := H/RATE;
- var inner_time := t;
-
- for (var iter in 0 .. RATE) {
- do_step(loop_sa,inner_time,micro_step);
- inner_time := inner_time + micro_step;
- }
-
- previous_speed := current_speed;
- return H;
- }
- in var current_speed := 0;
- in rules {
- true -> {
- current_speed := speed;
- } --> {
- loop_sa.speed := previous_speed + (current_speed - previous_speed)*(dt + h);
- };
- }
- out var stored_loop_sa_tau := INIT_LOOP_SA_TAU;
- out rules {
- true -> {
- stored_loop_sa_tau := loop_sa.tau;
- } --> {
- rate_sa.tau := stored_loop_sa_tau;
- };
- }
|