Identifying Maximum Damping Factor and Frequency in Root Locus Plots

20 Ansichten (letzte 30 Tage)
Rex
Rex am 16 Nov. 2023
Beantwortet: Sam Chak am 17 Nov. 2023
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);

Antworten (1)

Sam Chak
Sam Chak am 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

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by