26 [[nodiscard]]
double u()
const {
return u_; }
27 [[nodiscard]]
double yMin()
const {
return y_min_; }
28 [[nodiscard]]
double yMax()
const {
return y_max_; }
29 [[nodiscard]]
double amplitude()
const {
return (y_max_ - y_min_) / 2; }
31 [[nodiscard]] std::string
getType()
const override {
return "ControlLoop"; }
Abstract base for every control element (P, I, D, PT1, ...).
ControlLoop(ControlElement &controller, ControlElement &controlPath)
void optimizeSetParameters(const std::vector< double > ¶ms, int startIdx) override
Load parameters from params starting at startIdx.
std::string getType() const override
Short type tag, e.g. "P", "PT1", "ControlLoop".
int optimizeGetNumParameters() const override
Number of tunable parameters this element consumes.
double getLowestTimeConstant() const override
Lowest time constant of the element, or -1 if it has none.
void initialize(double dt) override
Reset internal state for a simulation run at sample time dt.
double calculate(double w, double dt) override
Advance one sample: feed input u, return output.