关于拉普拉斯变换的那些事
拉普拉斯变换在许多工程技术和科学研究领域中有着广泛的应用,特别是在力学系统、电学系统、自动控制系统、可靠性系统以及随机服务系统等系统科学中都起着重要作用。本文大概写了一下常用的拉普拉斯变换技巧,非常的详细,我感觉任何人都能看懂。 本文约5200字,阅读时间22分钟。
拉普拉斯变换概述
说到拉普拉斯变换,就不得不提到奥列弗·赫维赛德。不得不说这位更是重量级,尽管大家可能不认识他,但是大家一定知道Heaviside()
函数(在Mathematica中是HeavisideTheta[]
函数),这就是所谓的单位阶跃函数,我们一般简写为
......扯远了,那么什么是拉普拉斯变换呢?我们都知道傅里叶变换很好用,但是要用它就必须得满足狄利特雷条件,其中有一条就是
容易发现,
拉普拉斯变换需要讨论收敛域的问题。我们把让上述无穷积分收敛的
拉普拉斯变换性质
设
拉普拉斯变换常用的性质有:
时域性质
时移性质:
需要注意到: 、 、 是互不相同的。压扩(相似)性质:
线性性质
时域微分性质:
如果
为因果信号,即 ,那么: 我们看出这个形式和前面所说的”微分算子“有异曲同工之妙。这也是用拉普拉斯变换解微分方程的基础。时域积分性质:
频域性质
频移性质:
请注意和时移性质之间的区别。时间变成 ,乘的指数因子也是 ,但是频域变成 后,乘的指数因子却是 ,符号不同。频域微分性质:
同样,注意符号。一般的,有:频域积分性质:
其它定理
对于卷积运算,有卷积性质:
- 时域卷积
- 频域卷积
频域卷积很少用到。
此外,还有终、初值定理:
初值定理
终值定理
常用拉普拉斯变换表
原函数 | 像函数 |
---|---|
就一个?没错。因为其它的常用的基本上都能用性质推导出来。
由频域微分性质
,将 代入,可得:由频移性质
可得:对
的拉普拉斯变换应用频移性质,有:由
运用 的拉普拉斯变换,可得由
得
虽说如此,表格还是需要的。现归纳如下:
原函数 | 像函数 |
---|---|
多项式分式的拉普拉斯逆变换
一个有理真分式形式的拉普拉斯变换式可以写成:
基于代数方程的理论,上面的式子可以写成:
单根
单根对应的小分式为:
这个小分式对应的原函数是
举例如下:
【例】计算下式的拉普拉斯反变换
【解】首先计算极点。打开计算器,按顺序输入:设置 8 2 3,进入求解三次多项式方程的页面。输入1 = 6 = 1 1 = 6,将分母的多项式输入计算器。按=,即可得到三个根为: 于是 可以写为: 我们看到都是单根,于是继续进行求解。 按计算器设置 1返回计算模式。依次在键盘上输入- 1 STO (-)[即A],屏幕上显示
1
2
-1 -> A
-1意思是给变量A赋值为-1.
按AC,在计算器上输入
,即: 按=,屏幕上的结果即为 如法炮制,可以计算出
则原函数为
共轭复根
共轭复根对应的小分式为:
【例】求解下式的拉普拉斯反变换:
【解】按照上题的办法用计算器求解极点,得极点: 于是原式可以写为: 下面求 .按设置 2进入复数计算模式,按- 1 + ENG 输入 ,按STO (-)存入变量A中。输入 按=,屏幕上显示计算结果为 . 按shift 设置 ↓ 2 2将复数显示切换为模长-幅角形式,屏幕上显示:
,这里的单位是度。按shift 设置 2 2把角度单位改为弧度,屏幕上显示 . 那么对应的原函数为
多重根
【例】求解下式的拉普拉斯反变换:
【解】因为题目已经帮我们因式分解好了,于是我们直接拆开: 很容易计算,为 。 对等式两端同时乘以
,有: 将 代入得 在计算器中输入:
按等号,得 . 于是原函数为
运算电路
运算电路说的就是在RLC电路中,通过把元件的时域
电阻
形式不变,仍为
电容
如果电容的值为
电感
如果电感的值为
系统函数与响应的分解
在拉普拉斯变换下,系统函数有两种定义。
基于单位冲激响应的定义:
基于一般激励的零状态响应的拉普拉斯变换
和激励的拉普拉斯变换 的比值的定义:
在之前的学习中,我们学过响应可以分为自由响应、强迫响应、暂态响应、稳态响应等部分,我们可以以拉普拉斯变换的视角来重新看待这些概念。
假设系统函数和输入激励只含一阶零极点,即:
于是系统响应的拉普拉斯变换
自由响应和强迫响应
我们可以看到,左边的求和式
暂态响应和稳态响应
我们将
系统框图
在之前的推文中其实我介绍了一种绘制系统框图的技术。现在我们来介绍一种基于拉普拉斯变换的,更简单的技术。
对于微分方程系统(
系统幅相频特性和波特图
系统幅相频特性就是系统的响应随着输入信号频率的变化而变化的性质,而我们常用波特图来进行描述。波特图是一种比较特殊的绘图方式,其纵轴为
一般来说,线性时不变系统的传递函数可以写作:
用
幅频波特图
常数因子
即
对应的图像如下:
因子(零零点因子)
即
对应的图像如下:
一般一阶零点因子
即
可以变形为:
其中
我们观察幅频特性,它并不是一个非常容易画的函数。但是我们感性认识一下,发现它应该近似于一个线性函数。我们取零点为
1 |
|
我们发现它近似于一个与
如法炮制,绘制相频曲线:
1 |
|
以上两个图的横轴是
于是,我们可以得到近似画法:
极点因子
即:
可以变形为:
这个其实就是前面一阶零点的相反数,也就不需要再拿软件画图看性质了。这里的
作图的一般流程
首先求出各零、极点,将网络函数写成
的形式。提取各零、极点因子的常数项,把零点和极点转换成
,把它们都变成 、 的形式。这时,有: 其中:根据叠加原理,结合上面各个因子的图像画出波特图。
系统稳定性的判断
在6.2 暂态响应和稳态响应中,我们讨论过系统零极点的位置对系统的响应的影响。即:
首先基于
的阶次进行分析。其中 是 阶多项式, 是 阶多项式。如果
,系统一定存在一个无穷远点处的极点。基于这个事实,有以下系统稳定的必要条件: 是系统稳定的必要条件 时,系统一定不稳定
因此,我们在前面几乎只讨论
的系统。基于分母多项式的根的分布判别
必要条件
的所有系数都同号 不缺项,或者缺全部的奇次或偶次项
上面两个条件是必要条件,只要任一条件不被满足,系统就不是稳定的。但是即使全部满足,系统也不一定稳定。例如:
劳斯判据
劳斯判据就是列劳斯表,然后看第一列是不是全同号。劳斯表是这样列的:
前两行,第一行从前往后是
,直到下标小于 ;第二行,是 ,直到下标小于 。设劳斯表第 行第 列的元素是 ,在第三行之后,有: 如果出现 ,那就把它替换成一个 极小量,然后继续算。 我写了个代码来进行这个过程:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84#include <cstdio>
#include <cstring>
#include <cmath>
#include <set>
#include <queue>
#include <stdlib.h>
#include <algorithm>
#define LL long long
#define MAXN 100+10
const double eps = 1e-8;
using namespace std;
double hls(double aa, double ab, double ba, double bb) {
/*
aa ab
ba bb
*/
return aa * bb - ab * ba;
}
double sgn(double x) {
return x > 0.0 ? 1.0 : -1.0;
}
double epsilon = 0.01;
int main() {
int n;
printf("输入多项式的次数:");
scanf("%d", &n);
double a[MAXN], lis[MAXN][MAXN];
printf("从低到高输入系数:");
for (int i = 0; i <= n; ++i)
scanf("%lf", &a[i]);
int lincnt;
for (int i = 1; i <= n + 1; ++i) {
if (i == 1) {
for (int j = 1; (n - (2 * (j - 1)) >= 0); ++j) {
lis[i][j] = a[n - (2 * (j - 1))];
lincnt = j;
}
} else if (i == 2) {
for (int j = 1; j <= lincnt; ++j) {
if (n - (2 * j - 1) >= 0) lis[i][j] = a[n - (2 * j - 1)];
else lis[i][j] = 0;
}
} else {
int flag = 1, j = 1;
for (j = 1; j <= lincnt; ++j) {
lis[i][j] = hls(lis[i - 2][1], lis[i - 2][j + 1], lis[i - 1][1], lis[i - 1][j + 1]) / (-lis[i - 1][1]);
if (fabs(lis[i][j]) < eps) {
if (j == 1)
lis[i][j] = epsilon;
} else {
flag = 0;
}
}
if (flag == 1) {
printf("第 %d 行全为0,系统不稳定,判定结束。\n", i);
return 0;
}
}
}
for (int i = 1; i <= n + 1; ++i) {
printf("\"%d\"", i);
for (int j = 1; j <= lincnt; ++j) {
printf("%+8.2f", lis[i][j]);
}
printf("\n");
}
int f = sgn(lis[1][1]);
for (int i = 2; i <= n + 1; ++i) {
if (sgn(lis[i][1]) != f) {
printf("第 %d 行出现异号,不稳定.\n", i);
return 0;
}
}
printf("稳定。\n");
return 0;
}例如,对于
,输入1
24
4 3 8 2 1输出:
1
2
3
4
5
6"1" +1.00 +8.00 +4.00
"2" +2.00 +3.00 +0.00
"3" +6.50 +4.00 -0.00
"4" +1.77 +0.00 -0.00
"5" +4.00 -0.00 -0.00
稳定。对于
,输入1
24
5 4 4 2 2输出
1
2
3
4
5
6"1" +2.00 +4.00 +5.00
"2" +2.00 +4.00 +0.00
"3" +0.01 +5.00 -0.00
"4" -996.00 +0.00 -0.00
"5" +5.00 -0.00 +0.00
第 4 行出现异号,不稳定.
本站的运行成本约为每个月5元人民币,如果您觉得本站有用,欢迎打赏: