ros2_control - jazzy
Loading...
Searching...
No Matches
Public Member Functions | Public Attributes | List of all members
control_toolbox::Pid::Gains Struct Reference

Store gains in a struct to allow easier realtime box usage. More...

#include <pid.hpp>

Collaboration diagram for control_toolbox::Pid::Gains:
Collaboration graph
[legend]

Public Member Functions

 Gains (double p, double i, double d, double i_max, double i_min)
 Optional constructor for passing in values without antiwindup and saturation.
 
 Gains (double p, double i, double d, double i_max, double i_min, bool antiwindup)
 Optional constructor for passing in values without saturation.
 
 Gains (double p, double i, double d, double u_max, double u_min, const AntiWindupStrategy &antiwindup_strat)
 Constructor for passing in values.
 
bool validate (std::string &error_msg) const
 
void print () const
 

Public Attributes

double p_gain_ = 0.0
 
double i_gain_ = 0.0
 
double d_gain_ = 0.0
 
double i_max_ = 0.0
 
double i_min_ = 0.0
 
double u_max_ = std::numeric_limits<double>::infinity()
 
double u_min_ = -std::numeric_limits<double>::infinity()
 
bool antiwindup_ = false
 
AntiWindupStrategy antiwindup_strat_
 

Detailed Description

Store gains in a struct to allow easier realtime box usage.

Constructor & Destructor Documentation

◆ Gains() [1/3]

control_toolbox::Pid::Gains::Gains ( double  p,
double  i,
double  d,
double  i_max,
double  i_min 
)
inline

Optional constructor for passing in values without antiwindup and saturation.

Parameters
pThe proportional gain.
iThe integral gain.
dThe derivative gain.
i_maxUpper integral clamp.
i_minLower integral clamp.

◆ Gains() [2/3]

control_toolbox::Pid::Gains::Gains ( double  p,
double  i,
double  d,
double  i_max,
double  i_min,
bool  antiwindup 
)
inline

Optional constructor for passing in values without saturation.

Parameters
pThe proportional gain.
iThe integral gain.
dThe derivative gain.
i_maxUpper integral clamp.
i_minLower integral clamp.
antiwindupAnti-windup functionality. When set to true, limits the integral error to prevent windup; otherwise, constrains the integral contribution to the control output. i_max and i_min are applied in both scenarios.

◆ Gains() [3/3]

control_toolbox::Pid::Gains::Gains ( double  p,
double  i,
double  d,
double  u_max,
double  u_min,
const AntiWindupStrategy antiwindup_strat 
)
inline

Constructor for passing in values.

Parameters
pThe proportional gain.
iThe integral gain.
dThe derivative gain.
u_maxUpper output clamp.
u_minLower output clamp.
antiwindup_stratSpecifies the anti-windup strategy. Options: 'back_calculation', 'conditional_integration', or 'none'. Note that the 'back_calculation' strategy use the tracking_time_constant parameter to tune the anti-windup behavior.

Member Data Documentation

◆ antiwindup_

bool control_toolbox::Pid::Gains::antiwindup_ = false

Anti-windup.

◆ antiwindup_strat_

AntiWindupStrategy control_toolbox::Pid::Gains::antiwindup_strat_

Anti-windup strategy.

◆ d_gain_

double control_toolbox::Pid::Gains::d_gain_ = 0.0

Derivative gain.

◆ i_gain_

double control_toolbox::Pid::Gains::i_gain_ = 0.0

Integral gain.

◆ i_max_

double control_toolbox::Pid::Gains::i_max_ = 0.0

Maximum allowable integral term.

◆ i_min_

double control_toolbox::Pid::Gains::i_min_ = 0.0

Minimum allowable integral term.

◆ p_gain_

double control_toolbox::Pid::Gains::p_gain_ = 0.0

Proportional gain.

◆ u_max_

double control_toolbox::Pid::Gains::u_max_ = std::numeric_limits<double>::infinity()

Maximum allowable output.

◆ u_min_

double control_toolbox::Pid::Gains::u_min_ = -std::numeric_limits<double>::infinity()

Minimum allowable output.


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