Andrew Tridgell
0bbea732a0
Filter: protect against extremely low notch filter frequencies
...
an incorrectly configured ESC telemetry source can lead to a notch
running at very low frequencies. A simple example is a lua script like
this:
function update()
esc_telem:update_rpm(12, 0, 0)
return update, 10
end
return update()
where motor 12 is unused.
with that script in place we get a 1.0078 Hz filter which leads to
massive phase lag and a crashed aircraft
this is a safety protection. We should also try to find out why the
INS_HNTCH_FREQ lower limit is not working
2023-11-07 11:17:04 +11:00
Randy Mackay
2f847c9129
Filter: add SlewCalculator2D
2023-08-01 17:43:17 +10:00
Randy Mackay
873290de1b
Filter: SlewLimiter definitions moved to cpp
2023-08-01 17:43:17 +10:00
Iampete1
c161875659
Filter: SlewLimiter: always caculate slew limit
2023-06-08 18:41:06 +10:00
Iampete1
8bd374d835
Filter: HarmonicNotch: update FREQ description
2023-03-15 18:53:55 +11:00
Randy Mackay
e4d60347fb
Filter: implement 3 element mode filter
2023-03-01 18:22:22 +11:00
Andy Piper
1e003871b0
Filter: save freq_min_ratio when saving parameters
2023-01-31 10:58:12 +11:00
Andy Piper
500f59d839
Filter: allow freq_min_ratio to be set on harmonic notch filter
...
allow harmonics to be set
2023-01-24 10:56:33 +11:00
Leonard Hall
f0822e5121
Filter: Support changing update period
2022-12-13 17:10:06 +11:00
Andrew Tridgell
02c06167c1
Filter: allow for expansion of dynamic filters
...
this allows for the number of dynamic filters on a harmonic notch
filter to expand at runtime, which allows for ESC RPMs to be populated
from other than AP_Motors, such as with lua scripts or for fwd motors
in a SLT quadplane
2022-10-16 20:38:19 +11:00
Andy Piper
1fe7fb8f35
Filter: optimize notch filter frequency updates when the requested frequency has not changed
2022-09-22 11:48:28 +10:00
Andy Piper
b8f01323ec
Filter: constrain harmonic notch center frequency changes to be within a slew limit
...
raise notch filter slew for smaller aircraft
ensure NotchFilter init() resets the center frequency
2022-09-21 17:41:38 +10:00
Andrew Tridgell
4ed55d9e21
Filter: fixed out of bound access in ModeFilter
2022-09-06 10:49:50 +10:00
Iampete1
338779d27d
Filter: params always use set method
2022-08-03 13:43:48 +01:00
Andrew Tridgell
0103776d83
Filter: fixed test_notchfilter for the change in allocate_filters()
...
changed for triple notch
2022-07-10 06:57:29 +10:00
Andy Piper
dfba938e63
Filter: add triple harmonic notches
2022-07-03 18:21:41 +10:00
Andrew Tridgell
eefc41fe30
Filter: added a way to plot attenuation and phase lag for complex filters
2022-06-30 20:58:37 +10:00
Andrew Tridgell
366aa7154c
Filter: added FM_RAT for throttle notch frequency ratio
...
allow for configurable min frequency ratio for throttle based notches
2022-06-30 20:58:37 +10:00
Andrew Tridgell
7928fa6e69
Filter: added a NotchFilter test suite
2022-06-12 15:39:44 +10:00
Andrew Tridgell
7c782dda88
Filter: fixed ordering of samples in notch reset
2022-06-12 15:39:44 +10:00
Andrew Tridgell
d07761cfd9
Filter: fixed reset of notch filters
...
when we reset a notch we need to init the stored values to the current
value, rather than assuming that zero is the right value
this matters when switching IMUs in flight when we are only running
notch filters on the active gyro
2022-06-12 15:39:44 +10:00
Andrew Tridgell
9e3a29bf86
Filter: added EnableOnAllIMUs option to harmonic notch filter
2022-06-12 15:39:44 +10:00
Dr.-Ing. Amilcar do Carmo Lucas
d3eae308da
Filter: NFC spell corrections in comments
2022-06-11 08:43:03 +09:00
Andy Piper
39d928aa49
Filter: add mutators for notch filter parameters
2022-05-04 17:05:51 +10:00
Peter Barker
c3cd733f26
Filter: tidy includes
2022-05-03 09:14:58 +10:00
Andrew Tridgell
d7d04bc7cf
Filter: removed parameters from the old notch filter
...
saves some flash space
2022-04-19 09:39:03 +10:00
Andrew Tridgell
1cd1519a4f
Filter: clarify meaning of 1st harmonic
2022-04-19 09:39:03 +10:00
Andrew Tridgell
7272a29b7b
Filter: added RPM2 harmonic notch type
2022-04-19 09:39:03 +10:00
Iampete1
1521760a17
Filters: HarmonicNotch: remove statment on max number of notches harmonics from parm descripstion
2022-03-25 07:14:06 +11:00
Peter Barker
666c36a57f
Filter: add trivial test for ModeFilter get method (float version)
2022-02-19 11:16:40 +11:00
Peter Barker
f6a1df472a
Filter: add trivial test that ModeFilter's get method works
...
.... previously only checking return value of apply
2022-02-18 17:55:04 +11:00
Peter Barker
0a8cccd79a
Filter: add test for AverageIntegralFilter
2022-02-18 12:11:46 +11:00
Andy Piper
fbdeea2d03
Filter: optimize hot parts of notch filter updates
2021-12-22 18:23:33 +11:00
Andy Piper
34920ebd60
Filter: allow harmonics and notch-per-motor in harmonic notch
...
allow default harmonics to be configured
allow combination of harmonics and indpendent centre frequencies
pre-calculate number of harmonics
2021-12-22 18:13:38 +11:00
Andy Piper
00da3520bc
Filter: set output slew rate to zero when max is zero.
2021-11-11 08:13:23 +09:00
Pierre Kancir
60155a7fec
Filter: add more unittests
2021-08-30 09:51:25 +10:00
Pierre Kancir
fd38be843a
Filter: finish modefilter test
2021-08-30 09:51:25 +10:00
Michelle Rossouw
3379a1a215
Filter: Add Vector2f option to notch filter
2021-07-06 14:56:02 +10:00
Andrew Tridgell
cd1f5ca494
Filter: use CLASS_NO_COPY
2021-06-08 11:14:52 +10:00
Andy Piper
21d24ebc9d
Filter: add harmonic notch option to run at loop rate
2021-05-19 17:35:16 +10:00
Paul Riseborough
b969a43074
Filter: Slewlimiter use different filtering for external reporting
2021-04-15 06:57:16 +10:00
Paul Riseborough
dd446433f7
Filter: Adjust SlewLimiter tuning
2021-04-15 06:57:16 +10:00
Paul Riseborough
6e6df3df58
Filter: Increase gain modifier action
2021-04-15 06:57:16 +10:00
Paul Riseborough
458c46353d
Filter: remove unnecessary fmaxf
2021-04-15 06:57:16 +10:00
Paul Riseborough
cb4a770d38
Filter: Reduce spikes in oscillation slew rate metric
2021-04-15 06:57:16 +10:00
Paul Riseborough
fdfdb118b9
Filter: Improve SlewLimiter oscillation detection
2021-04-15 06:57:16 +10:00
Paul Riseborough
4622e33255
Filter: Use positive and negative direction changes for slew limiting
2021-04-15 06:57:16 +10:00
Andrew Tridgell
59a805a740
Filter: expose slew rate in slew limiter
2021-04-15 06:57:16 +10:00
Andrew Tridgell
6cae97446a
Filter: added auto-init to LowPassFilter
...
make sure initial filter returns are not a long way off if filtered
input is far from zero
2021-04-15 06:57:16 +10:00
Andrew Tridgell
5ef31a1801
Filter: moved ModeFilter to C++
...
save flash space for common code
2021-04-15 06:57:16 +10:00