From 192f726d474667cf2c1fc3f12ed6b09f6948917b Mon Sep 17 00:00:00 2001 From: Felix Ruess Date: Tue, 29 Nov 2011 22:02:58 +0100 Subject: [PATCH] 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) --- conf/airframes/ENAC/fixed-wing/funjet2_nc.xml | 2 +- conf/airframes/ENAC/fixed-wing/funjet2_new.xml | 2 +- conf/airframes/ENAC/fixed-wing/funjet3.xml | 2 +- conf/airframes/ENAC/fixed-wing/merlin.xml | 2 +- conf/airframes/ENAC/fixed-wing/spocIII-2.xml | 2 +- conf/airframes/ENAC/fixed-wing/spocIII-3.xml | 2 +- conf/airframes/ENAC/fixed-wing/twinjet2.xml | 2 +- conf/airframes/ENAC/fixed-wing/weasel.xml | 2 +- conf/airframes/flixr_discovery.xml | 4 ++-- conf/settings/tuning_ctl_adaptive.xml | 2 +- conf/settings/tuning_ctl_new.xml | 2 +- .../firmwares/fixedwing/guidance/guidance_v.c | 2 +- .../firmwares/fixedwing/guidance/guidance_v_n.c | 16 ++++++++-------- 13 files changed, 21 insertions(+), 21 deletions(-) diff --git a/conf/airframes/ENAC/fixed-wing/funjet2_nc.xml b/conf/airframes/ENAC/fixed-wing/funjet2_nc.xml index 43daeb0d03..1222a4640d 100644 --- a/conf/airframes/ENAC/fixed-wing/funjet2_nc.xml +++ b/conf/airframes/ENAC/fixed-wing/funjet2_nc.xml @@ -167,7 +167,7 @@ - + diff --git a/conf/airframes/ENAC/fixed-wing/funjet2_new.xml b/conf/airframes/ENAC/fixed-wing/funjet2_new.xml index f5c44ebede..7075b66386 100644 --- a/conf/airframes/ENAC/fixed-wing/funjet2_new.xml +++ b/conf/airframes/ENAC/fixed-wing/funjet2_new.xml @@ -167,7 +167,7 @@ - + diff --git a/conf/airframes/ENAC/fixed-wing/funjet3.xml b/conf/airframes/ENAC/fixed-wing/funjet3.xml index eb862dfdf1..76a0068842 100644 --- a/conf/airframes/ENAC/fixed-wing/funjet3.xml +++ b/conf/airframes/ENAC/fixed-wing/funjet3.xml @@ -141,7 +141,7 @@ - + diff --git a/conf/airframes/ENAC/fixed-wing/merlin.xml b/conf/airframes/ENAC/fixed-wing/merlin.xml index 6eacfa3e9d..dd2fd203cf 100644 --- a/conf/airframes/ENAC/fixed-wing/merlin.xml +++ b/conf/airframes/ENAC/fixed-wing/merlin.xml @@ -136,7 +136,7 @@ - + diff --git a/conf/airframes/ENAC/fixed-wing/spocIII-2.xml b/conf/airframes/ENAC/fixed-wing/spocIII-2.xml index efba110b4b..3a873e4050 100644 --- a/conf/airframes/ENAC/fixed-wing/spocIII-2.xml +++ b/conf/airframes/ENAC/fixed-wing/spocIII-2.xml @@ -147,7 +147,7 @@ - + diff --git a/conf/airframes/ENAC/fixed-wing/spocIII-3.xml b/conf/airframes/ENAC/fixed-wing/spocIII-3.xml index 181e5d651e..eb70c3943b 100644 --- a/conf/airframes/ENAC/fixed-wing/spocIII-3.xml +++ b/conf/airframes/ENAC/fixed-wing/spocIII-3.xml @@ -150,7 +150,7 @@ - + diff --git a/conf/airframes/ENAC/fixed-wing/twinjet2.xml b/conf/airframes/ENAC/fixed-wing/twinjet2.xml index 2ff36d1b7d..891dfd9232 100644 --- a/conf/airframes/ENAC/fixed-wing/twinjet2.xml +++ b/conf/airframes/ENAC/fixed-wing/twinjet2.xml @@ -149,7 +149,7 @@ - + diff --git a/conf/airframes/ENAC/fixed-wing/weasel.xml b/conf/airframes/ENAC/fixed-wing/weasel.xml index 5e71ce2e89..e75f960d50 100644 --- a/conf/airframes/ENAC/fixed-wing/weasel.xml +++ b/conf/airframes/ENAC/fixed-wing/weasel.xml @@ -165,7 +165,7 @@ - + diff --git a/conf/airframes/flixr_discovery.xml b/conf/airframes/flixr_discovery.xml index bf0382c94f..824211c1f2 100644 --- a/conf/airframes/flixr_discovery.xml +++ b/conf/airframes/flixr_discovery.xml @@ -265,10 +265,10 @@ http://paparazzi.enac.fr/w/index.php?title=Theory_of_Operation + - + diff --git a/conf/settings/tuning_ctl_adaptive.xml b/conf/settings/tuning_ctl_adaptive.xml index 427cc3b9d3..0f80bc47a9 100644 --- a/conf/settings/tuning_ctl_adaptive.xml +++ b/conf/settings/tuning_ctl_adaptive.xml @@ -35,7 +35,7 @@ - + diff --git a/conf/settings/tuning_ctl_new.xml b/conf/settings/tuning_ctl_new.xml index f6e86c820f..2ad58aee5b 100644 --- a/conf/settings/tuning_ctl_new.xml +++ b/conf/settings/tuning_ctl_new.xml @@ -40,7 +40,7 @@ - + diff --git a/sw/airborne/firmwares/fixedwing/guidance/guidance_v.c b/sw/airborne/firmwares/fixedwing/guidance/guidance_v.c index 899477d761..6ddd26a05d 100644 --- a/sw/airborne/firmwares/fixedwing/guidance/guidance_v.c +++ b/sw/airborne/firmwares/fixedwing/guidance/guidance_v.c @@ -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 diff --git a/sw/airborne/firmwares/fixedwing/guidance/guidance_v_n.c b/sw/airborne/firmwares/fixedwing/guidance/guidance_v_n.c index a52c4bc8d0..ff0187dcc9 100644 --- a/sw/airborne/firmwares/fixedwing/guidance/guidance_v_n.c +++ b/sw/airborne/firmwares/fixedwing/guidance/guidance_v_n.c @@ -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;