
实验目的:
1、掌握利用Matlab计算拉普拉斯正反变换的方法;
2、掌握如何利用Matlab求部分分式展开的系数。
实验原理:
1、拉普拉斯正反变换
Matlab的符号数学工具箱中提供了计算Laplace正反变换的函数laplace和ilaplace,其调用形式分别为:
和
上述两个式中,右端的和应分别为系统的时域表示式和s域表示式
符号表示式。
需要注意的是符号数学工具箱给出的结果也是解析表达式(其中可以带上尚为未知的参数符号),而并非一般的以向量来表示的数值结果。
2、 部分分式展开法求拉普拉斯逆变换
利用Matlab中的residue函数可以实现将s域表示式的部分分式展开式,其调用形式为:
其中,和分别为分子多项式和分母多项式的系数向量(num=numerator,den=denominator),为所得部分分式展开项的系数量,为极点,为直流分量。
如果=[1 2];=[1 4 3 0];
运行的结果为:
r=-1/6 -1/2 2/3
p=-3 -1 0
k=[]
即得F(s)可以展开为:
再由基本得Laplace变换对可知,F(s)得反变换为:
注意:如果分母不是多项式而是因子相乘的形式,我们可以利用conv函数将其转换为多项式的形式,如分母为,则den=conv([1 1],[1 2])。
实验内容:
一、利用Matlab程序求的Laplace变换:
1、
| 程序代码: |
| >> syms t f=heaviside(t); F=laplace(f) |
| 输出结果: |
| F =1/s |
| 程序代码: |
| >> syms t f=t*exp(-3*t)*heaviside(t); F=laplace(f) |
| 输出结果: |
| F =1/(s + 3)^2 |
| 程序代码: |
| >> syms t a f=exp(-t)*sin(a*t)*heaviside(t); F=laplace(f) |
| 输出结果: |
| F =a/((s + 1)^2 + a^2) |
1、
| 程序代码: |
| >> syms s F=1/(s+1); f=ilaplace(F) |
| 输出结果: |
| f =exp(-t) |
| 程序代码: |
| >> syms s F=s^2/(s^2+1); f=ilaplace(F) |
| 输出结果: |
| f =dirac(t) - sin(t) |
| 程序代码: |
| >> syms s F=(s+2)/(s^3+4*s^2+3*s); f=ilaplace(F) |
| 输出结果: |
| f =2/3 - exp(-3*t)/6 - exp(-t)/2 |
1、
| 展开程序代码: | 反变换代码: |
| >> num=[1 5 9 7]; den=[1 3 2]; [r,p,k]=residue(num,den) | >> syms s F=(s^3+5*s^2+9*s+7)/(s^2+3*s+2); f=ilaplace(F) |
| 展开结果: | 反变换结果: |
| r = -1 2 p = -2 -1 k = 1 2 | f =2*exp(-t) - exp(-2*t) + 2*dirac(t) + dirac(1, t) |
| 展开程序代码: | 反变换代码: |
| >> num=[2 3 0 5]; den=conv([1 1],[1 1 2]); [r,p,k]=residue(num,den) | >> syms s F=(2*s^3+3*s^2+5)/ ((s+1)*(s^2+s+2)); f=ilaplace(F) |
| 展开结果: | 反变换结果: |
| r =-2.0000 + 1.1339i -2.0000 - 1.1339i 3.0000 + 0.0000i p = -0.5000 + 1.3229i -0.5000 - 1.3229i -1.0000 + 0.0000i k =2 | f=3*exp(-t)+2*dirac(t)-4*exp(-t/2)*(cos((7^(1/2)*t)/2) + (3*7^ |
| 展开程序代码: | 反变换代码: |
| >> num=[1 -2]; den=conv(conv([1 1],[1 1]),conv([1 1],[1 3 1])); [r,p,k]=residue(num,den) | >> syms s F=(s-2)/ ((s+1)^3*(s^2+3*s+1)); f=ilaplace(F) |
| 展开结果: | 反变换结果: |
| r = -0.4875 5.0000 2.0000 3.0000 -4.5125 p =-2.6180 -1.0000 -1.0000 -1.0000 -0.3820 k = [] | f=5*exp(-t)+2*t*exp(-t)+(3*t^2*exp(-t))/2-5*exp(-(3*t)/2)*(cosh((5^(1/2)*t)/2)+ (9*5^(1/2)*sinh((5^(1/2)*t)/2))/25) |
求该系统的单位阶跃响应表达式并画出其波形图。
>> syms s
F=(4*s^2+4*s+4)/(s^4+3*s^3+2*s^2);
f=ilaplace(F)
f =
2*t + 4*exp(-t) - 3*exp(-2*t) - 1
>> t=0:0.01:2*pi;
b=[4 4 4];
a=[1 3 2 0];
sys=tf(b,a);
y=step(sys,t);
plot(t,y);
xlabel('t')
ylabel('y(t)')
| title('阶跃响应') | 波形图: |
