Strange result in ilaplace()

7 views (last 30 days)
Daniel Caliari
Daniel Caliari on 12 Feb 2017
Commented: Walter Roberson on 1 Apr 2024
Hi! I'm trying to make inverse laplace transform, but clearly the result is wrong because the expression don't even has the time variable. Could someone help me?
syms Kp Ki Kd s time
plant = 1/(s^3 + 9*s^2 + 23*s + 15);
controler = Kp + Kd*s + Ki/s;
system_laplace = simplify((plant * controler)/(1 + plant * controler));
system_time = ilaplace(system_laplace, s, time)

Accepted Answer

Star Strider
Star Strider on 12 Feb 2017
It’s not strange. It’s just that you have a transfer function that’s not possible to invert. Just before the ilaplace call, I added:
system_laplace = partfrac(system_laplace, s, 'FactorMode', 'full')
since that can allow inversion in situations where ilaplace otherwise fails. It didn’t work with your system.
You probably need to do your analysis in the Control System Toolbox. See the documentation for the tf function, since it will allow you to enter your equations as you have entered them here:
  • s = tf('s') to specify a TF model using a rational function in the Laplace variable, s.
  7 Comments
Daniel Caliari
Daniel Caliari on 12 Feb 2017
I guess would be bether break the expression in parts and calculate they separately.
Thanks for all help that you all gave me!
Star Strider
Star Strider on 12 Feb 2017
Our pleasure!

Sign in to comment.

More Answers (1)

Walter Roberson
Walter Roberson on 12 Feb 2017
Answer is in the attached file (too large to paste content on my phone)
  11 Comments
Sam Chak
Sam Chak on 1 Apr 2024
Hi @乐天,
Considering that the inverse Laplace transform 'ilaplace()' needs to account for the general response of the 3rd-order system, it is important to note that this may result in having one real eigenvalue and two complex eigenvalues. These complex eigenvalues indicate a linear combination of sine and cosine functions, resulting in an oscillating response. Consequently, the analytical solution in the time-domain can be lengthy and complex.
However, if the design parameters are carefully chosen to ensure that the 3rd-order system produces 3 real eigenvalues, you will be delighted to see a more concise and compact analytical solution.
By the way, this syntax produces an error message.
Walter Roberson
Walter Roberson on 1 Apr 2024
syms s kp ki v t w
v = 220*sqrt(2);
num = w*v*kp*s + w*v*ki;
den = s^3 + w*s^2 + w*v*kp*s+w*v*ki;
G = num/den;
G_1 = G*(100*pi/s);
iG_1 = ilaplace(G_1)
rewrite(rewrite(iG_1, "expandsum"), "expandroot")

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!