Polynomial RST Controller
.
Introduction.
The polynomial R-S-T Controller
is a two degree of freedom digital controller (allowing to fix a regulation dynamic uncoupling from the setting point dynamic).
It allows to implement various digital filters in the measurement part (\(R\)) or in the integration part (\(\frac{1}{S}\)).
Parameters:
Here the equation of the RST controller.
where:
-
\(S(q^{-1}),\ T(q^{-1})\ \text{and}\ R(q^{-1})\) are polynomial of delay operator \(q^{-1}\)
-
\(S(q^{-1}) = s_0 + s_1.q^{-1} + ... + s_{ns}.q^{-ns}\)
- \(R(q^{-1}) = r_0 + r_1.q^{-1} + ... + r_{nr}.q^{-nr}\)
- \(T(q^{-1}) = t_0 + t_1.q^{-1} + ... + t_{nt}.q^{-nt}\)
Use of the RST Controller
.
The use of the `RST is based on 3 steps.
- Object instanciation (declaration).
- Initialisation.
- Execution.
Example
For each Controller
like (Pid
, Rst
, Pr
) we have to define a parameter structure.
We define constants used to initialize the parameter structure.
#include "rst.h"
const uint8_t nr = 3;
const float R[] = { 0.8914, -1.1521, 0.3732 };
const uint8_t ns = 6;
const float S[] = { 0.2, 0.0852, -0.0134, -0.0045, -0.1785, -0.0888 };
const uint8_t nt = 3;
const float T[] = { 1.0, -1.3741, 0.4867 };
static float32_t upper_bound = 1.0F;
static float32_t lower_bound = -1.0F;
static float32_t Ts = 100.0e-6F;
We define the parameter structure. Each parameter is defined here.
We define the variable my_rst
which is a Rst
object.
In the setup_routine()
of the OwnTech Power API,
you must initialize the Rst
with its parameters.
In the loop_critical_task()
you can call the method calculateWithReturn()
which have two arguments:
- the reference
- the measure.
Note
Remind that the loop_critical_task()
is called at the sampling time you define and
must be equal to \(T_s\).
new_command
is the result of the rst calculation for one step.