Deriving the transfer function from a data set that has magnitude,phase and omega
27 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Hello,
I have this dataset that contains magnitude, phase and omega of a transfer function. I can bodeplot it but I need to derive the transfer function from it. Please help.
Thanks
0 comentarios
Respuestas (1)
Paul
el 16 de Sept. de 2022
Hi George,
I plotted the data and it looks like the data comes from a transfer function where the degree of the denominator is two more than the degree of the numerator.
First, store the data in an frd object. Then try using tfest to find the transfer function that fits the data. It should work very well.
If you have any trouble, feel free to come back, show your code, and and ask more questions.
14 comentarios
Paul
el 17 de Sept. de 2022
Strictly speaking, the formula only applies for a second order system. For example, with zeta = 0.2 and Kdc = 1, we would expect to have
Kdc = 1;
zeta = 0.2;
Mr = 1/2/zeta/sqrt(1-zeta^2)
20*log10(Mr)
And we do
bode(tf(1,[1 2*zeta*1 1]),tf(Mr))
If the transfer function is not second order, the formula might still be a very good approximation if the additional poles and zeros are at higher frequency than that of the dominant second order poles. For example, let's add a zero at s= -10 and a pole at s = -20, which don't have much impact on the low-frequency response and don't really affect the Mr
bode(tf([1/10 1],conv([1/20 1],[1 2*zeta*1 1])),tf(Mr),logspace(-1,1,500))
In your transfer function, the dominant second order poles are at ~4.45 rad/sec, but the transfer function has a zero at s = -0.1, which is smaller than the frequency of the dominant poles. That zero has a sigificant impact on the low frequency portion of the Bode plot (and the overshoot of the step response as illuatrated above by @Sam Chak), so the formula doesn't apply.
Ver también
Categorías
Más información sobre Get Started with Control System Toolbox en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!