Find Transfer Function from Laplace transformation

25 次查看(过去 30 天)
Hi! I want to find the transfer function from a laplace transformation of a differential equation. Specifically this is the example I am working:
m = 1;
e = 0.06;
O = 25;
s = 25;
h = 1+e*s;
f = m*e*O^2;
P = e*f;
d = 0.1;
z = e*d;
%%%%%%%%%%%%%%%
syms t z u(t) e h P
f = diff(u(t),t,2) + 2*z*diff(u(t),t) + u(t) + e*(u(t))^3 - h^2 *P*cos(h*t);
F = laplace(f);
%transfer fuction
-------------------
The laplace transformation gives me this:
F = e*laplace(u(t)^3, t, s) - subs(diff(u(t), t), t, 0) - s*u(0) + s^2*laplace(u(t), t, s) - 2*z*(u(0) - s*laplace(u(t), t, s)) + laplace(u(t), t, s) - (P*h^2*s)/(h^2 + s^2).
I dont know how to convert it to a simplier form to find the transfer function. Please if you know something, comment below.
Thank you!!!

采纳的回答

Anurag Ojha
Anurag Ojha 2024-6-18
Hi Christos
I have written MATLAB code to find a simpler form of the transfer function I have made use of some in built MATLAB functions. I have added those documentation at the end for your reference:
syms s U(s) u(t) e h P z
% Define the differential equation
f = diff(u(t), t, 2) + 2*z*diff(u(t), t) + u(t) + e*(u(t))^3 - h^2 *P*cos(h*t);
% Take the Laplace transform
F = laplace(f, t, s);
% Rearrange the terms to isolate the Laplace transform of the output variable
F = collect(F, laplace(u(t), t, s));
% Divide both sides by the Laplace transform of the input variable
H = F / U(s);
% Simplify the transfer function
H = simplify(H);
% Display the transfer function
disp(H);

更多回答(1 个)

Sam Chak
Sam Chak 2024-6-18
The differential equation has a dependent variable with nonlinearity u(t)³. Since nonlinear systems cannot be analyzed by Laplace transform, MATLAB will return the result in that format.

类别

Help CenterFile Exchange 中查找有关 Calculus 的更多信息

产品

Community Treasure Hunt

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

Start Hunting!

Translated by