MATLAB Answers

0

Help with Inverse Laplace Transform Function

Asked by Zachariah Ingram on 17 Oct 2017
Latest activity Answered by Walter Roberson
on 26 Oct 2017
If I run the following code, I get an answer.
n = 5;
ku = 1;
syms s;
HDs = (ku^n)/(s*(ku+s)^n);
sim_data = ilaplace(HDs,s,0.1);
sim_data = 1 - (265241*exp(-1/10))/240000;
However, if n is a decimal, such as 5.1, the inverse laplace function doesn't work.
n = 5.1;
ku = 1;
syms s
HDs = (ku^n)/(s*(ku+s)^n)
sim_data = ilaplace(HDs,s,0.1)
sim_data = ilaplace(1/(s*(s + 1)^(51/10)), s, 1/10)
I need to be able to calculate the inverse laplace transform for decimal values of n. Please help.

  0 Comments

Sign in to comment.

Tags

2 Answers

回答者: Aveek Podder 2017 年 10 月 26 日

Hi,
The ilaplace function computes the analytic closed inverse Laplace form of a transfer function. It seems that mathematically a closed inverse Laplace form for this function cannot be found out, so ilaplace function is returning the input transfer function.
There is a community submission at MathWorks File Exchange which numerically approximates an inverse Laplace transform for any function of "s". I will encourage you to have a look at the submission. However, in case you have any query regarding the submission you have to get in touch with the owner of the submission.

  0 Comments

Sign in to comment.


回答者: Walter Roberson
2017 年 10 月 26 日

For positive ku and n, and non-negative t, the inverse laplace apparently works out as
((-1-n)*igamma(1+n, ku*t)+ku^n*t^n*exp(-ku*t)*(1+n)+gamma(2+n))/gamma(2+n)

  0 Comments

Sign in to comment.