Root locus shows less overshoot than step
15 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
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 comentarios
Respuestas (1)
Raj
el 9 de Ag. de 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 comentarios
Ver también
Categorías
Más información sobre Classical Control Design en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!