aboutsummaryrefslogtreecommitdiff
path: root/src/lib
diff options
context:
space:
mode:
authorThomas Gubler <thomasgubler@gmail.com>2014-09-08 12:45:09 +0200
committerThomas Gubler <thomasgubler@gmail.com>2014-09-08 12:45:09 +0200
commit33c0cd2e569782ed68931b6ffd6be4a45c6b1b54 (patch)
tree84acdd63294d32a3430943bba99364b8c7d2e7b7 /src/lib
parentdaf16184202b02119aa1ac83cb82cf85979d43f9 (diff)
parentcf601c09bf14ac4141bc66f2f71934fcf65da2a6 (diff)
downloadpx4-firmware-33c0cd2e569782ed68931b6ffd6be4a45c6b1b54.tar.gz
px4-firmware-33c0cd2e569782ed68931b6ffd6be4a45c6b1b54.tar.bz2
px4-firmware-33c0cd2e569782ed68931b6ffd6be4a45c6b1b54.zip
Merge remote-tracking branch 'private_swissfang/master' into launchpitchlimit_swissfang
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/external_lgpl/tecs/tecs.cpp3
-rw-r--r--src/lib/external_lgpl/tecs/tecs.h6
2 files changed, 7 insertions, 2 deletions
diff --git a/src/lib/external_lgpl/tecs/tecs.cpp b/src/lib/external_lgpl/tecs/tecs.cpp
index d27bf776f..da99aa5b1 100644
--- a/src/lib/external_lgpl/tecs/tecs.cpp
+++ b/src/lib/external_lgpl/tecs/tecs.cpp
@@ -236,9 +236,8 @@ void TECS::_update_height_demand(float demand, float state)
// // _hgt_rate_dem);
_hgt_dem_adj = demand;//0.025f * demand + 0.975f * _hgt_dem_adj_last;
+ _hgt_rate_dem = (_hgt_dem_adj-state)*_heightrate_p + _heightrate_ff * (_hgt_dem_adj - _hgt_dem_adj_last)/_DT;
_hgt_dem_adj_last = _hgt_dem_adj;
-
- _hgt_rate_dem = (_hgt_dem_adj-state)*_heightrate_p;
// Limit height rate of change
if (_hgt_rate_dem > _maxClimbRate) {
_hgt_rate_dem = _maxClimbRate;
diff --git a/src/lib/external_lgpl/tecs/tecs.h b/src/lib/external_lgpl/tecs/tecs.h
index 36ae4ecaf..8ac31de6f 100644
--- a/src/lib/external_lgpl/tecs/tecs.h
+++ b/src/lib/external_lgpl/tecs/tecs.h
@@ -47,6 +47,7 @@ public:
_rollComp(0.0f),
_spdWeight(0.5f),
_heightrate_p(0.0f),
+ _heightrate_ff(0.0f),
_speedrate_p(0.0f),
_throttle_dem(0.0f),
_pitch_dem(0.0f),
@@ -220,6 +221,10 @@ public:
_heightrate_p = heightrate_p;
}
+ void set_heightrate_ff(float heightrate_ff) {
+ _heightrate_ff = heightrate_ff;
+ }
+
void set_speedrate_p(float speedrate_p) {
_speedrate_p = speedrate_p;
}
@@ -256,6 +261,7 @@ private:
float _rollComp;
float _spdWeight;
float _heightrate_p;
+ float _heightrate_ff;
float _speedrate_p;
// throttle demand in the range from 0.0 to 1.0