Commit Graph

184 Commits

Author SHA1 Message Date
Peter Barker f0616b1b84 AC_PID: avoid use of uninitialised stack data in example 2024-02-24 08:19:50 +09:00
Iampete1 d53b73468b AC_PID: add reset and I term set flags to PIDInfo 2024-01-03 12:28:59 +09:00
Iampete1 9146458d4a AC_PID: remove unused set_integrator methods 2024-01-03 12:28:59 +09:00
Iampete1 2d75b0312e AC_PID: return P and D as output with slew limit and sum limit applyed 2024-01-03 12:28:59 +09:00
Iampete1 5065770e30 AC_PID: tidy interface 2024-01-03 12:28:59 +09:00
Andy Piper fc76312fc3 AC_PID: use AP_Filter for notch configuration
enable filters with AP_FILTER_ENABLED
dynamically allocate notches
remove load/save for notches, update docs
move feedfoward update to update_all()
restrict load_gains() and save_gains() to just what autotune needs
add D_FF logging
2023-11-21 13:26:23 +11:00
Andy Piper b17b78e329 AC_PID: add notch filters to target and error terms
calculate D feed-forward and notch applications correctly
only update notches when enabled
add notches and D feedforward to heli PIDs
add advanced flag an selectively compile advanced options
2023-11-21 13:26:23 +11:00
Michael du Breuil dc35b2f6bc AC_PID: If PD max limiting isn't active clear the flag 2023-10-17 10:14:45 +11:00
Mykhailo Kuznietsov df88281e07 AC_PID: Fix some typos
Fixed some typos found in the code.
2023-10-12 18:30:42 +11:00
Iampete1 9e9aaed1b5 AC_PID: Simplify update_error method by calling update all 2023-10-03 11:27:07 +11:00
Iampete1 9599318fff AC_PID: apply PD limit in such that limit flag is set and reported P and D terms are correct 2023-09-26 10:41:05 +10:00
Leonard Hall 3de0bcefdb AC_PID: Support PD Max 2023-09-26 10:41:05 +10:00
Randy Mackay 11ddf9f7c7 AC_PID: add const kP accessor 2023-09-12 19:14:01 +10:00
Peter Barker 06a8dafbf5 AC_PID: tidy AC_PID construction 2023-08-31 11:09:10 +10:00
Randy Mackay 99bfcb7498 AC_PID: AC_PID_2D integrates SlewCalculator2D 2023-08-01 09:16:17 +10:00
Iampete1 b7907e10c8 AC_PID: AC_PI: fix param defualting 2023-02-06 08:09:13 +09:00
Iampete1 18d0dbcd8a AC_PID: use new defualt pattern 2023-01-24 10:16:56 +11:00
Iampete1 f90990b3a2 AC_PID: move to new method for setiung defualts 2023-01-24 10:16:56 +11:00
Iampete1 2371d83620 AC_PID: dont change pid_info.I in set/reset methods 2023-01-17 11:19:39 +11:00
Andy Piper f3ecb4ee6c AC_PID: support PD boosting 2023-01-11 18:59:52 +11:00
lthall 0fefe1a05a AC_PID: Support changing update period 2022-12-13 17:10:06 +11:00
Iampete1 8d216fbce3 AC_PID: params always use set method 2022-08-03 13:43:48 +01:00
Iampete1 3f84ba12c0 AC_PID: use set_and_defualt to set defualt values 2022-07-20 17:59:59 +10:00
esaldiran 9d8bf5004e AC_PID: update pid_info with integrator reset for logging purposes 2022-07-19 11:40:03 +01:00
Peter Barker e5e4dee708 AC_PID: 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
Bill Geyer b1d6e41fb9 AC_PID: tradheli-change param name from _VFF to _FF 2022-02-04 08:03:38 +09:00
Leonard Hall 8d330a95b5 AC_PID: replace reset_I_smoothly with relax_integrator 2022-01-25 13:20:47 +09:00
Randy Mackay 39b0d76121 AC_PID: minor format fix 2022-01-11 13:09:34 +09:00
Randy Mackay 9d12130689 AC_PID_2D: minor format fix 2022-01-07 13:41:16 +09:00
Leonard Hall b7801947af AC_PID: AC_PID_2D: let I term change direction but not grow when limited 2021-12-16 09:54:49 +09:00
Iampete1 6162775dd0 AC_PID: P 1D, P 2D: remove unused limit flags 2021-11-23 13:49:02 +09:00
Peter Hall 82dd216195 AC_PID_2D: correct limit caculation 2021-11-23 13:47:10 +09:00
Andy Piper e84a05d5ba AC_PID: add slew_rate modifier 2021-11-11 08:13:23 +09:00
Leonard Hall d21b07db98 AC_PID: fix PID filter names FILT -> FLTE, D_FILT -> FLTD
Follow used guided but references the maximum velocity settings. As Guided does not set maximum velocities these values come back as zero. So we need to reference WP_Nav to get safe maximums.
2021-08-10 08:33:56 +09:00
Andrew Tridgell c8079a318c AC_PID: convert AC_P_2D to double 2021-06-24 21:34:30 +10:00
Andrew Tridgell 476e9fc15a AC_PID: use CLASS_NO_COPY() 2021-06-08 11:14:52 +10:00
Leonard Hall 16ba99149b AC_PID: Fix before squash 2 2021-05-24 20:13:37 +10:00
Leonard Hall 9e9e139f99 AC_PID: Fix before squash 2021-05-24 20:13:37 +10:00
Leonard Hall 6bed10c434 AC_PID: Add error variable with accessor and clean up 2021-05-24 20:13:37 +10:00
Leonard Hall eb07bfee2b AC_PID: minor format fixes 2021-05-12 17:16:00 +10:00
Andrew Tridgell 95b375dc87 AC_PID: log SRate in pid info and expose slew rate 2021-04-15 06:57:16 +10:00
Andrew Tridgell 6f2e592943 AC_PID: allow for slew limit scaler
used by plane to have slew limiter in deg/s
2021-04-15 06:57:16 +10:00
Andrew Tridgell 62afa46924 AC_PID: added accessor for IMAX 2021-04-15 06:57:16 +10:00
Leonard Hall 1d720cc5e9 AC_PID: library update and additional functions
includes corrections from peer review
2021-04-03 12:07:59 +09:00
Leonard Hall f0f87be06d AC_PID: AC_PI_2D format changes 2021-02-18 12:59:39 +09:00
Patrick José Pereira f9732b6c70 AC_PID: Add missing const in member functions
Signed-off-by: Patrick José Pereira <patrickelectric@gmail.com>
2021-02-03 18:45:14 +11:00
Peter Hall 1a14c8a05b AC_PID: populate pid_info limit feild 2021-01-05 10:27:28 +11:00
bnsgeyer c565536afa AC_PID: add support to smoothly reset the integrator 2020-12-21 23:33:48 -05:00
Andrew Tridgell 9e73922fd9 AC_PID: use calc_lowpass_alpha_dt() 2020-11-10 16:15:45 +11:00
Andrew Tridgell 739410953b AC_PID: added slew limiter AC_PID
this adds the fixed wing slew limiter as an optional part of
AC_PID. It allows the user to configure a maximum slew limit to
prevent oscillations in PIDs when gains are too high
2020-10-25 10:32:48 +11:00