I want to take the square root of a transfer function

7 ビュー (過去 30 日間)
Calum
Calum 2025 年 2 月 20 日
コメント済み: Yifeng Tang 2025 年 2 月 25 日
I am trying to plot a completely real transfer function
my current implementation is using:
s=tf('s')
w2=-(s)^2
Where w2 represents .
I am trying to implement the root with the sqrt function, however it is saying.
Incorrect number or types of inputs or outputs for function sqrt.
This transfer function needs to be multiplied by other (complex) transfer functions later in the project.
Is this the best way to implement it or is there another approach I could try?
  5 件のコメント
Sam Chak
Sam Chak 2025 年 2 月 21 日
I believe that the graph the OP wishes to plot is referred to as Displacement Transmissibility, which is commonly used in mechanical engineering to design structures that isolate vibrations, such as car suspension systems. I am not a mechanical engineer; perhaps @Yifeng Tang can assist in verifying this.
Yifeng Tang
Yifeng Tang 2025 年 2 月 25 日
Integrating the area under the Bode curve is indeed related to Transmissibility as Sam Chak pointed out. I don't think it's necessary to take the square root of the transfer function itself though. It's the norm/magnitude of the transfer function after replace "s" with , j being the imaginary number. Square root may show up when calculating the magnitude, but not on the transfer function itself.

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

回答 (1 件)

Sam Chak
Sam Chak 2025 年 2 月 21 日
Unlike plotting time responses using the step() and lsim() functions, or first solving the ordinary differential equations using dsolve() and ode45(), plotting the steady-state response as a function of the driving frequency is relatively straightforward because the function defines a fixed relationship between the input and output. It is a form of what-you-see-is-what-you-get, where the output magnitude appears as it would when the input frequency is fed into the transfer function.
w = linspace(0.1, 100, 10001); % Angular Frequency
b = (0.2*w)./sqrt((1 + w.^2).*(w.^4 - 1.51*w.^2 + 1));
semilogx(w, b), grid on
xlabel('Angular Frequency (rad/s)')
ylabel('Amplitude')
title ('Frequency Response')

カテゴリ

Help Center および File ExchangeVibration Analysis についてさらに検索

タグ

製品


リリース

R2024b

Community Treasure Hunt

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

Start Hunting!

Translated by