|
MVSim
Lightweight simulator for 2.5D vehicles and robots
|
#include <PID_Controller.h>
Public Member Functions | |
| double | compute (double err, double dt, double feedforward=0) |
| double | filterReference (double setpoint, double dt) |
| void | reset () |
Public Attributes | |
| double | KP = 1.0 |
| double | KI = 0 |
| double | KD = 0 |
| double | N = 0 |
| double | max_out = 0 |
| For clamping (0=no clamp) | |
| bool | enable_antiwindup = false |
| bool | enable_reference_filter = false |
| double | reference_filter_tau = 0.1 |
| int | reference_filter_order = 1 |
PID controller with optional features:
| double mvsim::PID_Controller::compute | ( | double | err, |
| double | dt, | ||
| double | feedforward = 0 |
||
| ) |
Compute PID output.
| [in] | err | Error = desired - actual |
| [in] | dt | Elapsed time in seconds |
| [in] | feedforward | Optional feedforward term added to the output |
| double mvsim::PID_Controller::filterReference | ( | double | setpoint, |
| double | dt | ||
| ) |
Filter a setpoint through the reference filter. Call this on the setpoint before computing the error, if enable_reference_filter is true.
| void mvsim::PID_Controller::reset | ( | ) |
Reset internal status to all zeros (gains and settings remain unmodified)
| bool mvsim::PID_Controller::enable_reference_filter = false |
Enable low-pass filter on reference (setpoint) before error computation.
| double mvsim::PID_Controller::N = 0 |
Derivative filter coefficient. Higher values = less filtering. Typical range: 2-20. Set to 0 to disable filtered derivative (falls back to standard difference).
| int mvsim::PID_Controller::reference_filter_order = 1 |
Order of the reference filter: 1 or 2.
| double mvsim::PID_Controller::reference_filter_tau = 0.1 |
Time constant for the reference filter [seconds].