Transfer function from non linear ode
Ältere Kommentare anzeigen
Functions seem to be fine in laplace domain. Don't know how to obtain numerator and denominator for a single transfer function for requency response?
Thanks :)
clc
clear
syms a b c d y(t) Y(s) x(t) X(s) s t E(t)
assume([a b c d] > 0);
%assume(X(s) ~=0)
E(t) = 5*sin(t) ;
a = 1;
b = 2;
c = 3;
d = 4;
yp = diff(y,t);
ypp = diff(y,t,2);
eqn = (y*a)*ypp*E + b*yp^2 + c*yp + d == 0 ; % the ode
V = odeToVectorField(eqn); % to get two first order linear odes
M = matlabFunction(V,{'t','Y'});
eqn1 = V(1);
eqn2 = V(2);
eqn1LT = laplace(eqn1,t,s);
eqn2LT = laplace(eqn2,t,s);
eqn1LT = subs(eqn1LT,{laplace(y,t,s), subs(diff(y(t),t),t,0),laplace(x(t),t,s),y(0)},{Y(s), 0, X(s), 0})
eqn2LT = subs(eqn2LT,{laplace(y,t,s), subs(diff(y(t),t),t,0),laplace(x(t),t,s),y(0)},{Y(s), 0, X(s), 0})
1 Kommentar
Star Strider
am 18 Jul. 2022
‘Functions seem to be fine in laplace domain.’
They are not, really. If I remember correctly, Laplace transforms are only defined on linear differential equations with constant coefficients. Yours are nonlinear.
Probably the only way to approach this is to integrate it numerically with the input defined at specific times (use the ‘tspan’ input to define that as a vector) with the integrated result as the output.
Antworten (0)
Kategorien
Mehr zu Numerical Integration and Differential Equations finden Sie in Hilfe-Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

