|
libstp
Robotics library for Botball
|
Abstract base for every control element (P, I, D, PT1, ...). More...
#include <control_element.hpp>
Public Member Functions | |
| virtual | ~ControlElement ()=default |
| virtual std::string | getType () const =0 |
| Short type tag, e.g. "P", "PT1", "ControlLoop". | |
| virtual double | getLowestTimeConstant () const =0 |
| Lowest time constant of the element, or -1 if it has none. | |
| virtual void | initialize (double dt)=0 |
Reset internal state for a simulation run at sample time dt. | |
| virtual double | calculate (double u, double dt)=0 |
Advance one sample: feed input u, return output. | |
| virtual int | optimizeGetNumParameters () const =0 |
| Number of tunable parameters this element consumes. | |
| virtual void | optimizeSetParameters (const std::vector< double > ¶ms, int startIdx)=0 |
Load parameters from params starting at startIdx. | |
Abstract base for every control element (P, I, D, PT1, ...).
Faithful port of ControlElement.ts. Implements the optimization interface (IControlOptimization) directly: every element exposes how many tunable parameters it has and how to write a flat parameter vector into its state.
Definition at line 25 of file control_element.hpp.
|
virtualdefault |
|
pure virtual |
Advance one sample: feed input u, return output.
Implemented in libstp::autotune::control::ControlElementD, libstp::autotune::control::ControlElementDeadTime, libstp::autotune::control::ControlElementI, libstp::autotune::control::ControlElementP, libstp::autotune::control::ControlElementPD1, libstp::autotune::control::ControlElementPID, libstp::autotune::control::ControlElementPT1, libstp::autotune::control::ControlElementPT2, libstp::autotune::control::ControlLoop, and libstp::autotune::control::ControlPath.
|
nodiscardpure virtual |
Lowest time constant of the element, or -1 if it has none.
Implemented in libstp::autotune::control::ControlElementD, libstp::autotune::control::ControlElementDeadTime, libstp::autotune::control::ControlElementI, libstp::autotune::control::ControlElementP, libstp::autotune::control::ControlElementPD1, libstp::autotune::control::ControlElementPID, libstp::autotune::control::ControlElementPT1, libstp::autotune::control::ControlElementPT2, libstp::autotune::control::ControlLoop, and libstp::autotune::control::ControlPath.
|
nodiscardpure virtual |
Short type tag, e.g. "P", "PT1", "ControlLoop".
Implemented in libstp::autotune::control::ControlElementD, libstp::autotune::control::ControlElementDeadTime, libstp::autotune::control::ControlElementI, libstp::autotune::control::ControlElementP, libstp::autotune::control::ControlElementPD1, libstp::autotune::control::ControlElementPID, libstp::autotune::control::ControlElementPT1, libstp::autotune::control::ControlElementPT2, libstp::autotune::control::ControlLoop, and libstp::autotune::control::ControlPath.
|
pure virtual |
Reset internal state for a simulation run at sample time dt.
Implemented in libstp::autotune::control::ControlElementD, libstp::autotune::control::ControlElementDeadTime, libstp::autotune::control::ControlElementI, libstp::autotune::control::ControlElementP, libstp::autotune::control::ControlElementPD1, libstp::autotune::control::ControlElementPID, libstp::autotune::control::ControlElementPT1, libstp::autotune::control::ControlElementPT2, libstp::autotune::control::ControlLoop, and libstp::autotune::control::ControlPath.
|
nodiscardpure virtual |
Number of tunable parameters this element consumes.
Implemented in libstp::autotune::control::ControlElementD, libstp::autotune::control::ControlElementDeadTime, libstp::autotune::control::ControlElementI, libstp::autotune::control::ControlElementP, libstp::autotune::control::ControlElementPD1, libstp::autotune::control::ControlElementPID, libstp::autotune::control::ControlElementPT1, libstp::autotune::control::ControlElementPT2, libstp::autotune::control::ControlLoop, and libstp::autotune::control::ControlPath.
|
pure virtual |
Load parameters from params starting at startIdx.
Implemented in libstp::autotune::control::ControlElementD, libstp::autotune::control::ControlElementDeadTime, libstp::autotune::control::ControlElementI, libstp::autotune::control::ControlElementP, libstp::autotune::control::ControlElementPD1, libstp::autotune::control::ControlElementPID, libstp::autotune::control::ControlElementPT1, libstp::autotune::control::ControlElementPT2, libstp::autotune::control::ControlLoop, and libstp::autotune::control::ControlPath.