inverse laplace transformation and plot of transfer function

4 views (last 30 days)
Hello! I have tranformed my state space model (A,B,C,D) into tranfer function (with [b,a]=ss2tf(A,B,C,D)). Now i would like to make an inverse laplace transformation and plot the time response function. Here are the b and a arrays:
b=[0,-1.387778780781446e-017, -2.775557561562891e-017, 3.333333333333329e-005]
a=[1.000000000000000e+000, 3.333333333333347e-003, 2.000000000000003e-002, 3.333333333333338e-005]
I've tried
syms s t
ht=ilaplace((b(1)*s^3+b(2)*s^2+b(3)*s+b(4))/(a(1)*s^3+a(2)*s^2+a(3)*s+a(4)),s,t)
Here is the result, but i dont think this version is any good for calculating further:
ht =
sum(exp(r3*t)/(200*(450*r3^2 + r3 + 3)), r3 in RootOf(s3^3 + s3^2/300 + s3/50 + 1/30000, s3)) - (1875*sum((r3^2*exp(r3*t))/(200*(450*r3^2 + r3 + 3)), r3 in RootOf(s3^3 + s3^2/300 + s3/50 + 1/30000, s3)))/4503599627370496 - (1875*sum((r3*exp(r3*t))/(200*(450*r3^2 + r3 + 3)), r3 in RootOf(s3^3 + s3^2/300 + s3/50 + 1/30000, s3)))/2251799813685248
I found another idea, using residue function, but i get complex values, which is bad i guess.
[r,p,k]=residue(b,roots(a))
r =
6.928671335525181e-006 -2.353880004317815e-004i
-6.928671335522289e-006 +2.353880004320759e-004i
p =
1.000138696401966e+000 -2.356491529868627e-002i
-2.081311986698723e-004 +1.178082550711977e-002i
k =
5.782411475014983e-019 +9.813589045919390e-017i
I would appreciate any help or solution, maybe it's a wrong direction?

Accepted Answer

Iman Ansari
Iman Ansari on 4 Jun 2013
Why residue(b,roots(a))?
b=[0,-1.387778780781446e-017, -2.775557561562891e-017, 3.333333333333329e-005];
a=[1.000000000000000e+000, 3.333333333333347e-003, 2.000000000000003e-002, 3.333333333333338e-005];
syms s
[r, p, k] = residue(b,a);
F=0;
for j=1:size(k,2)
F=F+k(j)*s^(size(k,2)-j);
end
for i=1:size(r,1)
F=F+r(i)/(s-p(i));
end
F
ilaplace(F)

More Answers (0)

Community Treasure Hunt

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

Start Hunting!