Finding point of zeta line & rootlocus
22 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Shaukhin
el 18 de Dic. de 2024 a las 15:29
Respondida: Star Strider
el 18 de Dic. de 2024 a las 17:36
I have a transfer function, constant zeta, I need easy way to find the intersection point between root locus & zeta line. Now, after plotting root locus & zeta using sgrid function, I can find approximately correct intersection point by mouse draging. But I need exact point. You know, mouse draging is too difficult. Besides, zeta line is so narrow linewidth which is too hard to see in plot. Zeta line should increase default linewidth. Can anyone help?
0 comentarios
Respuestas (1)
Star Strider
el 18 de Dic. de 2024 a las 17:36
I am not certain what you are starting with, so I cannot provide an exact response. However one approach may simply be to use interp1 to interpolate the existing ‘r’ and ‘k’ values that correspond to the ζ value you want.
Using an example from the rlocus documentation —
H = tf([2 5 1],[1 2 3]);
[r,kout] = rlocus(H);
zetav = cos(angle(r(1,:)));
zetaq = [0.64 0.76 0.80 0.86 0.90 0.985]; % Desired ‘zeta’ Values
for k = 1:numel(zetaq)
zidx = find(diff(sign(zetav + zetaq(k))));
idxrng = max(1,zidx-1) : min(numel(zetav),zidx+1);
rq(k,:) = interp1(zetav(idxrng), r(1,idxrng), -zetaq(k));
kq(k,:) = interp1(zetav(idxrng), kout(idxrng), -zetaq(k));
end
Result = table(zetaq(:),rq,kq, VariableNames={'zeta','r','k'})
figure
rlocus(H)
sgrid
hold on
plot(real(rq), imag(rq), 'sr') % Plot ‘zeta’ Value As Red Squares
hold off
[min_zeta,max_zeta] = bounds(zetav)
% disp(zetav)
The values corresponding to the plotted ζ l;ines plot at their intersections with the root locus.
The ‘Result’ table shows only one value for ‘r’ for convenience. (It likely has a complex conjugate that you can easily calculate.)
.
0 comentarios
Ver también
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!