MATLAB: Obtain a transfer function form a 2nd order D.E. using the Lapalce Transforms

differential equationsMATLABsymbolictransfer function

Hello,
(Using MATLAB) Is it possible to obtain a transfer function H(s) from a 2nd order D.E. using the Laplace Transfroms?
The D.E. is; d^2y(t)/dt^2 + 7.6*dy(t)/dt + 4.2*y(t) = x(t)
Thanks!

Best Answer

It is, however it takes some effort and a bit of manual intervention in the end:
% d^2y(t)/dt^2 + 7.6*dy(t)/dt + 4.2*y(t) = x(t)
syms s t x(t) y(t) X(s) Y(s)
assume(X(s) ~= 0)
DE = diff(y,2) + 7.6*diff(y,1) + 4.2*y == x;
LDE = laplace(DE,t,s);
LDE = subs(LDE, {laplace(y, t, s), subs(diff(y(t), t), t, 0), laplace(x(t), t, s), y(0)},{Y(s), 0, X(s), 0})
LDETF = simplify( LDE, 'Steps',250)
LDETF = subs(LDETF,{X,Y},{1,1})
LDETF = ((5*s + 3)*(s + 7))/5
s = tf('s');
H = ((5*s + 3)*(s + 7))/5 % Copy ‘LDETF’ Result From Command Window & Paste Here
bode(H)