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

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!

 Accepted 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)

4 Comments

Thanks! the script works perfectly.
one small question, can you explain the following line of code; Thanks again!
LDETF = simplify( LDE, 'Steps',250) %What is 'Steps', 250
As always, my pleasure!
The simplify function simplifies the argument expression. The 'Steps' name-value pair tells it to keep iterating until it cannot simplify it further, the limit here being 250 simplification steps.

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!