Andy Piper
d6666ffb39
Filter: add scripted harmonic notches
2024-11-04 16:05:21 +00:00
Andrew Tridgell
9726e8e218
Filter: only update notch on init if fixed
2024-09-09 09:29:32 +10:00
Andy Piper
a8575e0646
Filter: ensure harmonic notch filters are always working
2024-09-09 09:29:32 +10:00
Iampete1
3c6e5691e4
Filter: LowPassFilter: use `calc_lowpass_alpha_dt` helper
2024-08-27 11:21:22 +10:00
Iampete1
b811791863
Filter: examples: TransferFunctionCheck: add support for varable DT low pass
2024-08-20 09:09:41 +10:00
Iampete1
e2ce21a237
Filter: LowPassFilter: split into two classes for constant and variable dt
2024-08-20 09:09:41 +10:00
Iampete1
7d7333a91f
Filter: example: TransferFunctionCheck: override constant dt filter
2024-08-20 09:09:41 +10:00
Henry Wurzburg
76abc6850f
Filter: add "source" to option 5
2024-07-24 17:20:30 +10:00
Andrew Tridgell
5859250651
Filter: use NEW_NOTHROW for new(std::nothrow)
2024-06-04 09:20:21 +10:00
Iampete1
51c77fe098
Filter: Testes: notch: interpolate crossing points for acurate phase lag
2024-06-01 16:37:07 +10:00
Andrew Tridgell
c908636cde
Filter: added test of phase lag vs attenuation
2024-06-01 16:37:07 +10:00
muramura
3a1e07d816
Filter: Get common processes out of the way
2024-05-08 17:41:32 +10:00
Iampete1
0a3bdbfdc9
Filter: NotchFilter: return NaN for `logging_frequency` if not initialised
2024-04-24 17:30:35 +10:00
Iampete1
8f2b2cfe31
Filter: HarmonicNotchFilter: convert harmonics as a bitmask
2024-04-17 22:15:22 +01:00
Henry Wurzburg
b69b2324e6
Filter:correct vehicles which can use throttle based notches
2024-04-08 23:11:03 +01:00
Andrew Tridgell
148c176a59
Filter: use a define for nyquist cutoff
2024-03-16 06:54:27 +11:00
Andrew Tridgell
90c8359ff6
Filter: log up to 6 harmonics
2024-03-16 06:54:27 +11:00
Andrew Tridgell
fd1a260d46
Filter: added logging of notch centers and 1st harmonic
...
log up to 5 sources in new FCN message, or FCNS for single source
2024-03-16 06:54:27 +11:00
Andrew Tridgell
2286f2ce27
Filter: added test for attenuation adjustment
2024-03-16 06:54:27 +11:00
Andrew Tridgell
8b9fe4d21d
Filter: adjust attenuation properly at low frequencies
...
use sqrt() adjustment from Leonard
2024-03-16 06:54:27 +11:00
Andrew Tridgell
ae75ea94eb
Filter: fixed filter expansion for other than motors based RPM sources
...
this also fixes the uint8_t storage of a number than can be greater
than 256. Max total notches in a single HarmonicNotchFilter is
currently 12*16*3 for 12 ESCs, with INS_HNTCH_HMNCS=0xFFFF and triple
notch
2024-03-16 06:54:27 +11:00
Andrew Tridgell
304890fc7d
Filter: fixed test suite
...
fill in a parameters structure
2024-03-16 06:54:27 +11:00
Andrew Tridgell
72d235a8a8
Filter: rework harmonic notch
...
do all frequenct clamping in one place in
set_center_frequency(). Allow for zero frequency to disable the
notch. Add an option to treat inactive RPM source as min frequency
2024-03-16 06:54:27 +11:00
Andrew Tridgell
0d932e8a54
Filter: fixed uint8_t bug in total filters and expand_filter_count bug
...
this gets the right number of notches on quadplanes, but is still very
bad in fwd flight
2023-11-28 18:05:37 +11:00
Andrew Tridgell
002f1076d7
Filter: added optional notch debug logging
...
this has helped find multiple bugs
2023-11-28 18:05:37 +11:00
Andy Piper
a61fc423f0
Filter: allow zero centre frequency to passthrough and disable notch
2023-11-28 18:05:37 +11:00
Peter Barker
8eb5baa4ae
Filter: correct AP_Filter defines
...
- checking the build type is very rarely used and definitely not required here
- fix boilerplate to conform to normal pattern of including the config header and #if'ing based on the _ENABLED directly after that
2023-11-21 21:13:42 +11:00
Andy Piper
e729c8ccfa
Filter: add AP_Filter support
...
enable filters with AP_FILTER_ENABLED
allow filters to be compiled out
add dynamic updates, remove load/save and enable
2023-11-21 13:26:23 +11:00
Andy Piper
6a40843a9e
Filter: provide accessors for center and sample frequencies on NotchFilter
2023-11-21 13:26:23 +11:00
Andrew Tridgell
b79e96ab57
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-03 08:08:31 +11:00
Iampete1
3c6ddda5e8
Flter: notchfilter: remove unneeded value and pre-multiply for speed
2023-10-17 10:03:43 +11:00
Iampete1
d8e18a0fc7
Filter: LowPassFilter2p: constrain cuttoff to 40% of sample rate
2023-10-10 08:26:05 +09:00
Iampete1
b68ece1007
Filter: HarmonicNotch: convert harmonics to int32 param
2023-10-10 08:07:16 +09:00
Andy Piper
f726ca1809
Filter: fix notch filter test.
2023-08-02 16:22:59 +01:00
Randy Mackay
07ecbd18ec
Filter: add SlewCalculator2D
2023-08-01 09:16:17 +10:00
Randy Mackay
f91cda7b6e
Filter: SlewLimiter definitions moved to cpp
2023-08-01 09:16:17 +10:00
Andy Piper
0b20328756
Filter: fix notch filter test.
2023-07-18 11:06:02 +10:00
Iampete1
f77635a5a6
Filter: Examples: Add Transfer function check and MATLAB
2023-05-23 10:31:13 +10:00
Iampete1
4406570391
Filter: NotchFilter: private varables to protected
2023-05-23 10:31:13 +10:00
Peter Barker
ae349b6d40
Filter: correct description of filter tracking mode
2023-05-17 12:24:01 +10:00
Iampete1
e613a2d812
Filter: examples: add SlewLimiter example to test functionality
2023-05-02 09:36:03 +10:00
Iampete1
8a4b30ec3f
Filter: SlewLimiter: always caculate slew limit
2023-05-02 09:36:03 +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