后续陆续更新:传递函数讲解、工作点线性化、系统辨识、LMS
控制系统的基本描述方法有动态方程、传递函数、状态方程三种。
而各种描述方法之间如何相互转换的方法也有很多。
而为了更好地进行计算机仿真,则需将控制系统离散化。
下一一介绍控制系统描述方法之间的转换以及各自离散化方法。
二、动态方程与状态方程相互转换
状态空间的引入可以使得原本的高阶微分(差分)方程转化为一组微分方程组的形式。进而可以更好的描述控制系统内部动态。且一般状态空间变量的个数等于高阶微分方程组的阶数(积分元器件个数)。
1.连续情况
1)动态方程→状态方程
一般高阶微分方程方程可以通过引入状态量转化为多个一阶微分方程组的形式。故常用一阶微分方程组来描述系统内部动态方程。此即状态方程的引入(微分方程的阶数一般为状态个数)。
一般单输入单输出的控制系统,其动态方程可以用如下高阶微分方程描述,(可将等式右边看为一个整体)
a
n
y
n
+
a
n
−
1
y
n
−
1
+
.
.
.
+
a
1
y
=
U
=
b
m
u
m
+
b
m
−
1
u
m
−
1
+
.
.
.
+
b
1
u
,
m
≤
n
a_ny^n+a_{n-1}y^{n-1}+...+a_1y=U=b_mu^m+b_{m-1}u^{m-1}+...+b_1u,m≤n
anyn+an−1yn−1+...+a1y=U=bmum+bm−1um−1+...+b1u,m≤n
通过选取如下状态量,(选取具有多样性)
x
1
=
y
x
2
=
x
˙
1
=
y
˙
.
.
.
x
n
=
x
˙
n
−
1
=
y
n
x_1=y\\ x_2=\dot x_1=\dot y \\...\\ x_n=\dot x_{n-1}=y^{n}
x1=yx2=x˙1=y˙...xn=x˙n−1=yn
其动态方程可以用如下
n
n
n 个一阶微分方程组描述,
x
˙
1
=
x
2
x
˙
2
=
x
3
.
.
.
x
˙
n
=
[
−
a
n
−
1
x
n
−
1
−
.
.
.
−
a
1
x
1
+
U
]
/
a
n
\dot x_1=x_2\\ \dot x_2=x_3\\...\\ \dot x_{n}=[-a_{n-1}x_{n-1}-...-a_1x_1+U]/a_{n}
x˙1=x2x˙2=x3...x˙n=[−an−1xn−1−...−a1x1+U]/an
以矩阵形式表达为
X
˙
=
A
X
(
t
)
+
B
U
\dot{X}=AX(t)+BU
X˙=AX(t)+BU
其中,
X
(
t
)
=
[
x
1
x
2
.
.
.
x
n
]
′
∈
n
×
1
X(t)=\begin{bmatrix} x_1 & x_2 &... & x_n \end{bmatrix}^{'}∈n\times1
X(t)=[x1x2...xn]′∈n×1为状态向量,
U
(
t
)
=
∈
1
×
1
U(t)=∈1\times1
U(t)=∈1×1为输入向量,
A
(
t
)
=
[
0
1
0
.
.
.
0
0
0
1
.
.
.
0
⋮
⋮
⋮
⋮
⋮
−
a
1
/
a
n
−
a
2
/
a
n
−
a
3
/
a
n
.
.
.
0
]
∈
n
×
n
A(t)=\begin{bmatrix} 0 &1&0&...&0\\ 0&0&1&...&0\\ \vdots& \vdots&\vdots&\vdots&\vdots&\\ -a_{1}/a_{n}&-a_{2}/a_{n}&-a_{3}/a_{n}&...&0\end{bmatrix}∈n\times n
A(t)=
00⋮−a1/an10⋮−a2/an01⋮−a3/an......⋮...00⋮0
∈n×n为系统矩阵,
B
(
t
)
=
[
0
0
⋮
0
1
]
∈
n
×
1
B(t)=\begin{bmatrix} 0\\0\\ \vdots\\0\\1 \end{bmatrix}∈n\times 1
B(t)=
00⋮01
∈n×1为控制矩阵。
2)状态方程→动态方程
而针对用以下 n n n 个一阶微分方程组状态方程描述的控制系统
x ˙ 1 = x 2 x ˙ 2 = x 3 . . . x ˙ n = [ − a n − 1 x n − 1 − . . . − a 1 x 1 + U ] / a n \dot x_1=x_2\\ \dot x_2=x_3\\...\\ \dot x_{n}=[-a_{n-1}x_{n-1}-...-a_1x_1+U]/a_{n} x˙1=x2x˙2=x3...x˙n=[−an−1xn−1−...−a1x1+U]/an
通过将各个状态量关于输出量的等式回代依阶数回代到最高阶等式中,可到原本的微分方程。
a
n
y
n
+
a
n
−
1
y
n
−
1
+
.
.
.
+
a
1
y
=
U
=
b
m
u
m
+
b
m
−
1
u
m
−
1
+
.
.
.
+
b
1
u
,
m
≤
n
a_ny^n+a_{n-1}y^{n-1}+...+a_1y=U=b_mu^m+b_{m-1}u^{m-1}+...+b_1u,m≤n
anyn+an−1yn−1+...+a1y=U=bmum+bm−1um−1+...+b1u,m≤n
2.离散情况
1)动态方程→状态方程
一般单输入单输出的控制系统,其动态方程可以用如下高阶差分方程描述,
a
n
y
(
k
+
n
)
+
a
n
−
1
y
(
k
+
n
−
1
)
+
.
.
.
+
a
1
y
(
k
)
=
b
m
u
(
k
+
m
)
+
.
.
.
+
b
1
u
(
k
)
a_ny(k+n)+a_{n-1}y(k+n-1)+...+a_1y(k)=b_mu(k+m)+...+b_1u(k)
any(k+n)+an−1y(k+n−1)+...+a1y(k)=bmu(k+m)+...+b1u(k)
通过选取如下状态量,(选取具有多样性)(这里采用前向差分法)
x
1
=
y
x
2
=
Δ
x
1
=
y
(
k
+
1
)
−
y
(
k
)
x
3
=
Δ
x
2
=
y
(
k
+
2
)
−
2
y
(
k
+
1
)
+
y
(
k
)
.
.
.
x
n
=
Δ
x
n
−
1
x_1=y\\ x_2=\Delta x_1 = y(k+1) - y(k)\\ x_3=\Delta x_2 = y(k+2)-2y(k+1)+y(k)\\...\\ x_n=\Delta x_{n-1}
x1=yx2=Δx1=y(k+1)−y(k)x3=Δx2=y(k+2)−2y(k+1)+y(k)...xn=Δxn−1
y ( k ) = x 1 y ( k + 1 ) = x 1 + x 2 y ( k + 2 ) = x 1 + 2 x 2 . . . y(k)=x_1\\ y(k+1)=x_1+x_2\\ y(k+2)=x_1+2x_2\\... y(k)=x1y(k+1)=x1+x2y(k+2)=x1+2x2...
其动态方程可以用如下
n
n
n 个一阶差分方程组描述,
Δ
x
1
=
x
2
Δ
x
2
=
x
3
.
.
.
Δ
x
n
=
[
−
q
n
−
1
x
n
−
1
−
.
.
.
−
q
1
x
1
+
U
]
\Delta x_1=x_2\\ \Delta x_2=x_3\\...\\ \Delta x_{n}=[-q_{n-1}x_{n-1}-...-q_1x_1+U]
Δx1=x2Δx2=x3...Δxn=[−qn−1xn−1−...−q1x1+U]
以矩阵形式表达为
Δ
X
=
A
X
(
k
)
+
B
U
\Delta{X}=AX(k)+BU
ΔX=AX(k)+BU
其中,
X
(
t
)
=
[
x
1
x
2
.
.
.
x
n
]
′
∈
n
×
1
X(t)=\begin{bmatrix} x_1 & x_2 &... & x_n \end{bmatrix}^{'}∈n\times1
X(t)=[x1x2...xn]′∈n×1为状态向量,
U
(
t
)
=
∈
1
×
1
U(t)=∈1\times1
U(t)=∈1×1为输入向量,
A
(
t
)
=
[
0
1
0
.
.
.
0
0
0
1
.
.
.
0
⋮
⋮
⋮
⋮
⋮
−
q
1
−
q
2
−
q
3
.
.
.
0
]
∈
n
×
n
A(t)=\begin{bmatrix} 0 &1&0&...&0\\ 0&0&1&...&0\\ \vdots& \vdots&\vdots&\vdots&\vdots&\\ -q_{1}&-q_{2}&-q_{3}&...&0\end{bmatrix}∈n\times n
A(t)=
00⋮−q110⋮−q201⋮−q3......⋮...00⋮0
∈n×n为系统矩阵,
B
(
t
)
=
[
0
0
⋮
0
1
]
∈
n
×
1
B(t)=\begin{bmatrix} 0\\0\\ \vdots\\0\\1 \end{bmatrix}∈n\times 1
B(t)=
00⋮01
∈n×1为控制矩阵。
对于上述用状态方程和输出方程描述的离散控制系统,则可以直接根据格式进行相应的仿真。
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)
2)状态方程→动态方程
用如下
n
n
n 个一阶差分方程组描述的离散控制系统,
Δ
x
1
=
x
2
Δ
x
2
=
x
3
.
.
.
Δ
x
n
=
[
−
q
n
−
1
x
n
−
1
−
.
.
.
−
q
1
x
1
+
U
]
\Delta x_1=x_2\\ \Delta x_2=x_3\\...\\ \Delta x_{n}=[-q_{n-1}x_{n-1}-...-q_1x_1+U]
Δx1=x2Δx2=x3...Δxn=[−qn−1xn−1−...−q1x1+U]
根据状态量和输出量之间如下的关系
x
1
=
y
x
2
=
Δ
x
1
=
y
(
k
+
1
)
−
y
(
k
)
x
3
=
Δ
x
2
=
y
(
k
+
2
)
−
2
y
(
k
+
1
)
+
y
(
k
)
.
.
.
x
n
=
Δ
x
n
−
1
x_1=y\\ x_2=\Delta x_1 = y(k+1) - y(k)\\ x_3=\Delta x_2 = y(k+2)-2y(k+1)+y(k)\\...\\ x_n=\Delta x_{n-1}
x1=yx2=Δx1=y(k+1)−y(k)x3=Δx2=y(k+2)−2y(k+1)+y(k)...xn=Δxn−1
可以得到如下形式的
n
n
n 阶差分方程
a
n
y
(
k
+
n
)
+
a
n
−
1
y
(
k
+
n
−
1
)
+
.
.
.
+
a
1
y
(
k
)
=
b
m
u
(
k
+
m
)
+
.
.
.
+
b
1
u
(
k
)
a_ny(k+n)+a_{n-1}y(k+n-1)+...+a_1y(k)=b_mu(k+m)+...+b_1u(k)
any(k+n)+an−1y(k+n−1)+...+a1y(k)=bmu(k+m)+...+b1u(k)
3.状态方程离散化
一般控制系统可由连续的状态方程和输出方程描述,且一般格式如下,
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 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)
可知根据欧拉法离散后的离散状态空间表达式跟连续状态空间表达式的关系。