Find Transfer Function from Laplace transformation

13 次查看(过去 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.

产品

Community Treasure Hunt

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

Start Hunting!

Translated by