state feedback control and observer
Show older comments
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;
Accepted Answer
More Answers (2)
Oguz Kaan Hancioglu
on 3 Apr 2023
Moved: Sabin
on 4 Apr 2023
0 votes
You can follow this tutorial,
Anish Mitra
on 5 Jun 2026 at 19:47
0 votes
The pole placement design has been illustrated well in the above answer.
Adding an alternate design technique here, of using linear quadratic control where you set up cost functions to balance state regulation or tracking with control effort.
% 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;
plant = ss(A,B,C,D);
% LQG
nx = 2; % Number of states
ny = 1; % Number of outputs
Qn = 0.1*eye(nx); % Process noise
Rn = 0.1*eye(ny); % Measurement noise
QWV = blkdiag(Qn,Rn);
Q = eye(nx); % Weights for state
R = eye(ny); % Weights for output
QXU = blkdiag(Q,R);
QI = 5*eye(ny); % Weights for integral of tracking error
C = lqg(plant,QXU,QWV,QI,'1dof'); % Compute controller
% Plot closed loop step response
figure;
sp = stepplot(feedback(C*plant,1));
Categories
Find more on State-Space Control Design in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
