Commit Graph

80 Commits

Author SHA1 Message Date
Andrew Tridgell
0430923639 APM_Control: change LIM_ROLL_CD to ROLL_LIMIT_DEG 2024-01-23 15:00:30 +11:00
Andrew Tridgell
93c4b75a60 APM_Control: convert LIM_PITCH_MIN/MAX -> PTCH_LIM_MIN/MAX_DEG 2024-01-23 15:00:30 +11:00
Peter Barker
f930c38712 APM_Control: allow compilation with HAL_LOGGING_ENABLED false 2024-01-17 18:25:55 +11:00
Andrew Tridgell
69bfe9b837 APM_Control: added D_FF support for fixed wing 2023-11-21 13:26:23 +11:00
Michael du Breuil
f1b6a7d586 APM_Control: Allow autotune level 0 to actually reach the lowest entries of the autotune level table 2023-10-31 11:42:27 +11:00
Andy Piper
ee883b6ad0 APM_Control: allow autotune FLTD and FLTT updates to be disabled 2023-08-23 18:06:22 +10:00
Peter Barker
7f202b8a0e APM_Control: change namespace of MultiCopter and FixedWing params
this stops the libraries knowing anything about AP_Vehicle
2022-11-09 19:04:37 +11:00
Henry Wurzburg
dcde718f20 AP_Control: change I determination for Roll axis 2022-07-26 09:40:02 +10:00
Peter Barker
73c6eabde2 APM_Control: tidy includes 2022-05-03 09:14:58 +10:00
Peter Barker
dd589934cc APM_Control: stop libraries including AP_Logger.h in .h files
AP_Logger.h is a nexus of includes; while this is being improved over
time, there's no reason for the library headers to include AP_Logger.h
as the logger itself is access by singleton and the structures are in
LogStructure.h

This necessitated moving The PID_Info structure out of AP_Logger's
namespace.  This cleans up a pretty nasty bit - that structure is
definitely not simply used for logging, but also used to pass pid
information around to controllers!

There are a lot of patches in here because AP_Logger.h, acting as a
nexus, was providing transitive header file inclusion in many (some
unlikely!) places.
2022-04-08 19:18:38 +10:00
Andrew Tridgell
81d20ae49d APM_Control: support yaw rate controller autotune 2021-11-30 16:19:26 +11:00
Andrew Tridgell
5a996f308b APM_Control: fixed code style of plane rate controllers 2021-11-30 16:19:26 +11:00
Andrew Tridgell
724301ea53 APM_Control: make 2nd reduction of P smaller
this prevents severe P reductions when we get a small oscillation
glitch after we've already got the primary P gain
2021-11-30 10:31:34 +11:00
Andrew Tridgell
08fcfa04ae APM_Control: only save autotune gains when P finished
this prevents saving values which are temporarily high due to tuning
process

See this bug report
https://discuss.ardupilot.org/t/plane-4-1-0-stable/76507/45
2021-10-10 19:00:57 +11:00
Andrew Tridgell
47854ac4b7 APM_Control: lower the tuning trigger threshold
this allows for slower stick movements during tuning

