Convert s in j*ω in a transfer function

Hi, in this code I want to replace the variable s with the complex j*ω
syms s;
m=100;
k=20;
c=0;
A=[m*s^2+c*s+k -s*c-k 0; -k-s*c m*s^2+s*2*c+2*k -s*c-k;0 -s*c-k m*s^2+s*c+k]
det=det(A);
AI=inv(A)
for i = 1:3
for j = 1:3
[nf,df] = numden(AI(i,j));
tfn = sym2poly(nf);
tfd = sym2poly(df);
sys(i,j) = tf(tfn,tfd);
end
end
AI is the stiffness matrix of a MDOF system in mechanics of vibration and I want to plot the displacement behaviour of the masses.
Thanks

2 comentarios

Paul
Paul el 22 de Mzo. de 2021
Replace s with j*w at what part of the process? It's straightforward to do that substitution in AI, but then sys will be incorrect? Or do you want to just evaluate sys at s = j*w? Or perhaps you want to do something else?
FEDERICO CIOL
FEDERICO CIOL el 22 de Mzo. de 2021
I want to evaluate sys(i,j) at s=j*w, but I don't know how to change s in a tf.

Iniciar sesión para comentar.

 Respuesta aceptada

Paul
Paul el 22 de Mzo. de 2021
No need to change anything in sys. It is a tf object and either freqresp() or bode() can evaluate sys at s = j*w
doc freqresp
doc bode

2 comentarios

FEDERICO CIOL
FEDERICO CIOL el 22 de Mzo. de 2021
Thanks. But how can I plot my freqresp?
Paul
Paul el 22 de Mzo. de 2021
bode without output arguments will make the plots for you. The magnitude and/or phase of the output of freqresp can be plotted vs w, typically using semilog
doc abs
doc angle
doc semilog

Iniciar sesión para comentar.

Más respuestas (0)

Preguntada:

el 20 de Mzo. de 2021

Comentada:

el 22 de Mzo. de 2021

Community Treasure Hunt

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

Start Hunting!

Translated by