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;