Since no requirement is provided, we follow the design criteria given in the example: - Settling time less than 2 seconds
- Overshoot less than 5%
- Steady-stage error less than 1%
Like many collaborative robot arms and autonoumous vehicles, it is necessary to design the desired reference trajectory so that the control systems can follow. In this exercise, a reference model (transfer function) is designed to satisfy the design criteria.
From the reference model, one can obtain the desired closed-loop pole and the pole placement technique (solving algebraic equations) can be applied. The rest of the controller and observer design are procedural steps. So, the key is the reference model design! Gr = tf(nr, dr)
Gr =
9
---------------
s^2 + 4.2 s + 9
Continuous-time transfer function.
stepinfo(Gr)
ans =
RiseTime: 0.7089
TransientTime: 1.9930
SettlingTime: 1.9930
SettlingMin: 0.9001
SettlingMax: 1.0460
Overshoot: 4.5986
Undershoot: 0
Peak: 1.0460
PeakTime: 1.4693
cp = pole(Gr)
cp =
-2.1000 + 2.1424i
-2.1000 - 2.1424i
sys = ss(A-B*K, B, C, D);
cls = ss(A-B*K, B*Nbar, C, D)
cls =
A =
x1 x2
x1 -0.3077 1123
x2 -0.006947 -3.892
B =
u1
x1 0
x2 0.008014
C =
x1 x2
y1 1 0
D =
u1
y1 0
Continuous-time state-space model.
stepinfo(cls)
ans =
RiseTime: 0.7089
TransientTime: 1.9930
SettlingTime: 1.9930
SettlingMin: 0.9001
SettlingMax: 1.0460
Overshoot: 4.5986
Undershoot: 0
Peak: 1.0460
PeakTime: 1.4693
Cco = [C zeros(size(C))];
clco = ss(Aco, Bco, Cco, Dco)
clco =
A =
x1 x2 x3 x4
x1 -0.3077 1123 0 0
x2 -0.006947 -3.892 -341.5 -378.2
x3 0 0 340.1 1123
x4 0 0 -116.1 -382.1
B =
u1
x1 0
x2 0.008014
x3 0
x4 0
C =
x1 x2 x3 x4
y1 1 0 0 0
D =
u1
y1 0
Continuous-time state-space model.
stepinfo(clco)
ans =
RiseTime: 0.7089
TransientTime: 1.9930
SettlingTime: 1.9930
SettlingMin: 0.9001
SettlingMax: 1.0460
Overshoot: 4.5986
Undershoot: 0
Peak: 1.0460
PeakTime: 1.4693
sse = fix(1 - dcgain(clco))
As shown, all three design criteria are satisfied.