changed v_ctl_auto_pitch_igain to positive

already had positive definition for guidance_v (standard control),
but negative for guidance_v_n (control new)
This commit is contained in:
Felix Ruess
2011-11-29 22:02:58 +01:00
parent 336340fd3a
commit 192f726d47
13 changed files with 21 additions and 21 deletions
@@ -167,7 +167,7 @@
<!-- auto pitch inner loop -->
<define name="AUTO_PITCH_PGAIN" value="0.03"/>
<define name="AUTO_PITCH_DGAIN" value="-0.0"/>
<define name="AUTO_PITCH_IGAIN" value="-0.0"/>
<define name="AUTO_PITCH_IGAIN" value="0.0"/>
<define name="AUTO_PITCH_CLIMB_THROTTLE_INCREMENT" value="0.14"/>
<define name="AUTO_PITCH_MAX_PITCH" value="0.35"/>
<define name="AUTO_PITCH_MIN_PITCH" value="-0.35"/>
@@ -167,7 +167,7 @@
<!-- auto pitch inner loop -->
<define name="AUTO_PITCH_PGAIN" value="0.05"/>
<define name="AUTO_PITCH_DGAIN" value="-0.0"/>
<define name="AUTO_PITCH_IGAIN" value="-0.01"/>
<define name="AUTO_PITCH_IGAIN" value="0.01"/>
<!--define name="AUTO_PITCH_CLIMB_THROTTLE_INCREMENT" value="0.14"/-->
<define name="AUTO_PITCH_MAX_PITCH" value="0.35"/>
<define name="AUTO_PITCH_MIN_PITCH" value="-0.35"/>
+1 -1
View File
@@ -141,7 +141,7 @@
<define name="AUTO_THROTTLE_PITCH_OF_VZ_PGAIN" value="0.02"/>
<define name="AUTO_PITCH_PGAIN" value="0.038"/> <!-- -0.03 -->
<define name="AUTO_PITCH_DGAIN" value="-0.036"/> <!-- -0.03 -->
<define name="AUTO_PITCH_IGAIN" value="-0.0"/>
<define name="AUTO_PITCH_IGAIN" value="0.0"/>
<!-- airspeed control -->
<define name="AUTO_AIRSPEED_SETPOINT" value="16."/>
+1 -1
View File
@@ -136,7 +136,7 @@
<!-- auto pitch inner loop -->
<define name="AUTO_PITCH_PGAIN" value="0.06"/>
<define name="AUTO_PITCH_IGAIN" value="-0.0"/>
<define name="AUTO_PITCH_IGAIN" value="0.0"/>
<define name="AUTO_PITCH_DGAIN" value="-0.0"/>
<define name="AUTO_PITCH_MAX_PITCH" value="0.35"/>
<define name="AUTO_PITCH_MIN_PITCH" value="-0.35"/>
+1 -1
View File
@@ -147,7 +147,7 @@
<define name="AUTO_THROTTLE_PITCH_OF_VZ_PGAIN" value="0.08"/>
<define name="AUTO_PITCH_PGAIN" value="0.0"/>
<define name="AUTO_PITCH_DGAIN" value="-0.0"/>
<define name="AUTO_PITCH_IGAIN" value="-0.0"/>
<define name="AUTO_PITCH_IGAIN" value="0.0"/>
<!-- airspeed control -->
<define name="AUTO_AIRSPEED_SETPOINT" value="17."/>
+1 -1
View File
@@ -150,7 +150,7 @@
<define name="AUTO_THROTTLE_PITCH_OF_VZ_PGAIN" value="0.08"/>
<define name="AUTO_PITCH_PGAIN" value="0.0"/>
<define name="AUTO_PITCH_DGAIN" value="-0.0"/>
<define name="AUTO_PITCH_IGAIN" value="-0.0"/>
<define name="AUTO_PITCH_IGAIN" value="0.0"/>
<!-- airspeed control -->
<define name="AUTO_AIRSPEED_SETPOINT" value="17."/>
+1 -1
View File
@@ -149,7 +149,7 @@
<!-- auto pitch inner loop -->
<define name="AUTO_PITCH_PGAIN" value="0.035000000149"/>
<define name="AUTO_PITCH_IGAIN" value="-0.01"/>
<define name="AUTO_PITCH_IGAIN" value="0.01"/>
<define name="AUTO_PITCH_DGAIN" value="-0"/>
<define name="AUTO_PITCH_MAX_PITCH" value="0.35"/>
<define name="AUTO_PITCH_MIN_PITCH" value="-0.35"/>
+1 -1
View File
@@ -165,7 +165,7 @@
<define name="AUTO_THROTTLE_PITCH_OF_VZ_PGAIN" value="0.02"/>
<define name="AUTO_PITCH_PGAIN" value="0.038"/> <!-- -0.03 -->
<define name="AUTO_PITCH_DGAIN" value="-0.036"/> <!-- -0.03 -->
<define name="AUTO_PITCH_IGAIN" value="-0.0"/>
<define name="AUTO_PITCH_IGAIN" value="0.0"/>
<!-- airspeed control -->
<define name="AUTO_AIRSPEED_SETPOINT" value="16."/>
+2 -2
View File
@@ -265,10 +265,10 @@ http://paparazzi.enac.fr/w/index.php?title=Theory_of_Operation
<define name="AUTO_THROTTLE_PITCH_OF_VZ_PGAIN" value="0.20" unit="rad/(m/s)"/>
<!--define name="AUTO_PITCH_PGAIN" value="0.0"/>
<define name="AUTO_PITCH_DGAIN" value="-0.0"/>
<define name="AUTO_PITCH_IGAIN" value="-0.0"/-->
<define name="AUTO_PITCH_IGAIN" value="0.0"/-->
<define name="AUTO_PITCH_PGAIN" value="0.052"/>
<define name="AUTO_PITCH_DGAIN" value="-0.0"/>
<define name="AUTO_PITCH_IGAIN" value="-0.065"/>
<define name="AUTO_PITCH_IGAIN" value="0.065"/>
<!-- airspeed control -->
+1 -1
View File
@@ -35,7 +35,7 @@
<dl_setting MAX="1" MIN="0.0" STEP="0.05" VAR="v_ctl_auto_throttle_cruise_throttle" shortname="cruise throttle" module="guidance/guidance_v" handler="SetCruiseThrottle" param="V_CTL_AUTO_THROTTLE_NOMINAL_CRUISE_THROTTLE"/>
<dl_setting MAX="0.1" MIN="0" STEP="0.001" VAR="v_ctl_auto_pitch_pgain" shortname="pitch_p" param="V_CTL_AUTO_PITCH_PGAIN"/>
<dl_setting MAX="0" MIN="-0.1" STEP="0.001" VAR="v_ctl_auto_pitch_igain" shortname="pitch_i" param="V_CTL_AUTO_PITCH_IGAIN"/>
<dl_setting MAX="0.1" MIN="0" STEP="0.001" VAR="v_ctl_auto_pitch_igain" shortname="pitch_i" param="V_CTL_AUTO_PITCH_IGAIN"/>
<dl_setting MAX="0" MIN="-0.1" STEP="0.001" VAR="v_ctl_auto_pitch_dgain" shortname="pitch_d" param="V_CTL_AUTO_PITCH_DGAIN" module="guidance/guidance_v_n"/>
<dl_setting MAX="0.1" MIN="0" STEP="0.001" VAR="v_ctl_auto_throttle_pgain" shortname="throttle_p" param="V_CTL_AUTO_THROTTLE_PGAIN"/>
+1 -1
View File
@@ -40,7 +40,7 @@
<dl_setting MAX="1" MIN="0.0" STEP="0.05" VAR="v_ctl_auto_throttle_cruise_throttle" shortname="cruise throttle" module="guidance/guidance_v" handler="SetCruiseThrottle" param="V_CTL_AUTO_THROTTLE_NOMINAL_CRUISE_THROTTLE"/>
<dl_setting MAX="0.1" MIN="0" STEP="0.001" VAR="v_ctl_auto_pitch_pgain" shortname="pitch_p" param="V_CTL_AUTO_PITCH_PGAIN"/>
<dl_setting MAX="0" MIN="-0.1" STEP="0.001" VAR="v_ctl_auto_pitch_igain" shortname="pitch_i" param="V_CTL_AUTO_PITCH_IGAIN"/>
<dl_setting MAX="0.1" MIN="0" STEP="0.001" VAR="v_ctl_auto_pitch_igain" shortname="pitch_i" param="V_CTL_AUTO_PITCH_IGAIN"/>
<dl_setting MAX="0" MIN="-0.1" STEP="0.001" VAR="v_ctl_auto_pitch_dgain" shortname="pitch_d" param="V_CTL_AUTO_PITCH_DGAIN" module="guidance/guidance_v_n"/>
<dl_setting MAX="0.1" MIN="0" STEP="0.001" VAR="v_ctl_auto_throttle_pgain" shortname="throttle_p" param="V_CTL_AUTO_THROTTLE_PGAIN"/>
@@ -138,7 +138,7 @@ void v_ctl_init( void ) {
#ifdef V_CTL_AUTO_PITCH_PGAIN
/* "auto pitch" inner loop parameters */
v_ctl_auto_pitch_pgain = ABS(V_CTL_AUTO_PITCH_PGAIN);
v_ctl_auto_pitch_igain = V_CTL_AUTO_PITCH_IGAIN;
v_ctl_auto_pitch_igain = ABS(V_CTL_AUTO_PITCH_IGAIN);
v_ctl_auto_pitch_sum_err = 0.;
#endif
@@ -143,7 +143,7 @@ void v_ctl_init( void ) {
/* "auto pitch" inner loop parameters */
v_ctl_auto_pitch_pgain = ABS(V_CTL_AUTO_PITCH_PGAIN);
v_ctl_auto_pitch_dgain = V_CTL_AUTO_PITCH_DGAIN;
v_ctl_auto_pitch_igain = V_CTL_AUTO_PITCH_IGAIN;
v_ctl_auto_pitch_igain = ABS(V_CTL_AUTO_PITCH_IGAIN);
v_ctl_auto_pitch_sum_err = 0.;
#ifdef USE_AIRSPEED
@@ -211,9 +211,9 @@ static inline void v_ctl_set_pitch ( void ) {
float d_err = err - last_err;
last_err = err;
if (v_ctl_auto_pitch_igain < 0.) {
if (v_ctl_auto_pitch_igain > 0.) {
v_ctl_auto_pitch_sum_err += err*(1./60.);
BoundAbs(v_ctl_auto_pitch_sum_err, V_CTL_AUTO_PITCH_MAX_SUM_ERR / (-v_ctl_auto_pitch_igain));
BoundAbs(v_ctl_auto_pitch_sum_err, V_CTL_AUTO_PITCH_MAX_SUM_ERR / v_ctl_auto_pitch_igain);
}
// PI loop + feedforward ctl
@@ -221,7 +221,7 @@ static inline void v_ctl_set_pitch ( void ) {
+ v_ctl_auto_throttle_pitch_of_vz_pgain * v_ctl_climb_setpoint
- v_ctl_auto_pitch_pgain * err
+ v_ctl_auto_pitch_dgain * d_err
+ v_ctl_auto_pitch_igain * v_ctl_auto_pitch_sum_err;
- v_ctl_auto_pitch_igain * v_ctl_auto_pitch_sum_err;
}
@@ -267,11 +267,11 @@ static inline void v_ctl_set_airspeed( void ) {
last_err_vz = err_vz;
if (v_ctl_auto_throttle_igain > 0.) {
v_ctl_auto_throttle_sum_err += err_vz*AIRSPEED_LOOP_PERIOD;
BoundAbs(v_ctl_auto_throttle_sum_err, V_CTL_AUTO_THROTTLE_MAX_SUM_ERR / (v_ctl_auto_throttle_igain));
BoundAbs(v_ctl_auto_throttle_sum_err, V_CTL_AUTO_THROTTLE_MAX_SUM_ERR / v_ctl_auto_throttle_igain);
}
if (v_ctl_auto_pitch_igain < 0.) {
if (v_ctl_auto_pitch_igain > 0.) {
v_ctl_auto_pitch_sum_err += err_vz*AIRSPEED_LOOP_PERIOD;
BoundAbs(v_ctl_auto_pitch_sum_err, V_CTL_AUTO_PITCH_MAX_SUM_ERR / (-v_ctl_auto_pitch_igain));
BoundAbs(v_ctl_auto_pitch_sum_err, V_CTL_AUTO_PITCH_MAX_SUM_ERR / v_ctl_auto_pitch_igain);
}
float err_airspeed = v_ctl_auto_airspeed_setpoint - estimator_airspeed;
@@ -300,7 +300,7 @@ static inline void v_ctl_set_airspeed( void ) {
+ v_ctl_auto_throttle_pitch_of_vz_pgain * v_ctl_climb_setpoint
- v_ctl_auto_pitch_pgain * err_vz
+ v_ctl_auto_pitch_dgain * d_err_vz
+ v_ctl_auto_pitch_igain * v_ctl_auto_pitch_sum_err
- v_ctl_auto_pitch_igain * v_ctl_auto_pitch_sum_err
- v_ctl_auto_airspeed_pitch_pgain * err_airspeed
- v_ctl_auto_airspeed_pitch_dgain * d_err_airspeed
- v_ctl_auto_airspeed_pitch_igain * v_ctl_auto_airspeed_pitch_sum_err;