Identifying Maximum Damping Factor and Frequency in Root Locus Plots

23 visualizzazioni (ultimi 30 giorni)
How can I find the maximum damping factor and frequency of a root locus plot, in order to find the shortest settilng time. This is the sample code and plot. I need to know the max damping factor and frequency in order to calculate for minimum settling time. Or is there another way to find minimum settling time while knowing the gain (k) of the controller at which this occurs at?
s = tf('s');
G = (s+2)/((s^2 + 3*s + 8)*(s+6));
Ks = 1;
Q = Ks*G;
%k=gain;
%sys_c = feedback(Q*k,1);
%figure(2);
% Plot the root locus
figure(1);
rlocus(Q);

Risposte (1)

Sam Chak
Sam Chak il 17 Nov 2023
You can use the damp() command to find out the damping and frequency information. You can also use the looping method to find the gain 'k' that returns the minimum settling time, .
s = tf('s');
G = (s+2)/((s^2 + 3*s + 8)*(s+6));
Ks = 1;
Q = Ks*G
Q = s + 2 ----------------------- s^3 + 9 s^2 + 26 s + 48 Continuous-time transfer function.
damp(Q)
Pole Damping Frequency Time Constant (rad/seconds) (seconds) -1.50e+00 + 2.40e+00i 5.30e-01 2.83e+00 6.67e-01 -1.50e+00 - 2.40e+00i 5.30e-01 2.83e+00 6.67e-01 -6.00e+00 1.00e+00 6.00e+00 1.67e-01
% Plot the root locus
figure(1)
rlocus(Q), grid on
figure(2)
k = 26:0.1:28;
for j = 1:length(k)
Gcl = feedback(k(j)*Q, 1);
S = stepinfo(Gcl);
Ts = S.SettlingTime;
data(j,:) = [k(j), Ts];
step(Gcl), grid on, hold on
end
hold off
best = sortrows(data, 2);
fprintf('%6s %12s \r\n', 'k', 'Ts');
k Ts
fprintf('%6.2f %12.4f \r\n', best(1,:));
27.60 1.0162

Tag

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by