mirror of
https://github.com/paparazzi/paparazzi.git
synced 2026-06-06 07:53:43 +08:00
changed v_ctl_auto_throttle_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:
@@ -161,7 +161,7 @@
|
||||
<define name="AUTO_THROTTLE_DASH_TRIM" value="-1000"/-->
|
||||
<define name="AUTO_THROTTLE_CLIMB_THROTTLE_INCREMENT" value="0.2" unit="%/(m/s)"/>
|
||||
<define name="AUTO_THROTTLE_PGAIN" value="0.02"/>
|
||||
<define name="AUTO_THROTTLE_IGAIN" value="-0.01"/>
|
||||
<define name="AUTO_THROTTLE_IGAIN" value="0.01"/>
|
||||
<define name="AUTO_THROTTLE_PITCH_OF_VZ_PGAIN" value="0.1"/>
|
||||
|
||||
<!-- auto pitch inner loop -->
|
||||
|
||||
@@ -135,7 +135,7 @@
|
||||
<define name="AUTO_THROTTLE_CLIMB_THROTTLE_INCREMENT" value="0.1" unit="%/(m/s)"/>
|
||||
<define name="AUTO_THROTTLE_PGAIN" value="0.004"/> <!-- -0.005 -->
|
||||
<define name="AUTO_THROTTLE_DGAIN" value="-0.01"/> <!-- 0.005 -->
|
||||
<define name="AUTO_THROTTLE_IGAIN" value="-0.004"/> <!-- 0.005 -->
|
||||
<define name="AUTO_THROTTLE_IGAIN" value="0.004"/> <!-- 0.005 -->
|
||||
|
||||
<!-- Climb loop (pitch) -->
|
||||
<define name="AUTO_THROTTLE_PITCH_OF_VZ_PGAIN" value="0.02"/>
|
||||
|
||||
@@ -141,7 +141,7 @@
|
||||
<define name="AUTO_THROTTLE_CLIMB_THROTTLE_INCREMENT" value="0.08" unit="%/(m/s)"/>
|
||||
<define name="AUTO_THROTTLE_PGAIN" value="0.01"/>
|
||||
<define name="AUTO_THROTTLE_DGAIN" value="-0.0"/>
|
||||
<define name="AUTO_THROTTLE_IGAIN" value="-0.001"/>
|
||||
<define name="AUTO_THROTTLE_IGAIN" value="0.001"/>
|
||||
|
||||
<!-- Climb loop (pitch) -->
|
||||
<define name="AUTO_THROTTLE_PITCH_OF_VZ_PGAIN" value="0.08"/>
|
||||
|
||||
@@ -144,7 +144,7 @@
|
||||
<define name="AUTO_THROTTLE_CLIMB_THROTTLE_INCREMENT" value="0.08" unit="%/(m/s)"/>
|
||||
<define name="AUTO_THROTTLE_PGAIN" value="0.01"/>
|
||||
<define name="AUTO_THROTTLE_DGAIN" value="-0.0"/>
|
||||
<define name="AUTO_THROTTLE_IGAIN" value="-0.001"/>
|
||||
<define name="AUTO_THROTTLE_IGAIN" value="0.001"/>
|
||||
|
||||
<!-- Climb loop (pitch) -->
|
||||
<define name="AUTO_THROTTLE_PITCH_OF_VZ_PGAIN" value="0.08"/>
|
||||
|
||||
@@ -143,7 +143,7 @@
|
||||
<define name="AUTO_THROTTLE_DASH_TRIM" value="-1000"/>
|
||||
<define name="AUTO_THROTTLE_CLIMB_THROTTLE_INCREMENT" value="0.1" unit="%/(m/s)"/>
|
||||
<define name="AUTO_THROTTLE_PGAIN" value="0.035000000149"/>
|
||||
<define name="AUTO_THROTTLE_IGAIN" value="-0.01"/>
|
||||
<define name="AUTO_THROTTLE_IGAIN" value="0.01"/>
|
||||
<define name="AUTO_THROTTLE_DGAIN" value="-0"/>
|
||||
<define name="AUTO_THROTTLE_PITCH_OF_VZ_PGAIN" value="0.12"/>
|
||||
|
||||
|
||||
@@ -159,7 +159,7 @@
|
||||
<define name="AUTO_THROTTLE_CLIMB_THROTTLE_INCREMENT" value="0.1" unit="%/(m/s)"/>
|
||||
<define name="AUTO_THROTTLE_PGAIN" value="0.004"/> <!-- -0.005 -->
|
||||
<define name="AUTO_THROTTLE_DGAIN" value="-0.01"/> <!-- 0.005 -->
|
||||
<define name="AUTO_THROTTLE_IGAIN" value="-0.004"/> <!-- 0.005 -->
|
||||
<define name="AUTO_THROTTLE_IGAIN" value="0.004"/> <!-- 0.005 -->
|
||||
|
||||
<!-- Climb loop (pitch) -->
|
||||
<define name="AUTO_THROTTLE_PITCH_OF_VZ_PGAIN" value="0.02"/>
|
||||
|
||||
@@ -258,7 +258,7 @@ http://paparazzi.enac.fr/w/index.php?title=Theory_of_Operation
|
||||
<!-- Climb loop (throttle) -->
|
||||
<define name="AUTO_THROTTLE_CLIMB_THROTTLE_INCREMENT" value="0.05" unit="%/(m/s)"/>
|
||||
<define name="AUTO_THROTTLE_PGAIN" value="0.007" unit="%/(m/s)"/>
|
||||
<define name="AUTO_THROTTLE_IGAIN" value="-0.001"/>
|
||||
<define name="AUTO_THROTTLE_IGAIN" value="0.001"/>
|
||||
<define name="AUTO_THROTTLE_DGAIN" value="-0.0"/>
|
||||
|
||||
<!-- Climb loop (pitch) -->
|
||||
|
||||
@@ -39,7 +39,7 @@
|
||||
<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"/>
|
||||
<dl_setting MAX="0" MIN="-0.1" STEP="0.001" VAR="v_ctl_auto_throttle_igain" shortname="throttle_i" param="V_CTL_AUTO_THROTTLE_IGAIN"/>
|
||||
<dl_setting MAX="0.1" MIN="0" STEP="0.001" VAR="v_ctl_auto_throttle_igain" shortname="throttle_i" param="V_CTL_AUTO_THROTTLE_IGAIN"/>
|
||||
<dl_setting MAX="0" MIN="-0.1" STEP="0.001" VAR="v_ctl_auto_throttle_dgain" shortname="throttle_d" param="V_CTL_AUTO_THROTTLE_DGAIN"/>
|
||||
|
||||
<dl_setting MAX="0" MIN="-1." STEP="0.01" VAR="v_ctl_pitch_dash_trim" shortname="dash trim" param="V_CTL_PITCH_DASH_TRIM"/>
|
||||
|
||||
@@ -44,7 +44,7 @@
|
||||
<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"/>
|
||||
<dl_setting MAX="0" MIN="-0.1" STEP="0.001" VAR="v_ctl_auto_throttle_igain" shortname="throttle_i" param="V_CTL_AUTO_THROTTLE_IGAIN"/>
|
||||
<dl_setting MAX="0.1" MIN="0" STEP="0.001" VAR="v_ctl_auto_throttle_igain" shortname="throttle_i" param="V_CTL_AUTO_THROTTLE_IGAIN"/>
|
||||
<dl_setting MAX="0" MIN="-0.1" STEP="0.001" VAR="v_ctl_auto_throttle_dgain" shortname="throttle_d" param="V_CTL_AUTO_THROTTLE_DGAIN"/>
|
||||
|
||||
<dl_setting MAX="0" MIN="-1." STEP="0.01" VAR="v_ctl_pitch_dash_trim" shortname="dash trim" param="V_CTL_PITCH_DASH_TRIM"/>
|
||||
|
||||
@@ -123,10 +123,9 @@ void v_ctl_init( void ) {
|
||||
/* "auto throttle" inner loop parameters */
|
||||
v_ctl_auto_throttle_nominal_cruise_throttle = V_CTL_AUTO_THROTTLE_NOMINAL_CRUISE_THROTTLE;
|
||||
v_ctl_auto_throttle_cruise_throttle = v_ctl_auto_throttle_nominal_cruise_throttle;
|
||||
v_ctl_auto_throttle_climb_throttle_increment =
|
||||
V_CTL_AUTO_THROTTLE_CLIMB_THROTTLE_INCREMENT;
|
||||
v_ctl_auto_throttle_climb_throttle_increment = V_CTL_AUTO_THROTTLE_CLIMB_THROTTLE_INCREMENT;
|
||||
v_ctl_auto_throttle_pgain = ABS(V_CTL_AUTO_THROTTLE_PGAIN);
|
||||
v_ctl_auto_throttle_igain = V_CTL_AUTO_THROTTLE_IGAIN;
|
||||
v_ctl_auto_throttle_igain = ABS(V_CTL_AUTO_THROTTLE_IGAIN);
|
||||
v_ctl_auto_throttle_dgain = 0.;
|
||||
v_ctl_auto_throttle_sum_err = 0.;
|
||||
v_ctl_auto_throttle_pitch_of_vz_pgain = V_CTL_AUTO_THROTTLE_PITCH_OF_VZ_PGAIN;
|
||||
|
||||
@@ -130,7 +130,7 @@ void v_ctl_init( void ) {
|
||||
v_ctl_auto_throttle_cruise_throttle = v_ctl_auto_throttle_nominal_cruise_throttle;
|
||||
v_ctl_auto_throttle_climb_throttle_increment = V_CTL_AUTO_THROTTLE_CLIMB_THROTTLE_INCREMENT;
|
||||
v_ctl_auto_throttle_pgain = ABS(V_CTL_AUTO_THROTTLE_PGAIN);
|
||||
v_ctl_auto_throttle_igain = V_CTL_AUTO_THROTTLE_IGAIN;
|
||||
v_ctl_auto_throttle_igain = ABS(V_CTL_AUTO_THROTTLE_IGAIN);
|
||||
v_ctl_auto_throttle_dgain = 0.;
|
||||
v_ctl_auto_throttle_sum_err = 0.;
|
||||
v_ctl_auto_throttle_pitch_of_vz_pgain = V_CTL_AUTO_THROTTLE_PITCH_OF_VZ_PGAIN;
|
||||
@@ -232,9 +232,9 @@ static inline void v_ctl_set_throttle( void ) {
|
||||
float d_err = err - last_err;
|
||||
last_err = err;
|
||||
|
||||
if (v_ctl_auto_throttle_igain < 0.) {
|
||||
if (v_ctl_auto_throttle_igain > 0.) {
|
||||
v_ctl_auto_throttle_sum_err += err*(1./60.);
|
||||
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));
|
||||
}
|
||||
|
||||
// PID loop + feedforward ctl
|
||||
@@ -242,7 +242,7 @@ static inline void v_ctl_set_throttle( void ) {
|
||||
+ v_ctl_auto_throttle_climb_throttle_increment * v_ctl_climb_setpoint
|
||||
- v_ctl_auto_throttle_pgain * err
|
||||
+ v_ctl_auto_throttle_dgain * d_err
|
||||
+ v_ctl_auto_throttle_igain * v_ctl_auto_throttle_sum_err;
|
||||
- v_ctl_auto_throttle_igain * v_ctl_auto_throttle_sum_err;
|
||||
|
||||
}
|
||||
|
||||
@@ -261,9 +261,9 @@ static inline void v_ctl_set_airspeed( void ) {
|
||||
float err_vz = estimator_z_dot - v_ctl_climb_setpoint;
|
||||
float d_err_vz = (err_vz - last_err_vz)*AIRSPEED_LOOP_PERIOD;
|
||||
last_err_vz = err_vz;
|
||||
if (v_ctl_auto_throttle_igain < 0.) {
|
||||
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.) {
|
||||
v_ctl_auto_pitch_sum_err += err_vz*AIRSPEED_LOOP_PERIOD;
|
||||
@@ -306,7 +306,7 @@ static inline void v_ctl_set_airspeed( void ) {
|
||||
+ v_ctl_auto_throttle_climb_throttle_increment * v_ctl_climb_setpoint
|
||||
- v_ctl_auto_throttle_pgain * err_vz
|
||||
+ v_ctl_auto_throttle_dgain * d_err_vz
|
||||
+ v_ctl_auto_throttle_igain * v_ctl_auto_throttle_sum_err
|
||||
- v_ctl_auto_throttle_igain * v_ctl_auto_throttle_sum_err
|
||||
+ v_ctl_auto_airspeed_throttle_pgain * err_airspeed
|
||||
+ v_ctl_auto_airspeed_throttle_dgain * d_err_airspeed
|
||||
+ v_ctl_auto_airspeed_throttle_igain * v_ctl_auto_airspeed_throttle_sum_err;
|
||||
|
||||
Reference in New Issue
Block a user