后续陆续更新:传递函数讲解、工作点线性化、系统辨识、LMS
一、动态方程
一般控制系统的动态方程由系统输出变量及其导数与输入变量及其导数的关系式描述。
1.微分方程
微分方程,是指含有未知函数及其导数的关系式。一般控制系统可以用系统输出变量及其高阶导数与输入变量及其高阶导数描述。
故所建立的微分方程可以理解为输出量(因变量)关于输入量(自变量)以及时间的偏微分方程。
求解该微分方程可以理解为找出满足控制系统内部关系的输出量关于时间以及输入量的二元函数。
其动态方程可以用如下高阶微分方程描述,
a
n
y
n
+
a
n
−
1
y
n
−
1
+
.
.
.
+
a
0
=
b
m
u
m
+
b
m
−
1
u
m
−
1
+
.
.
.
+
b
0
a_ny^n+a_{n-1}y^{n-1}+...+a_0=b_mu^m+b_{m-1}u^{m-1}+...+b_0
anyn+an−1yn−1+...+a0=bmum+bm−1um−1+...+b0
2.差分方程
差分方程是指包含未知函数的差分及自变数的方程。在求微分方程的数值解时,常把其中的微分用相应的差分来近似(便于计算机求解),所导出的方程就是差分方程。
差分方程的一般形式为
a
n
y
(
k
+
n
)
+
.
.
.
+
a
1
y
(
k
)
+
a
0
=
b
m
u
(
k
+
m
)
+
.
.
.
+
b
1
u
(
k
)
+
b
0
a_ny(k+n)+...+a_1y(k)+a_0=b_mu(k+m)+...+b_1u(k)+b_0
any(k+n)+...+a1y(k)+a0=bmu(k+m)+...+b1u(k)+b0
无论是微分方程还是差分方程,其解析求解一般的比较困难的,且尚没有一般性的方法总结,故常常需要使用数值求解亦即计算机仿真。而为了方便计算机仿真,需对高阶的微(差)分方程进行化简,这里引入了状态空间以及传递函数用以描述。
二、状态空间
状态空间的引入可以使得原本的高阶微分(差分)方程转化为一组微分方程组的形式。进而可以更好的描述控制系统内部动态。且一般状态空间变量的个数等于高阶微分方程组的阶数(积分元器件个数)。
1.连续状态空间
一般高阶微分方程方程可以通过引入状态量转化为多个一阶微分方程组的形式。故常用一阶微分方程组来描述系统内部动态方程。
以 m m m 个输入, n n n 个输出控制系统为例(m≥n)(故有m个状态变量)
其动态方程可以用如下两个一阶微分方程组描述,其中,
状态方程为:
x
1
′
=
f
(
x
1
,
.
.
.
,
x
m
,
u
1
,
.
.
.
,
u
m
,
t
)
x
2
′
=
f
(
x
1
,
.
.
.
,
x
m
,
u
1
,
.
.
.
,
u
m
,
t
)
.
.
.
x
m
′
=
f
(
x
1
,
.
.
.
,
x
m
,
u
1
.
.
.
,
u
m
,
t
)
x
1
(
t
0
)
=
x
0
.
.
.
x
m
(
t
0
)
=
x
n
0
x_1'=f(x_1,...,x_m,u_1,...,u_m,t)\\ x_2'=f(x_1,...,x_m,u_1,...,u_m,t)\\...\\ x_m'=f(x_1,...,x_m,u_1...,u_m,t)\\x_1(t_0)=x_0...x_m(t_0)=x_{n0}
x1′=f(x1,...,xm,u1,...,um,t)x2′=f(x1,...,xm,u1,...,um,t)...xm′=f(x1,...,xm,u1...,um,t)x1(t0)=x0...xm(t0)=xn0
输出方程为:
y
1
=
f
(
x
1
,
.
.
.
,
x
m
,
u
1
,
.
.
.
,
u
m
,
t
)
y
2
=
f
(
x
1
,
.
.
.
,
x
m
,
u
1
,
.
.
.
,
u
m
,
t
)
.
.
.
y
n
=
f
(
x
1
,
.
.
.
,
x
m
,
u
1
.
.
.
,
u
m
,
t
)
y_1=f(x_1,...,x_m,u_1,...,u_m,t)\\ y_2=f(x_1,...,x_m,u_1,...,u_m,t)\\...\\ y_n=f(x_1,...,x_m,u_1...,u_m,t)
y1=f(x1,...,xm,u1,...,um,t)y2=f(x1,...,xm,u1,...,um,t)...yn=f(x1,...,xm,u1...,um,t)
一般线性控制系统可以描述为
x
˙
1
=
a
11
(
t
)
x
1
+
.
.
.
+
a
1
m
(
t
)
x
m
+
b
11
(
t
)
u
1
+
.
.
.
+
b
1
m
(
t
)
u
m
x
˙
2
=
a
21
(
t
)
x
1
+
.
.
.
+
a
2
m
(
t
)
x
m
+
b
21
(
t
)
u
1
+
.
.
.
+
b
2
m
(
t
)
u
m
.
.
.
x
˙
m
=
a
m
1
(
t
)
x
1
+
.
.
.
+
a
m
m
(
t
)
x
m
+
b
m
1
(
t
)
u
1
+
.
.
.
+
b
m
m
(
t
)
u
m
\dot{x}_1=a_{11}(t)x_1+...+a_{1m}(t)x_m+b_{11}(t)u_1+...+b_{1m}(t)u_m\\ \dot{x}_2=a_{21}(t)x_1+...+a_{2m}(t)x_m+b_{21}(t)u_1+...+b_{2m}(t)u_m\\...\\ \dot{x}_m=a_{m1}(t)x_1+...+a_{mm}(t)x_m+b_{m1}(t)u_1+...+b_{mm}(t)u_m
x˙1=a11(t)x1+...+a1m(t)xm+b11(t)u1+...+b1m(t)umx˙2=a21(t)x1+...+a2m(t)xm+b21(t)u1+...+b2m(t)um...x˙m=am1(t)x1+...+amm(t)xm+bm1(t)u1+...+bmm(t)um
y
1
=
c
11
(
t
)
x
1
+
.
.
.
+
c
1
m
(
t
)
x
m
+
d
11
(
t
)
u
1
+
.
.
.
+
d
1
m
(
t
)
u
m
y
2
=
c
21
(
t
)
x
1
+
.
.
.
+
c
2
m
(
t
)
x
m
+
d
21
(
t
)
u
1
+
.
.
.
+
d
2
m
(
t
)
u
m
.
.
.
y
n
=
c
n
1
(
t
)
x
1
+
.
.
.
+
c
n
m
(
t
)
x
m
+
d
n
1
(
t
)
u
1
+
.
.
.
+
d
n
m
(
t
)
u
m
y_1=c_{11}(t)x_1+...+c_{1m}(t)x_m+d_{11}(t)u_1+...+d_{1m}(t)u_m\\ y_2=c_{21}(t)x_1+...+c_{2m}(t)x_m+d_{21}(t)u_1+...+d_{2m}(t)u_m\\...\\ y_n=c_{n1}(t)x_1+...+c_{nm}(t)x_m+d_{n1}(t)u_1+...+d_{nm}(t)u_m
y1=c11(t)x1+...+c1m(t)xm+d11(t)u1+...+d1m(t)umy2=c21(t)x1+...+c2m(t)xm+d21(t)u1+...+d2m(t)um...yn=cn1(t)x1+...+cnm(t)xm+dn1(t)u1+...+dnm(t)um
以矩阵形式表达为
X
˙
=
A
(
t
)
X
(
t
)
+
B
(
t
)
U
(
t
)
Y
=
C
(
t
)
X
(
t
)
+
D
(
t
)
U
(
t
)
\dot{X}=A(t)X(t)+B(t)U(t)\\ Y=C(t)X(t)+D(t)U(t)
X˙=A(t)X(t)+B(t)U(t)Y=C(t)X(t)+D(t)U(t)
其中,
X
(
t
)
=
[
x
1
x
2
.
.
.
x
m
]
′
∈
m
×
1
X(t)=\begin{bmatrix} x_1 & x_2 &... & x_m \end{bmatrix}^{'}∈m\times1
X(t)=[x1x2...xm]′∈m×1为状态向量,
U
(
t
)
=
[
u
1
u
2
.
.
.
u
m
]
′
∈
m
×
1
U(t)=\begin{bmatrix} u_1 & u_2 &... & u_m \end{bmatrix}^{'}∈m\times1
U(t)=[u1u2...um]′∈m×1为输入向量,
Y
(
t
)
=
[
y
1
y
2
.
.
.
y
n
]
′
∈
n
×
1
Y(t)=\begin{bmatrix} y_1 & y_2 &... & y_n \end{bmatrix}^{'}∈n\times1
Y(t)=[y1y2...yn]′∈n×1为输出向量,
A
(
t
)
=
[
a
11
a
12
.
.
.
a
1
m
a
21
a
22
.
.
.
a
2
m
a
m
1
a
m
2
.
.
.
a
m
m
]
∈
m
×
m
A(t)=\begin{bmatrix} a_{11} & a_{12} &... & a_{1m}\\ a_{21} & a_{22} &... & a_{2m} \\a_{m1} & a_{m2} &... & a_{mm}\end{bmatrix}∈m\times m
A(t)=
a11a21am1a12a22am2.........a1ma2mamm
∈m×m为系统矩阵,
B
(
t
)
=
[
b
11
b
12
.
.
.
b
1
m
b
21
b
22
.
.
.
b
2
m
b
m
1
b
m
2
.
.
.
b
m
m
]
∈
m
×
m
B(t)=\begin{bmatrix} b_{11} & b_{12} &... & b_{1m}\\ b_{21} & b_{22} &... & b_{2m} \\b_{m1} & b_{m2} &... & b_{mm}\end{bmatrix}∈m\times m
B(t)=
b11b21bm1b12b22bm2.........b1mb2mbmm
∈m×m为控制矩阵,
C
(
t
)
=
[
c
11
c
12
.
.
.
c
1
m
c
21
c
22
.
.
.
c
2
m
c
n
1
c
n
2
.
.
.
c
n
m
]
∈
n
×
m
C(t)=\begin{bmatrix} c_{11} & c_{12} &... & c_{1m}\\ c_{21} & c_{22} &... & c_{2m} \\c_{n1} & c_{n2} &... & c_{nm}\end{bmatrix}∈n\times m
C(t)=
c11c21cn1c12c22cn2.........c1mc2mcnm
∈n×m为输出矩阵,
D
(
t
)
=
[
d
11
d
12
.
.
.
d
1
m
d
21
d
22
.
.
.
d
2
m
d
n
1
d
n
2
.
.
.
d
n
m
]
∈
n
×
m
D(t)=\begin{bmatrix} d_{11} & d_{12} &... & d_{1m}\\ d_{21} & d_{22} &... & d_{2m} \\d_{n1} & d_{n2} &... & d_{nm}\end{bmatrix}∈n\times m
D(t)=
d11d21dn1d12d22dn2.........d1md2mdnm
∈n×m为直接传输矩阵。
2.离散状态空间
对于上述用状态方程和输出方程描述的控制系统,可以通过迭代法求解处在特定控制信号下的输出信号。根据上一章所介绍的求解常微分方程组求解的方法可知,可以使用欧拉法或者龙格-库塔法进行相应的数值仿真。
而对应上述的连续状态空间方程,控制系统的一般离散状态空间方程可以表达为
X ( t 0 + Δ t ) = A ( t 0 ) X ( t 0 ) + B ( t 0 ) U ( t 0 ) Y ( t 0 + Δ t ) = C ( t 0 ) X ( t 0 + Δ t ) + D ( t 0 ) U ( t 0 ) X(t_0+\Delta t)=A(t_0)X(t_0)+B(t_0)U(t_0)\\ Y(t_0+\Delta t)=C(t_0)X(t_0+\Delta t)+D(t_0)U(t_0) X(t0+Δt)=A(t0)X(t0)+B(t0)U(t0)Y(t0+Δt)=C(t0)X(t0+Δt)+D(t0)U(t0)
而使用迭代法将上述微分方程离散化后,可得相应的差分方程。
以欧拉法为例,对应的差分方程为
X ( t 0 + Δ t ) = X ( t 0 ) + [ A ( t 0 ) X ( t 0 ) + B ( t 0 ) U ( t 0 ) ] ∗ Δ t Y ( t 0 + Δ t ) = C ( t 0 ) X ( t 0 + Δ t ) + D ( t 0 ) U ( t 0 ) X(t_0+\Delta t)=X(t_0)+[A(t_0)X(t_0)+B(t_0)U(t_0)]*\Delta t\\ Y(t_0+\Delta t)=C(t_0)X(t_0+\Delta t)+D(t_0)U(t_0) X(t0+Δt)=X(t0)+[A(t0)X(t0)+B(t0)U(t0)]∗ΔtY(t0+Δt)=C(t0)X(t0+Δt)+D(t0)U(t0)
可知根据欧拉法离散后的离散状态空间表达式跟连续状态空间表达式的关系。
三、传递函数
传递函数是指零初始条件下线性系统响应(即输出)量的拉普拉斯变换(或z变换)与激励(即输入)量的拉普拉斯变换之比。记作G(s)=Y(s)/U(s),其中Y(s)、U(s)分别为输出量和输入量的拉普拉斯变换。
系统的传递函数与描述其运动规律的微分方程是对应的。可根据组成系统各单元的传递函数和它们之间的联结关系导出整体系统的传递函数。
1.连续传递函数
用以描述时间上连续的控制系统的传递函数称为连续传递函数。在连续系统中,把初始值为零时,系统连续输出信号的拉普拉斯变换与连续输入信号的拉普拉斯变换之比,定义为连续传递函数。
其本质是一种积分变换(也是从复频域角度看因变量与自变量及时间的函数关系)。
对于单输入单输出被控系统,其时间连续传递函数一般可以描述为(m≥n),
G
(
s
)
=
b
n
s
n
+
b
n
−
1
s
n
−
1
+
.
.
.
+
b
0
a
m
s
m
+
a
m
−
1
s
n
−
1
+
.
.
.
+
a
0
G(s)=\frac{b_ns^n+b_{n-1}s^{n-1}+...+b_0}{a_ms^m+a_{m-1}s^{n-1}+...+a_0}
G(s)=amsm+am−1sn−1+...+a0bnsn+bn−1sn−1+...+b0
而对于一般传递函数的仿真模型通常是先将其离散化,即将连续传递函数转化为离散传递函数,而后进行仿真,一些较为常用转换方法将在下一章进行介绍。
2.脉冲(离散)传递函数
在离散系统中,把初始值为零时,系统离散输出信号的z变换与离散输入信号的z变换之比,定义为脉冲传递函数。
其本质是一种积分变换。可以理解为其与滤波器原理一致(后面在讲主动降噪方面时会着重讲解原理以及提供相关的代码)。
对于单输入单输出被控系统,其时间离散传递函数一般可以描述为(m≥n),
G
(
z
)
=
b
n
z
n
+
b
n
−
1
z
n
−
1
+
.
.
.
+
b
0
a
m
z
m
+
a
m
−
1
z
n
−
1
+
.
.
.
+
a
0
G(z)=\frac{b_nz^n+b_{n-1}z^{n-1}+...+b_0}{a_mz^m+a_{m-1}z^{n-1}+...+a_0}
G(z)=amzm+am−1zn−1+...+a0bnzn+bn−1zn−1+...+b0
对于一般信号经过该离散传函的仿真也一般以此形式进行仿真。
四、相互转换
描述线性系统动态特性的数学工具有很多。而上述所讲都是为了更加方便描述系统动态特性的方法,从最基本的高阶动态方程,借助积分变换方法引入的传递函数,再到借助状态变量引入的状态方程。这些都是为了更好的描述系统动态特性。
而各个描述方法之间的转换方法也有很多,具体各个方法将在下一章进行介绍。