change h_ctl_roll_igain to positive (only stabilization_adaptive)

This commit is contained in:
Felix Ruess
2011-11-29 22:44:29 +01:00
parent 556bbec4b6
commit e08ca58298
22 changed files with 26 additions and 26 deletions
+1 -1
View File
@@ -190,7 +190,7 @@
<define name="ROLL_RATE_GAIN" value="850"/> <define name="ROLL_RATE_GAIN" value="850"/>
<define name="ROLL_KFF" value="-500"/> <define name="ROLL_KFF" value="-500"/>
<define name="ROLL_IGAIN" value="-00"/> <define name="ROLL_IGAIN" value="00"/>
<define name="PITCH_IGAIN" value="-500"/> <define name="PITCH_IGAIN" value="-500"/>
</section> </section>
@@ -197,7 +197,7 @@
<define name="ROLL_ATTITUDE_GAIN" value="9000."/> <define name="ROLL_ATTITUDE_GAIN" value="9000."/>
<define name="ROLL_RATE_GAIN" value="3000."/> <define name="ROLL_RATE_GAIN" value="3000."/>
<define name="ROLL_IGAIN" value="-500"/> <define name="ROLL_IGAIN" value="500"/>
<define name="ROLL_KFFA" value="-500"/> <define name="ROLL_KFFA" value="-500"/>
<define name="ROLL_KFFD" value="-500"/> <define name="ROLL_KFFD" value="-500"/>
@@ -197,7 +197,7 @@
<define name="ROLL_ATTITUDE_GAIN" value="9000."/> <define name="ROLL_ATTITUDE_GAIN" value="9000."/>
<define name="ROLL_RATE_GAIN" value="3000."/> <define name="ROLL_RATE_GAIN" value="3000."/>
<define name="ROLL_IGAIN" value="-0"/> <define name="ROLL_IGAIN" value="0"/>
<define name="ROLL_KFFA" value="0"/> <define name="ROLL_KFFA" value="0"/>
<define name="ROLL_KFFD" value="0"/> <define name="ROLL_KFFD" value="0"/>
+1 -1
View File
@@ -174,7 +174,7 @@
<define name="ROLL_ATTITUDE_GAIN" value="6000."/> <define name="ROLL_ATTITUDE_GAIN" value="6000."/>
<define name="ROLL_RATE_GAIN" value="1000."/> <define name="ROLL_RATE_GAIN" value="1000."/>
<define name="ROLL_IGAIN" value="-400."/> <define name="ROLL_IGAIN" value="400."/>
<define name="ROLL_KFFA" value="0"/> <define name="ROLL_KFFA" value="0"/>
<define name="ROLL_KFFD" value="0"/> <define name="ROLL_KFFD" value="0"/>
+1 -1
View File
@@ -158,7 +158,7 @@
<define name="ROLL_ATTITUDE_GAIN" value="5900"/> <define name="ROLL_ATTITUDE_GAIN" value="5900"/>
<define name="ROLL_RATE_GAIN" value="2900"/> <define name="ROLL_RATE_GAIN" value="2900"/>
<define name="ROLL_IGAIN" value="-500"/> <define name="ROLL_IGAIN" value="500"/>
<define name="ROLL_KFFA" value="-500"/> <define name="ROLL_KFFA" value="-500"/>
<define name="ROLL_KFFD" value="-500"/> <define name="ROLL_KFFD" value="-500"/>
@@ -174,7 +174,7 @@ on<!DOCTYPE airframe SYSTEM "airframe.dtd">
<define name="ROLL_RATE_GAIN" value="2923.72900391"/> <define name="ROLL_RATE_GAIN" value="2923.72900391"/>
<define name="ROLL_KFF" value="-500"/> <define name="ROLL_KFF" value="-500"/>
<define name="ROLL_IGAIN" value="-5000"/> <define name="ROLL_IGAIN" value="5000"/>
</section> </section>
<section name="NAV"> <section name="NAV">
@@ -157,7 +157,7 @@
<define name="ROLL_RATE_GAIN" value="1527.7779541"/> <define name="ROLL_RATE_GAIN" value="1527.7779541"/>
<define name="ROLL_KFF" value="-500"/> <define name="ROLL_KFF" value="-500"/>
<define name="ROLL_IGAIN" value="-500"/> <define name="ROLL_IGAIN" value="500"/>
<define name="PITCH_IGAIN" value="-500"/> <define name="PITCH_IGAIN" value="-500"/>
</section> </section>
@@ -155,7 +155,7 @@
<define name="ROLL_KFFP" value="-500"/> <define name="ROLL_KFFP" value="-500"/>
<define name="ROLL_KFFD" value="0"/> <define name="ROLL_KFFD" value="0"/>
<define name="ROLL_IGAIN" value="-5000"/> <define name="ROLL_IGAIN" value="5000"/>
</section> </section>
<section name="NAV"> <section name="NAV">
@@ -159,7 +159,7 @@
<define name="ROLL_RATE_GAIN" value="2500"/> <define name="ROLL_RATE_GAIN" value="2500"/>
<define name="ROLL_KFF" value="-500"/> <define name="ROLL_KFF" value="-500"/>
<define name="ROLL_IGAIN" value="-00"/> <define name="ROLL_IGAIN" value="00"/>
<define name="PITCH_IGAIN" value="-500"/> <define name="PITCH_IGAIN" value="-500"/>
</section> </section>
@@ -161,7 +161,7 @@
<define name="ROLL_RATE_GAIN" value="1779.66101074"/> <define name="ROLL_RATE_GAIN" value="1779.66101074"/>
<define name="ROLL_KFF" value="-500"/> <define name="ROLL_KFF" value="-500"/>
<define name="ROLL_IGAIN" value="-500"/> <define name="ROLL_IGAIN" value="500"/>
<define name="PITCH_IGAIN" value="-500"/> <define name="PITCH_IGAIN" value="-500"/>
</section> </section>
+1 -1
View File
@@ -162,7 +162,7 @@
<define name="ROLL_RATE_GAIN" value="2700"/> <define name="ROLL_RATE_GAIN" value="2700"/>
<define name="ROLL_KFF" value="-500"/> <define name="ROLL_KFF" value="-500"/>
<define name="ROLL_IGAIN" value="-500"/> <define name="ROLL_IGAIN" value="500"/>
<define name="PITCH_IGAIN" value="-500"/> <define name="PITCH_IGAIN" value="-500"/>
</section> </section>
+1 -1
View File
@@ -182,7 +182,7 @@
<define name="ROLL_ATTITUDE_GAIN" value="8500."/> <define name="ROLL_ATTITUDE_GAIN" value="8500."/>
<define name="ROLL_RATE_GAIN" value="2400."/> <define name="ROLL_RATE_GAIN" value="2400."/>
<define name="ROLL_IGAIN" value="-0."/> <define name="ROLL_IGAIN" value="0."/>
<define name="ROLL_KFFA" value="0"/> <define name="ROLL_KFFA" value="0"/>
<define name="ROLL_KFFD" value="0"/> <define name="ROLL_KFFD" value="0"/>
+1 -1
View File
@@ -185,7 +185,7 @@
<define name="ROLL_ATTITUDE_GAIN" value="8500."/> <define name="ROLL_ATTITUDE_GAIN" value="8500."/>
<define name="ROLL_RATE_GAIN" value="2400."/> <define name="ROLL_RATE_GAIN" value="2400."/>
<define name="ROLL_IGAIN" value="-0."/> <define name="ROLL_IGAIN" value="0."/>
<define name="ROLL_KFFA" value="0"/> <define name="ROLL_KFFA" value="0"/>
<define name="ROLL_KFFD" value="0"/> <define name="ROLL_KFFD" value="0"/>
+1 -1
View File
@@ -172,7 +172,7 @@
<define name="ROLL_ATTITUDE_GAIN" value="3553.89208984"/> <define name="ROLL_ATTITUDE_GAIN" value="3553.89208984"/>
<define name="ROLL_RATE_GAIN" value="0."/> <define name="ROLL_RATE_GAIN" value="0."/>
<define name="ROLL_IGAIN" value="-500"/> <define name="ROLL_IGAIN" value="500"/>
<define name="ROLL_KFFA" value="-500"/> <define name="ROLL_KFFA" value="-500"/>
<define name="ROLL_KFFD" value="-500"/> <define name="ROLL_KFFD" value="-500"/>
+1 -1
View File
@@ -198,7 +198,7 @@
<define name="ROLL_ATTITUDE_GAIN" value="3800."/> <define name="ROLL_ATTITUDE_GAIN" value="3800."/>
<define name="ROLL_RATE_GAIN" value="500."/> <define name="ROLL_RATE_GAIN" value="500."/>
<define name="ROLL_IGAIN" value="-150."/> <define name="ROLL_IGAIN" value="150."/>
<define name="ROLL_KFFA" value="0"/> <define name="ROLL_KFFA" value="0"/>
<define name="ROLL_KFFD" value="0"/> <define name="ROLL_KFFD" value="0"/>
+1 -1
View File
@@ -315,7 +315,7 @@ http://paparazzi.enac.fr/w/index.php?title=Theory_of_Operation
<define name="ROLL_RATE_GAIN" value="1500"/> <define name="ROLL_RATE_GAIN" value="1500"/>
<!-- only for stabilization adaptive --> <!-- only for stabilization adaptive -->
<define name="ROLL_IGAIN" value="-500"/> <define name="ROLL_IGAIN" value="500"/>
<define name="ROLL_KFFA" value="0."/> <define name="ROLL_KFFA" value="0."/>
<define name="ROLL_KFFD" value="0."/> <define name="ROLL_KFFD" value="0."/>
+1 -1
View File
@@ -189,7 +189,7 @@
<define name="ROLL_ATTITUDE_GAIN" value="5847.45800781"/> <define name="ROLL_ATTITUDE_GAIN" value="5847.45800781"/>
<define name="ROLL_RATE_GAIN" value="2923.72900391"/> <define name="ROLL_RATE_GAIN" value="2923.72900391"/>
<define name="ROLL_IGAIN" value="-5000"/> <define name="ROLL_IGAIN" value="5000"/>
<define name="ROLL_KFFA" value="500"/> <define name="ROLL_KFFA" value="500"/>
<define name="ROLL_KFFD" value="0"/> <define name="ROLL_KFFD" value="0"/>
+1 -1
View File
@@ -156,7 +156,7 @@
<!--define name="ROLL_RATE_GAIN" value="1500"/--> <!--define name="ROLL_RATE_GAIN" value="1500"/-->
<define name="ROLL_KFF" value="-500"/> <define name="ROLL_KFF" value="-500"/>
<define name="ROLL_IGAIN" value="-500"/> <define name="ROLL_IGAIN" value="500"/>
</section> </section>
<section name="NAV"> <section name="NAV">
+1 -1
View File
@@ -9,7 +9,7 @@
<dl_setting MAX="0" MIN="-5000" STEP="10" VAR="h_ctl_roll_Kffd" module="stabilization/stabilization_adaptive" shortname="roll_Kffd"/> <dl_setting MAX="0" MIN="-5000" STEP="10" VAR="h_ctl_roll_Kffd" module="stabilization/stabilization_adaptive" shortname="roll_Kffd"/>
<dl_setting MAX="0" MIN="-5000" STEP="10" VAR="h_ctl_pitch_Kffa" module="stabilization/stabilization_adaptive" shortname="pitch_Kffa"/> <dl_setting MAX="0" MIN="-5000" STEP="10" VAR="h_ctl_pitch_Kffa" module="stabilization/stabilization_adaptive" shortname="pitch_Kffa"/>
<dl_setting MAX="0" MIN="-5000" STEP="10" VAR="h_ctl_pitch_Kffd" module="stabilization/stabilization_adaptive" shortname="pitch_Kffd"/> <dl_setting MAX="0" MIN="-5000" STEP="10" VAR="h_ctl_pitch_Kffd" module="stabilization/stabilization_adaptive" shortname="pitch_Kffd"/>
<dl_setting MAX="0" MIN="-5000" STEP="10" VAR="h_ctl_roll_igain" module="stabilization/stabilization_adaptive" handler="SetRollIGain"/> <dl_setting MAX="5000" MIN="0" STEP="10" VAR="h_ctl_roll_igain" module="stabilization/stabilization_adaptive" handler="SetRollIGain"/>
<dl_setting MAX="0" MIN="-5000" STEP="10" VAR="h_ctl_pitch_igain" module="stabilization/stabilization_adaptive" handler="SetPitchIGain"/> <dl_setting MAX="0" MIN="-5000" STEP="10" VAR="h_ctl_pitch_igain" module="stabilization/stabilization_adaptive" handler="SetPitchIGain"/>
</dl_settings> </dl_settings>
</dl_settings> </dl_settings>
+1 -1
View File
@@ -9,7 +9,7 @@
<dl_settings NAME="attitude"> <dl_settings NAME="attitude">
<dl_setting MAX="15000" MIN="0" STEP="250" VAR="h_ctl_roll_attitude_gain" shortname="roll_pgain" param="H_CTL_ROLL_ATTITUDE_GAIN" module="stabilization/stabilization_attitude"/> <dl_setting MAX="15000" MIN="0" STEP="250" VAR="h_ctl_roll_attitude_gain" shortname="roll_pgain" param="H_CTL_ROLL_ATTITUDE_GAIN" module="stabilization/stabilization_attitude"/>
<dl_setting MAX="15000" MIN="0" STEP="250" VAR="h_ctl_roll_rate_gain" shortname="roll_dgain" param="H_CTL_ROLL_RATE_GAIN"/> <dl_setting MAX="15000" MIN="0" STEP="250" VAR="h_ctl_roll_rate_gain" shortname="roll_dgain" param="H_CTL_ROLL_RATE_GAIN"/>
<dl_setting MAX="0" MIN="-5000" STEP="10" VAR="h_ctl_roll_igain" shortname="roll_igain" param="H_CTL_ROLL_IGAIN" handler="SetRollIGain"/> <dl_setting MAX="5000" MIN="0" STEP="10" VAR="h_ctl_roll_igain" shortname="roll_igain" param="H_CTL_ROLL_IGAIN" handler="SetRollIGain"/>
<dl_setting MAX="25000" MIN="0" STEP="250" VAR="h_ctl_pitch_pgain" shortname="pitch_pgain" param="H_CTL_PITCH_PGAIN"/> <dl_setting MAX="25000" MIN="0" STEP="250" VAR="h_ctl_pitch_pgain" shortname="pitch_pgain" param="H_CTL_PITCH_PGAIN"/>
<dl_setting MAX="50000" MIN="0" STEP="250" VAR="h_ctl_pitch_dgain" shortname="pitch_dgain" param="H_CTL_PITCH_DGAIN"/> <dl_setting MAX="50000" MIN="0" STEP="250" VAR="h_ctl_pitch_dgain" shortname="pitch_dgain" param="H_CTL_PITCH_DGAIN"/>
<dl_setting MAX="0" MIN="-5000" STEP="10" VAR="h_ctl_pitch_igain" shortname="pitch_igain" param="H_CTL_PITCH_IGAIN" handler="SetPitchIGain"/> <dl_setting MAX="0" MIN="-5000" STEP="10" VAR="h_ctl_pitch_igain" shortname="pitch_igain" param="H_CTL_PITCH_IGAIN" handler="SetPitchIGain"/>
+1 -1
View File
@@ -9,7 +9,7 @@
<dl_settings NAME="attitude"> <dl_settings NAME="attitude">
<dl_setting MAX="15000" MIN="0" STEP="250" VAR="h_ctl_roll_attitude_gain" shortname="roll_pgain" param="H_CTL_ROLL_ATTITUDE_GAIN" module="stabilization/stabilization_attitude"/> <dl_setting MAX="15000" MIN="0" STEP="250" VAR="h_ctl_roll_attitude_gain" shortname="roll_pgain" param="H_CTL_ROLL_ATTITUDE_GAIN" module="stabilization/stabilization_attitude"/>
<dl_setting MAX="15000" MIN="0" STEP="250" VAR="h_ctl_roll_rate_gain" shortname="roll_dgain" param="H_CTL_ROLL_RATE_GAIN"/> <dl_setting MAX="15000" MIN="0" STEP="250" VAR="h_ctl_roll_rate_gain" shortname="roll_dgain" param="H_CTL_ROLL_RATE_GAIN"/>
<dl_setting MAX="0" MIN="-5000" STEP="10" VAR="h_ctl_roll_igain" shortname="roll_igain" param="H_CTL_ROLL_IGAIN" handler="SetRollIGain"/> <dl_setting MAX="5000" MIN="0" STEP="10" VAR="h_ctl_roll_igain" shortname="roll_igain" param="H_CTL_ROLL_IGAIN" handler="SetRollIGain"/>
<dl_setting MAX="25000" MIN="0" STEP="250" VAR="h_ctl_pitch_pgain" shortname="pitch_pgain" param="H_CTL_PITCH_PGAIN"/> <dl_setting MAX="25000" MIN="0" STEP="250" VAR="h_ctl_pitch_pgain" shortname="pitch_pgain" param="H_CTL_PITCH_PGAIN"/>
<dl_setting MAX="50000" MIN="0" STEP="250" VAR="h_ctl_pitch_dgain" shortname="pitch_dgain" param="H_CTL_PITCH_DGAIN"/> <dl_setting MAX="50000" MIN="0" STEP="250" VAR="h_ctl_pitch_dgain" shortname="pitch_dgain" param="H_CTL_PITCH_DGAIN"/>
<dl_setting MAX="0" MIN="-5000" STEP="10" VAR="h_ctl_pitch_igain" shortname="pitch_igain" param="H_CTL_PITCH_IGAIN" handler="SetPitchIGain"/> <dl_setting MAX="0" MIN="-5000" STEP="10" VAR="h_ctl_pitch_igain" shortname="pitch_igain" param="H_CTL_PITCH_IGAIN" handler="SetPitchIGain"/>
@@ -159,7 +159,7 @@ void h_ctl_init( void ) {
h_ctl_roll_setpoint = 0.; h_ctl_roll_setpoint = 0.;
h_ctl_roll_attitude_gain = ABS(H_CTL_ROLL_ATTITUDE_GAIN); h_ctl_roll_attitude_gain = ABS(H_CTL_ROLL_ATTITUDE_GAIN);
h_ctl_roll_rate_gain = ABS(H_CTL_ROLL_RATE_GAIN); h_ctl_roll_rate_gain = ABS(H_CTL_ROLL_RATE_GAIN);
h_ctl_roll_igain = H_CTL_ROLL_IGAIN; h_ctl_roll_igain = ABS(H_CTL_ROLL_IGAIN);
h_ctl_roll_sum_err = 0; h_ctl_roll_sum_err = 0;
h_ctl_roll_Kffa = H_CTL_ROLL_KFFA; h_ctl_roll_Kffa = H_CTL_ROLL_KFFA;
h_ctl_roll_Kffd = H_CTL_ROLL_KFFD; h_ctl_roll_Kffd = H_CTL_ROLL_KFFD;
@@ -299,9 +299,9 @@ inline static void h_ctl_roll_loop( void ) {
h_ctl_roll_sum_err = 0.; h_ctl_roll_sum_err = 0.;
} }
else { else {
if (h_ctl_roll_igain < 0.) { if (h_ctl_roll_igain > 0.) {
h_ctl_roll_sum_err += err * H_CTL_REF_DT; h_ctl_roll_sum_err += err * H_CTL_REF_DT;
BoundAbs(h_ctl_roll_sum_err, (- H_CTL_ROLL_SUM_ERR_MAX / h_ctl_roll_igain)); BoundAbs(h_ctl_roll_sum_err, H_CTL_ROLL_SUM_ERR_MAX / h_ctl_roll_igain);
} else { } else {
h_ctl_roll_sum_err = 0.; h_ctl_roll_sum_err = 0.;
} }
@@ -312,13 +312,13 @@ inline static void h_ctl_roll_loop( void ) {
+ h_ctl_roll_Kffd * h_ctl_ref_roll_rate + h_ctl_roll_Kffd * h_ctl_ref_roll_rate
- cmd_fb - cmd_fb
+ h_ctl_roll_rate_gain * d_err + h_ctl_roll_rate_gain * d_err
- h_ctl_roll_igain * h_ctl_roll_sum_err + h_ctl_roll_igain * h_ctl_roll_sum_err
+ v_ctl_throttle_setpoint * h_ctl_aileron_of_throttle; + v_ctl_throttle_setpoint * h_ctl_aileron_of_throttle;
// float cmd = h_ctl_roll_Kffa * h_ctl_ref_roll_accel // float cmd = h_ctl_roll_Kffa * h_ctl_ref_roll_accel
// + h_ctl_roll_Kffd * h_ctl_ref_roll_rate // + h_ctl_roll_Kffd * h_ctl_ref_roll_rate
// + h_ctl_roll_attitude_gain * err // + h_ctl_roll_attitude_gain * err
// + h_ctl_roll_rate_gain * d_err // + h_ctl_roll_rate_gain * d_err
// - h_ctl_roll_igain * h_ctl_roll_sum_err // + h_ctl_roll_igain * h_ctl_roll_sum_err
// + v_ctl_throttle_setpoint * h_ctl_aileron_of_throttle; // + v_ctl_throttle_setpoint * h_ctl_aileron_of_throttle;
// //
cmd /= airspeed_ratio2; cmd /= airspeed_ratio2;