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 件のコメント

Paul
Paul 2021 年 3 月 22 日
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 2021 年 3 月 22 日
I want to evaluate sys(i,j) at s=j*w, but I don't know how to change s in a tf.

サインインしてコメントする。

 採用された回答

Paul
Paul 2021 年 3 月 22 日

1 投票

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 件のコメント

FEDERICO CIOL
FEDERICO CIOL 2021 年 3 月 22 日
Thanks. But how can I plot my freqresp?
Paul
Paul 2021 年 3 月 22 日
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

サインインしてコメントする。

その他の回答 (0 件)

質問済み:

2021 年 3 月 20 日

コメント済み:

2021 年 3 月 22 日

Community Treasure Hunt

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

Start Hunting!

Translated by