Tutorial
As a tutorial, it is assumed that in the figure,
- ,
- ,
- , where .
Setup
The following code returns a structure variable sysEnv
that contains the information about the system environment that will be used later in designing the DOB.
C = tf(2, [1, 4]);
P_n = tf(5, [1, -2]);
N = {[4, 10]};
D = {1, [-10, 10]};
sysEnv = setup_sys(N, D, P_n, C)
The field nominalStab
is 1 since the nominal closed-loop system is stable and the field minPhase
is also 1 since a given set of uncertain plants does not contain any non-minimum phase systems (In fact, there is no zero dynamics.).
Design of Q-filter
The following code returns a transfer function model Qcanon
with a constant numerator and the relative degree 3 that robustly stabilizes the fast dynamics of the closed-loop system.
Qcanon = gen_Qcanon(sysEnv, 3)
If you want to try to use your own , the following code informs you if the fast dynamics of the closed-loop system is robustly stable or not.
isFastDynamicsStable(sysEnv, tf(1, [1, 1]))
Finally, the following code returns the supremum , supTau
such that for all , the closed-loop system with the DOB designed under Qcanon
is robustly stable. Here, Symbolic Math Toolbox is required for the option 'exact'
and 10
means the resolution of the 'approximate'
search method.
supTau = get_supTau(sysEnv, Qcanon, 'exact')
supTau = get_supTau(sysEnv, Qcanon, 'approx', 10)
In conclusion, DO-DAT suggests you to use the Q-filter for the robust stability of the closed-loop system as follows.
, for any .