problems with using the laplace transform
6 次查看(过去 30 天)
显示 更早的评论
hello everyone,
I am trying to plot a system response (y(t)) to an input of u(t)=t*1(t).
The laplace transform of u(t) is U(s)=L{u(t)}= 1/(s^2).
The system is represented in terms of transfer function G(s) = 2/(s^3+5*s^2+4*s+2);
I am trying to create Y(S)=G(s)*U(s) and then convert it to the time domain by ilaplace(Y(s)).
I can't understand why it doesn't work. I get an error:
please help...
clear all
close all
clc
syms t y1(t) s Y1(s)
G_cl_1=2/(s^3+5*s^2+4*s+2);
Y1=G_cl_1*(1/(s^2)); %Finding the Output y(t) while using Laplace Transform
y1=ilaplace(Y1); %Converting Y1(s) to the time space using Opposite Laplace Transform
ezplot (y1)
0 个评论
采纳的回答
Star Strider
2018-12-28
First, specify ‘Y1’ and ‘y1’ as functions in your code.
Second, use the vpa function to simplify ‘y1’ so ezplot (or fplot) can plot it.
syms t y1(t) s Y1(s)
G_cl_1=2/(s^3+5*s^2+4*s+2);
Y1(s) = G_cl_1*(1/(s^2)); %Finding the Output y(t) while using Laplace Transform
y1(t) = ilaplace(Y1, s, t); %Converting Y1(s) to the time space using Opposite Laplace Transform
y1 = vpa(y1)
ezplot (y1, [-3 -1])
That works for me. (I specified the limits for ezplot to provide a representative part of the curve. Choose whatever limits you want.)
2 个评论
Star Strider
2018-12-30
As always, my pleasure.
Using:
y1 = vpa(y1, 10)
(to make the constants a bit more tractable without losing significant precision), I get:
y1(t) =
t + 0.008162161899*exp(-4.152757602*t) + 1.991837838*exp(-0.423621199*t)*cos(0.5496842464*t) - 0.222527365*exp(-0.423621199*t)*sin(0.5496842464*t) - 2.0
Does that come closer to what you are expecting? To create an anonymous function from it, use the matlabFunction function.
(I am using R2018b. There could be differences with older versions.)
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Mathematics and Optimization 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!