Root locus shows less overshoot than step
22 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
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 Commenti
Risposte (1)
Raj
il 9 Ago 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 Commenti
Vedere anche
Categorie
Scopri di più su Classical Control Design in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!