Azzera filtri
Azzera filtri

Find Transfer Function from Laplace transformation

30 visualizzazioni (ultimi 30 giorni)
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!!!

Risposta accettata

Anurag Ojha
Anurag Ojha il 18 Giu 2024
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);

Più risposte (1)

Sam Chak
Sam Chak il 18 Giu 2024
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.

Prodotti

Community Treasure Hunt

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

Start Hunting!

Translated by