MVSim
Lightweight simulator for 2.5D vehicles and robots
Public Member Functions | Public Attributes | List of all members
mvsim::PID_Controller Struct Reference

#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
 

Detailed Description

PID controller with optional features:

Member Function Documentation

◆ compute()

double mvsim::PID_Controller::compute ( double  err,
double  dt,
double  feedforward = 0 
)

Compute PID output.

Parameters
[in]errError = desired - actual
[in]dtElapsed time in seconds
[in]feedforwardOptional feedforward term added to the output
Returns
Control output (torque, force, etc.)

◆ filterReference()

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.

Returns
Filtered setpoint value.

◆ reset()

void mvsim::PID_Controller::reset ( )

Reset internal status to all zeros (gains and settings remain unmodified)

Member Data Documentation

◆ enable_reference_filter

bool mvsim::PID_Controller::enable_reference_filter = false

Enable low-pass filter on reference (setpoint) before error computation.

◆ N

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).

◆ reference_filter_order

int mvsim::PID_Controller::reference_filter_order = 1

Order of the reference filter: 1 or 2.

◆ reference_filter_tau

double mvsim::PID_Controller::reference_filter_tau = 0.1

Time constant for the reference filter [seconds].


The documentation for this struct was generated from the following file: