Commit Graph

51 Commits

Author SHA1 Message Date
lthall 0fefe1a05a AC_PID: Support changing update period 2022-12-13 17:10:06 +11: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
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
Andrew Tridgell 476e9fc15a AC_PID: use CLASS_NO_COPY() 2021-06-08 11:14:52 +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
bnsgeyer c565536afa AC_PID: add support to smoothly reset the integrator 2020-12-21 23:33:48 -05: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
Randy Mackay cae020c307 AC_PID: minor format fix 2019-04-16 11:23:46 +09:00
Peter Barker b47733142f GLOBAL: rename DataFlash_Class to AP_Logger 2019-01-18 18:08:20 +11:00
Randy Mackay b381ae7bf3 AC_PID: support storing actual 2018-08-27 16:44:33 +09:00
Randy Mackay 4e8155f4e5 AC_PID: allow non-zero ff gain default 2018-01-05 13:33:21 +09:00
Randy Mackay 91d489d91e AC_PID: implement reset_filter 2017-10-26 19:44:47 +09:00
Andrew Tridgell b97bf5d15e AC_PID: added feed-forward to AC_PID 2017-02-18 17:26:43 +11:00
Andrew Tridgell ccae8979c1 AC_PID: expose filt_hz as a AP_Float
this allows defaults to be overridden
2017-01-12 17:39:37 +11:00
Andrew Tridgell 2086b591a2 AC_PID: expose ff() method in AC_PID
this allows for an abstract AC_PID class to be used in
AC_AttitudeControl for both multicopter and heli
2017-01-12 17:39:37 +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
Andrew Tridgell 412dc10353 AC_PID: expose parameters as AP_Float
this enables full tuning capability
2016-05-07 18:34:03 +10:00
Ricardo de Almeida Gonzaga 5bd034a5a8 Global: start using cmath instead of math.h 2016-04-05 21:06:19 -07:00
Lucas De Marchi f637a29ab6 AC_PID: replace header guard with pragma once 2016-03-16 18:40:39 +11: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
Andrew Tridgell 3ec8857fbc AC_PID: added set_desired_rate() interface
used to setup _pid_info for logging
2015-05-27 14:28:48 +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
Jonathan Challinger 6ea91d012e AC_PID: calculate filt_alpha every time the filter is run 2015-04-14 16:19:02 +09:00
Randy Mackay c10b0b34ca AC_PID: replace set_filt_hz method with filt_hz
Thanks to Jonathan Challinger for spotting this bug
Also add sanity check to filt_hz
2015-03-11 17:28:20 +09:00
Leonard Hall 517448e536 AC_PID: add input filtering and restructure 2015-03-06 14:01:52 +09:00
Randy Mackay 0a46afa6c4 AC_PID: init members to reduce compiler warnings 2014-07-16 17:46:14 +09:00
Robert Lefebvre b35ec4339e AC_PID: Add method to set the D-term Filter Rate from main code. 2014-05-29 17:39:10 +09:00
Robert Lefebvre f1c3f2a3d1 AC_PID: Remove get_leaky_i function which is now found in AC_HELI_PID. 2014-05-29 17:39:08 +09:00
Robert Lefebvre ef7dc815cd AC_PID: Change Private members to Protected so that AC_HELI_PID can access them. 2014-05-29 17:38:59 +09:00
Randy Mackay fbc5af2705 AC_PID: results returned as float 2014-02-15 06:09:08 +11:00
Andrew Tridgell 8c25a504c3 AC_PID: fixed indent-tabs-mode 2013-05-30 09:54:53 +10:00
Andrew Tridgell 2294acc652 AC_PID: fixed build on ARM 2013-01-02 22:09:02 +11:00
Andrew Tridgell 9349259487 AC_PID: updates for new AP_Param API 2012-12-20 14:51:38 +11:00
Pat Hickey 050a878935 AC_PID: Ported to AP_HAL. 2012-12-20 14:51:25 +11:00
Pat Hickey 3f1d9d7f69 AP_Param: #include <AP_Param.h> fixups for libraries & sketches
* I mostly went through with grep and added an #include <AP_Param.h> below
  every #include <AP_Common.h>. Not all of these example sketches might
  strictly need AP_Param.
2012-12-20 14:51:19 +11:00
Andrew Tridgell 5e7ca5b0f8 AC_PID: suppress the derivative immediately after reset
use _last_derivative == NAN to flag that the derivative is invalid
2012-11-27 18:45:49 +11:00
Andrew Tridgell eac1ad49d6 AC_PID: save 8 bytes per AC_PID object
we don't need the _derivative or _output variables
2012-11-27 18:06:22 +11:00
Robert Lefebvre 1d12b781a0 AC_PID: Create Leaky Integrator Function. 2012-11-26 21:01:20 -05:00
uncrustify 6c5757e775 uncrustify libraries/AC_PID/AC_PID.h 2012-08-21 18:59:13 -07:00
Andrew Tridgell 5e8fe8d93e AP_Param: update PID libraries for new constructor syntax 2012-08-08 12:11:57 +10:00
rmackay9 24a471ff8f AC_PID - added more paranoid checking that imax is positive in constructor, operator() and load_gains methods 2012-03-20 11:51:15 +09:00
Jason Short b094f6ce52 added set integrator 2012-02-23 09:38:08 -08:00
Andrew Tridgell 452749149f convert AC_PID library to AP_Param 2012-02-13 16:22:52 +11:00