Substitute s for jw in a transfer function
166 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Inés Bodoque
el 11 de En. de 2021
Comentada: Inés Bodoque
el 11 de En. de 2021
Hi, I have a transfer function define by
G = ([1 2],[3 4 5]) (as an example)
I want to change the 's' for 'jw'. Does anyone know how to do it?
I've tried subs(G,{s},{1j*omega}) but it didn't work.
0 comentarios
Respuesta aceptada
Jon
el 11 de En. de 2021
Hi,
I think you mean that you define your transfer function using (you forgot the tf() in your example)
G = tf([1 2],[3 4 5]) %(as an example))
Then if you want to evaluate it at a particular frequency, that is a specific value of jw, you can use
w = 3; % for example 3 radians/sec
val = evalfr(G,j*w)
You can also use the freqresp function to evaluate it for multiple values along the jw axis
2 comentarios
Jon
el 11 de En. de 2021
If as Pat suggest you don't have the Control System Toolbox, you can do this a little more neatly using
num = [1,2]
den = [3,4,5]
w = 3; % for example 3 rad/s
val = polyval(num,j*w)/polyval(den,j*w)
You can also use i*w MATLAB defines by default i and j as sqrt(-1)
Más respuestas (1)
Pat Gipper
el 11 de En. de 2021
Matlab uses the reserved constant "i" which is set equal to sqrt(-1). Using your transfer function as defined try the following which will result in the variable "G" which will be a complex number.
num=1*i*w+2;den=3*(i*w)^2+4*i*w+5;G=num/den;
2 comentarios
Pat Gipper
el 11 de En. de 2021
Editada: Pat Gipper
el 11 de En. de 2021
Based on some of your other questions it looks like you don't have access to the Control Systems Toolbox. So you need to do this arithmetic explicitly.
Ver también
Categorías
Más información sobre Dynamic System Models 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!