RST

template<int64_t order>
class RST : public vslib::Component

Public Functions

inline RST(std::string_view name, Component &parent)

Constructor for the RST controller Component, initialzes r, s, t coefficients Parameters and actuation_limits LimitRange Component.

Parameters:
  • name – Name of this Controller Component

  • parent – Parent of this Controller Component

inline void updateInputHistories(const double reference, const double measurement) noexcept

Updates histories of measurements and references and moves the head of the history buffer.

Parameters:
  • reference – Current value of the set-point reference

  • measurement – Current value of the process value (measurement)

inline double control(const double reference, const double measurement) noexcept

Calculates one iteration of the controller algorithm.

Parameters:
  • reference – Reference value for the controller

  • measurement – Current process value (measurement)

Returns:

Controller output of the iteration

inline void updateReference(const double updated_actuation)

Updates the most recent reference in the history, used in cases actuation goes over the limit.

Parameters:

updated_actuation – Actuation that actually took place after clipping of the calculated actuation

inline void reset() noexcept

Resets the controller to the initial state by zeroing the history.

inline bool isReady() const noexcept

Returns flag whether the reference and measurement histories are filled and RST is ready to regulate

Returns:

True if reference and measurement histories are filled, false otherwise

inline const auto &getActuations() noexcept

Returns the actuation history buffer

Returns:

Reference to the history buffer holding previous actuations

inline const auto &getReferences() noexcept

Returns the reference history buffer

Returns:

Reference to the history buffer holding previous references

inline const auto &getMeasurements() noexcept

Returns the measurement history buffer

Returns:

Reference to the history buffer holding previous measurements

inline virtual std::optional<fgc4::utils::Warning> verifyParameters() override

Update parameters method, called after paramaters of this component are modified.

Public Members

Parameter<std::array<double, order + 1>> r

reference coefficients

Parameter<std::array<double, order + 1>> s

disturbance coefficients

Parameter<std::array<double, order + 1>> t

control coefficients

LimitRange<double> actuation_limits

Range limiting of the actuation output.