iCub-main
|
General structure of series (interactive) PID. More...
#include <pids.h>
Public Member Functions | |
seriesPID (const double _Ts, const yarp::sig::Vector &_Kp, const yarp::sig::Vector &_Ti, const yarp::sig::Vector &_Kd, const yarp::sig::Vector &_N, const yarp::sig::Matrix &_satLim) | |
Constructor. | |
virtual const yarp::sig::Vector & | compute (const yarp::sig::Vector &ref, const yarp::sig::Vector &fb) |
Computes the PID output. | |
virtual void | reset () |
Resets the internal state of integral and derivative part. | |
virtual void | getOptions (yarp::os::Bottle &options) |
Returns the current options used by the pid. | |
virtual void | setOptions (const yarp::os::Bottle &options) |
Update the options used by the pid. | |
~seriesPID () | |
Destructor. | |
Protected Attributes | |
yarp::sig::Vector | Kp |
yarp::sig::Vector | Ti |
yarp::sig::Vector | Kd |
yarp::sig::Vector | N |
yarp::sig::Matrix | satLim |
yarp::sig::Vector | e |
yarp::sig::Vector | P |
yarp::sig::Vector | I |
yarp::sig::Vector | D |
yarp::sig::Vector | u |
yarp::sig::Vector | uSat |
unsigned int | dim |
double | Ts |
std::deque< Filter * > | Int |
std::deque< Filter * > | Der |
Additional Inherited Members | |
Static Public Member Functions inherited from iCub::ctrl::helperPID | |
static void | addVectorToOption (yarp::os::Bottle &option, const char *key, const yarp::sig::Vector &val) |
Add the data contained in the specified vector to the specified bottle, using property-like form (i.e. | |
static bool | getVectorFromOption (const yarp::os::Bottle &options, const char *key, yarp::sig::Vector &val, int &size) |
Fill the specified vector with the data associated with the specified key in the specified property-like bottle. | |
General structure of series (interactive) PID.
u = sat((P + I) * (1 + D) * (ref-fb))
Components expressed in Laplace transform:
iCub::ctrl::seriesPID::seriesPID | ( | const double | _Ts, |
const yarp::sig::Vector & | _Kp, | ||
const yarp::sig::Vector & | _Ti, | ||
const yarp::sig::Vector & | _Kd, | ||
const yarp::sig::Vector & | _N, | ||
const yarp::sig::Matrix & | _satLim | ||
) |
Constructor.
_Ts | is the block sample time in seconds. |
_Kp | are the proportional gains. |
_Ti | are the integral time constants (so that integral part cannot be switched off). |
_Kd | are the derivative gains. |
_N | are derivative low-pass filter bandwidth (3 to 20, typ. 10, must be > 0). |
_satLim | is the saturation thresholds matrix (min_i=satLim(i,0), max_i=satLim(i,1)). |
|
virtual |
|
virtual |
Returns the current options used by the pid.
options | is a property-like bottle containing the current configuration used by the pid. |
|
virtual |
|
virtual |
Update the options used by the pid.
options | is a property-like bottle containing the new configuration used by the pid. |