diff options
author | Lorenz Meier <lm@inf.ethz.ch> | 2014-07-29 21:36:55 +0200 |
---|---|---|
committer | Lorenz Meier <lm@inf.ethz.ch> | 2014-07-29 21:36:55 +0200 |
commit | e3da7f564f1bc7746ba3be946fd02b95642cbf6e (patch) | |
tree | b69ee5fe005979cdc00b025388f598e631b08eee /src/modules/controllib/blocks.cpp | |
parent | 5422e081246885331d4e34fbb0fbcdf1587b25d3 (diff) | |
download | px4-firmware-e3da7f564f1bc7746ba3be946fd02b95642cbf6e.tar.gz px4-firmware-e3da7f564f1bc7746ba3be946fd02b95642cbf6e.tar.bz2 px4-firmware-e3da7f564f1bc7746ba3be946fd02b95642cbf6e.zip |
NaN check and better init in lowpass
Diffstat (limited to 'src/modules/controllib/blocks.cpp')
-rw-r--r-- | src/modules/controllib/blocks.cpp | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/src/modules/controllib/blocks.cpp b/src/modules/controllib/blocks.cpp index 0175acda9..f739446fa 100644 --- a/src/modules/controllib/blocks.cpp +++ b/src/modules/controllib/blocks.cpp @@ -121,6 +121,9 @@ int blockLimitSymTest() float BlockLowPass::update(float input) { + if (!isfinite(getState())) { + setState(input); + } float b = 2 * float(M_PI) * getFCut() * getDt(); float a = b / (1 + b); setState(a * input + (1 - a)*getState()); |