How to calculate the norm of the transfer function in frequency domain?

4 Ansichten (letzte 30 Tage)
To calculate the norm of the transfer function by substituting s=jω is troublesome, especially for some complicated transfer functions. Is there a way to calculate the norm directly? Thanks!
For example, transfer funciton:
Substituting s=jω,
then,
Thus we can plot the figure in frequency domain,
Matlab code:
omega=0:0.01:10;
G1_N=0.25e-2 .* omega .^ 2 + 0.1e1;
G1_D=((2 .* omega) - 0.15e0 .* (omega .^ 3)) .^ 2 + (0.1e1 + 0.5e-2 .* (omega .^ 4) - (omega .^ 2)) .^ 2;
G1=sqrt(G1_N ./ G1_D);
plot(omega,G1)

Akzeptierte Antwort

William Rose
William Rose am 13 Mär. 2022
You don't need to multiply the function by its complex conjugate to get a purely real denominator. Just divide complex numerator by the complex denominator, to get a new complex number, and take the abs() of it.
  3 Kommentare
Cola
Cola am 14 Mär. 2022
Bearbeitet: Cola am 14 Mär. 2022
@William Rose Thank you so much.
William Rose
William Rose am 14 Mär. 2022
@Cola, you're welcome, and good luck with your work.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

Paul
Paul am 13 Mär. 2022
Check out
doc tf
to learn how to create a transfer function (tf) object. Once you have G(s) defined as a tf object use bode() to compute its magnitude (and phase if desired)
doc bode
  3 Kommentare
Paul
Paul am 13 Mär. 2022
Actually, I was thinking of the Control System Toolbox. I'm not famiiar with the System ID toolbox.
If just wanting to use base Matlab, I'd probably use polyval().
Cola
Cola am 14 Mär. 2022
Bearbeitet: Cola am 14 Mär. 2022
@Paul @William Rose Thanks to you. And we also can use the order 'freqs' to calculate the norm.

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Dynamic System Models finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by