- Settling time less than 2 seconds
- Overshoot less than 5%
- Steady-stage error less than 1%
state feedback control and observer
168 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Can you explain how to design a state feedback control and an observer for a DC motor with the following specifications? If you could provide instructions for both MATLAB and Simulink, I would greatly appreciate it.
Rs = 0.47;
Ld = 1.23e-3;
B = 0.0002;
Kb = 0.42;
Kt = 0.73;
J = 6.5e-4;
% Second-order State Matrix
A1 = [-B/J Kt/J;
-Kb/Lq -Rs/Lq];
B1 = [0;
1/Lq];
C1 = [1 0];
D1 = 0;
0 Kommentare
Antworten (2)
Sam Chak
am 5 Apr. 2023
Hi @영탁 한
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!
% Parameters
Rs = 0.47;
Lq = 1.23e-3;
B = 0.0002;
Kb = 0.42;
Kt = 0.73;
J = 6.5e-4;
% State-space Matrices of the Uncompensated Plant
A = [-B/J Kt/J;
-Kb/Lq -Rs/Lq];
B = [0;
1/Lq];
C = [1 0];
D = 0;
% Reference trajectory design
wr = 3; % reference omega, ω
zr = 0.7; % reference zeta, ζ
nr = wr^2;
dr = [1 2*zr*wr wr^2]; % x" + 2·ζ·ω·x' + ω²·x
Gr = tf(nr, dr) % reference model
stepinfo(Gr)
% Controller design
cp = pole(Gr) % controller poles
K = place(A, B, cp) % controller gains
% Closed-loop control system without observer
sys = ss(A-B*K, B, C, D);
Nbar = 1/dcgain(sys); % Normalizer (to rescale the reference input)
cls = ss(A-B*K, B*Nbar, C, D)
stepinfo(cls)
% Observer design
or = 10*real(cp(1)); % make the observer response 10 times faster
op = [or+1 or-1] % observer poles (make op ≪ cp but no repeated poles)
L = place(A', C', op)' % observer gains
% Combine state-feedback controller and observer
Aco = [A-B*K B*K;
zeros(size(A)) A-L*C];
Bco = [B*Nbar;
zeros(size(B))];
Cco = [C zeros(size(C))];
Dco = 0;
% Closed-loop observer-based control system
clco = ss(Aco, Bco, Cco, Dco)
step(clco, 6), grid on
stepinfo(clco)
sse = fix(1 - dcgain(clco)) % steady-state error
As shown, all three design criteria are satisfied.
2 Kommentare
Sam Chak
am 18 Nov. 2023
I'm glad to hear that. If you found the explanation on the design of the integrated full-state feedback controller and observer helpful, please consider voting 👍 as a token of appreciation. Thank you!
Oguz Kaan Hancioglu
am 3 Apr. 2023
Verschoben: Sabin
am 4 Apr. 2023
You can follow this tutorial,
0 Kommentare
Siehe auch
Kategorien
Mehr zu Control System Toolbox finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!