Identifying Maximum Damping Factor and Frequency in Root Locus Plots

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);

Answers (1)

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

Tags

Asked:

Rex
on 16 Nov 2023

Answered:

on 17 Nov 2023

Community Treasure Hunt

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

Start Hunting!