diff --git a/conf/simulator/jsbsim/aircraft/rotwing25.xml b/conf/simulator/jsbsim/aircraft/rotwing25.xml index 9a8c0787dc..b06472370f 100644 --- a/conf/simulator/jsbsim/aircraft/rotwing25.xml +++ b/conf/simulator/jsbsim/aircraft/rotwing25.xml @@ -52,7 +52,7 @@ - -0.15 + -0.5 0 -0.1 @@ -68,7 +68,7 @@ - 0.15 + 0.5 0 -0.1 @@ -85,7 +85,7 @@ 0. - 0.15 + 0.5 -0.1 0.8 @@ -101,7 +101,7 @@ 0. - -0.15 + -0.5 -0.1 0.8 diff --git a/sw/airborne/firmwares/rotorcraft/stabilization/stabilization_indi.c b/sw/airborne/firmwares/rotorcraft/stabilization/stabilization_indi.c index 2a347bad94..c7033a294a 100644 --- a/sw/airborne/firmwares/rotorcraft/stabilization/stabilization_indi.c +++ b/sw/airborne/firmwares/rotorcraft/stabilization/stabilization_indi.c @@ -448,9 +448,15 @@ void stabilization_indi_update_filt_freq(float freq) stabilization_indi_filter_freq = freq; float tau = 1.0 / (2.0 * M_PI * freq); float sample_time = 1.0 / PERIODIC_FREQUENCY; +#if STABILIZATION_INDI_FILTER_RATES_SECOND_ORDER + init_butterworth_2_low_pass(&rates_filt_so[0], tau, sample_time, stateGetBodyRates_f()->p); + init_butterworth_2_low_pass(&rates_filt_so[1], tau, sample_time, stateGetBodyRates_f()->q); + init_butterworth_2_low_pass(&rates_filt_so[2], tau, sample_time, stateGetBodyRates_f()->r); +#else init_first_order_low_pass(&rates_filt_fo[0], tau, sample_time, stateGetBodyRates_f()->p); init_first_order_low_pass(&rates_filt_fo[1], tau, sample_time, stateGetBodyRates_f()->q); init_first_order_low_pass(&rates_filt_fo[2], tau, sample_time, stateGetBodyRates_f()->r); +#endif } /**