This is based on analysing the log from kir850 on rcgroups
2021-07-31 10:01:14 +10:00
Andrew Tridgell
45cf726a4b APM_Control: new autotune scheme
this separately tunes D and then P, which more closely follows the
technique used for a manual tune
2021-07-24 15:32:55 +10:00
Andrew Tridgell
1633afb6cd APM_Control: adjust fixed wing filter defaults
adjust defaults based on discussions with Paul, and initialise the
FLTT value based on the controller time constant
2021-07-05 20:07:47 +10:00
Andrew Tridgell
cd43c0ecef APM_Control: use FF to increase but not reduce tau in autotune
if user wants a slow time constant we should not override
2021-05-25 12:14:38 +10:00
Andrew Tridgell
f64c6f9ba1 APM_Control: fixed cygwin build
FF0 is a macro in cygwin
2021-04-15 06:57:16 +10:00
Andrew Tridgell
767a0b2a99 APM_Control: tweak the activation detection to catch more events 2021-04-15 06:57:16 +10:00
Andrew Tridgell
dd98f00947 APM_Control: prevent cross-axis tuning
this should fix tuning at higher AUTOTUNE_LEVEL values
2021-04-15 06:57:16 +10:00
Andrew Tridgell
320d3d20c2 APM_Control: log autotune at 25Hz 2021-04-15 06:57:16 +10:00
Andrew Tridgell
72b51a389c APM_Control: use ATRP log msg via structure 2021-04-15 06:57:16 +10:00
Andrew Tridgell
7b073a61f1 APM_Control: allow for gain reductions when idle 2021-04-15 06:57:16 +10:00
Andrew Tridgell
91856b1d8c APM_Control: prevent bad init of FF in autotune 2021-04-15 06:57:16 +10:00
Andrew Tridgell
3fdd507157 APM_Control: log I and prevent numercial errors in autotune 2021-04-15 06:57:16 +10:00
Andrew Tridgell
24d53eade4 APM_Control: adjust filter for autotune to 0.75 Hz
this should give a better FF estimate
2021-04-15 06:57:16 +10:00
Paul Riseborough
9e6561e6b5 APM_Control: Ensure adequate trim speed 2021-04-15 06:57:16 +10:00
Andrew Tridgell
fa88967b6e APM_Control: adjust min value for tconst 2021-04-15 06:57:16 +10:00
Andrew Tridgell
b079da33c5 APM_Control: use slew rate to move gains more smoothly 2021-04-15 06:57:16 +10:00
Andrew Tridgell
772b1262d4 APM_Control: added proportional reduction to D and P 2021-04-15 06:57:16 +10:00
Andrew Tridgell
d561cd358f APM_Control: log RMAX and TAU 2021-04-15 06:57:16 +10:00
Andrew Tridgell
d914ce6829 APM_Control: reset filters on autotune start 2021-04-15 06:57:16 +10:00
Andrew Tridgell
7e64875a02 APM_Control: tweak tuning settings 2021-04-15 06:57:16 +10:00
Andrew Tridgell
97f88f67f6 APM_Control: allow for AUTOTUNE_LEVEL=0
this means keep the existing TCONST and RMAX parameters, if non-zero
2021-04-15 06:57:16 +10:00
Andrew Tridgell
316541017a APM_Control: fixed handling of clipped actuator in autotune 2021-04-15 06:57:16 +10:00
Andrew Tridgell
9997b191a8 APM_Control: log smoothed rates 2021-04-15 06:57:16 +10:00
Andrew Tridgell
20ef242280 APM_Control: fixed restore of tconst on autotune abort 2021-04-15 06:57:16 +10:00
Andrew Tridgell
53ee13a083 APM_Control: use instance logging and allow AUTOTUNE_LEVEL adjustments 2021-04-15 06:57:16 +10:00
Andrew Tridgell
70c194c358 APM_Control: fixed LoggerDocumentation test 2021-04-15 06:57:16 +10:00
Andrew Tridgell
0b76a8018f APM_Control: move rmax and tau more slowly 2021-04-15 06:57:16 +10:00
Andrew Tridgell
3cb32a18f0 APM_Control: fixed for cygwin build 2021-04-15 06:57:16 +10:00
Andrew Tridgell
364fa0680d APM_Control: use shorter tau for autotune higher levels 2021-04-15 06:57:16 +10:00
Andrew Tridgell
f88622def8 APM_Control: implement new autotune system
use actuator/rate ratio with median filter for FF and Dmod/overshoot
for P,I,D
2021-04-15 06:57:16 +10:00
Andrew Tridgell
ead011c7c2 APM_Control: move to only ACPID 2021-04-15 06:57:16 +10:00
Peter Barker
cb692c6946 APM_Control: move logger include to .cpp 2019-07-09 10:57:20 +10:00
Tom Pittenger
0a95785ff0 APM_Control: rename dataflash to logger 2019-03-28 16:40:57 +11:00
Tom Pittenger
752804c2a5 APM_Control: unify singleton naming to _singleton and get_singleton() 2019-02-10 19:09:58 -07:00
Peter Barker
6fc76a32af GLOBAL: use AP::logger() and strip redundant Log_ from methods 2019-01-18 18:08:20 +11:00
Peter Barker
b47733142f GLOBAL: rename DataFlash_Class to AP_Logger 2019-01-18 18:08:20 +11:00