Commit Graph

70 Commits

Author SHA1 Message Date
Andrew Tridgell 4c41805a3d AC_PID: use NEW_NOTHROW for new(std::nothrow) 2024-06-04 09:20:21 +10: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
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
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
Leonard Hall 8d330a95b5 AC_PID: replace reset_I_smoothly with relax_integrator 2022-01-25 13:20:47 +09:00
Andy Piper e84a05d5ba AC_PID: add slew_rate modifier 2021-11-11 08:13:23 +09:00
Leonard Hall 6bed10c434 AC_PID: Add error variable with accessor and clean up 2021-05-24 20:13:37 +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
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
Peter Barker c78dcb15a1 AC_PID: remove dead get_ff(float target) method as per TODO comment 2020-09-09 13:19:17 +09:00
Randy Mackay 0052dcc8f8 AC_PID: update pid_info when integrator set 2019-10-18 11:15:25 +09:00
Leonard Hall ab0bdc9fe6 AC_PID: upgrade to PID object 2019-07-25 17:38:15 +09:00
Leonard Hall 8c6a24450a AC_PID: Fix D term initialisation 2018-09-15 11:00:29 +10:00
Randy Mackay 4e8155f4e5 AC_PID: allow non-zero ff gain default 2018-01-05 13:33:21 +09:00
Andrew Tridgell b97bf5d15e AC_PID: added feed-forward to AC_PID 2017-02-18 17:26:43 +11:00
Mathieu OTHACEHE 152edf7189 Global: remove mode line from headers
Using a global .dir-locals.el file is a better alternative than
reincluding the same emacs header in every file of the project.
2016-10-24 09:42:01 -02:00
Randy Mackay 227e4f86d7 AC_PID: fix parameter description 2016-04-01 11:59:30 +09:00
Randy Mackay 920425567c AC_PID: shorten FILT_HZ to FILT 2016-04-01 11:59:30 +09:00
dgrat 5148e41c1a AP_Math: Cleaned macro definitions
Moved Definitions into a separate header. Replaced PI with M_PI and
removed the M_PI_*_F macros.
2016-02-27 02:51:33 -03:00
Lucas De Marchi 2591261af6 Global: rename min and max macros to uppercase
The problem with using min() and max() is that they conflict with some
C++ headers. Name the macros in uppercase instead. We may go case by
case later converting them to be typesafe.

Changes generated with:

	git ls-files '*.cpp' '*.h' -z | xargs -0 sed -i 's/\([^_[:alnum:]]\)max(/\1MAX(/g'
	git ls-files '*.cpp' '*.h' -z | xargs -0 sed -i 's/\([^_[:alnum:]]\)min(/\1MIN(/g'
2015-12-01 16:28:09 -02:00
Lucas De Marchi 831d8acca5 Remove use of PROGMEM
Now variables don't have to be declared with PROGMEM anymore, so remove
them. This was automated with:

    git grep -l -z PROGMEM | xargs -0 sed -i 's/ PROGMEM / /g'
    git grep -l -z PROGMEM | xargs -0 sed -i 's/PROGMEM//g'

The 2 commands were done so we don't leave behind spurious spaces.

AVR-specific places were not changed.
2015-10-30 14:35:16 +09:00
Gustavo Jose de Sousa 286d084d83 AC_PID: standardize inclusion of libaries headers
This commit changes the way libraries headers are included in source files:

 - If the header is in the same directory the source belongs to, so the
 notation '#include ""' is used with the path relative to the directory
 containing the source.

 - If the header is outside the directory containing the source, then we use
 the notation '#include <>' with the path relative to libraries folder.

Some of the advantages of such approach:

 - Only one search path for libraries headers.

 - OSs like Windows may have a better lookup time.
2015-08-11 16:28:41 +10:00
Robert Lefebvre 967071ca62 AC_PID: Integrate PID Logging functionality. 2015-05-27 14:28:44 +10:00
Tom Pittenger 9d74f57ed3 AP_PID: replace fabs() with fabsf() 2015-05-09 09:57:26 +10:00
Andrew Tridgell 33555b7f12 AC_PID: revert AP_Math class change 2015-05-05 13:27:05 +10:00
Tom Pittenger 01180d52c4 AP_PID: compiler warnings: apply is_zero(float) 2015-05-05 13:26:51 +10:00
Randy Mackay 67b0c6f5c4 AC_PID: replace is_equal with is_zero 2015-04-28 16:22:08 +09:00
dgrat 303cfd683a AC_PID: replace floating point '==' with is_equal
Also add div-by-zero check to fix calc_filt_alpha

Also get_i and get_shrink_i do not need to set values to zero in Vector2f
constructor because this is already done.
2015-04-28 16:21:46 +09:00
Jonathan Challinger 6ea91d012e AC_PID: calculate filt_alpha every time the filter is run 2015-04-14 16:19:02 +09:00
Randy Mackay a095a8c3a1 AC_PID: more protection against NaN and Inf 2015-04-09 20:19:55 +09:00
Leonard Hall ae77c18a19 AC_PID: Protect against NaN and INF 2015-04-09 18:30:12 +09:00
Randy Mackay 12724e9556 AC_PID: remove include of stdio.h 2015-03-11 20:40:05 +09:00