How to calculate the norm of the transfer function in frequency domain?
11 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Cola
el 13 de Mzo. de 2022
Comentada: William Rose
el 14 de Mzo. de 2022
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:
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/925069/image.png)
Substituting s=jω,
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/925074/image.png)
then,
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/925079/image.png)
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/926079/image.png)
Thus we can plot the figure in frequency domain,
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/925089/image.png)
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)
0 comentarios
Respuesta aceptada
William Rose
el 13 de Mzo. de 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 comentarios
Más respuestas (1)
Paul
el 13 de Mzo. de 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 comentarios
Paul
el 13 de Mzo. de 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().
Ver también
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!