Root locus shows less overshoot than step
22 views (last 30 days)
Show older comments
Hello,
I'm taking a Controls course, and I'm practicing frequency domain design.
I have a linearized system, for the which I have to design a controller that, between other specifications, needs to produce a low overshoot.
To check that, I'm using MATLAB's root locus (rlocus command), but the problem is that the overshoot that the graph assigns to the complex closed loop poles is way lower than the overshoot that appears when I use the command step. Root locus says that there should be les than 0.01% Overshoot, but step clearly shows more than 30%.
Does anyone know what is going on?
This is my code. Thank you everyone!
close all;
syms s;
s=tf('s');
G=-4.472/(s^2-10);
T=1/300;
R=(1-T*s)/(1+T*s);
P=R*G;
kc=3300;
cont=-kc*(s+3.16)*(s+3.16)/(s*(s+1000));
L=P*cont;
rlocus(L);
figure();
step(L/(1+L));
0 Comments
Answers (1)
Raj
on 9 Aug 2019
The overshoot value indicated on a particular Pole in rlocus or pzmap plot is effectively the overshoot 'contributed' by that particular pole. The whole system dynamics is not taken into picture here. Suppose you create a new system with only that particular pole, then you would get the overshoot as indicated in the rlocus plot. Combination of poles and zeros effectively creates a new system which has different characteristics as you get with step/impulse/lsim commands which considers dynamics of full system. So basically after you do
step(L/(1+L));
the numbers you get by using
a=step(L/(1+L));
b=stepinfo(a)
is the correct information for the full system. Hope this helps!
0 Comments
See Also
Categories
Find more on Classical 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!