后续陆续更新:传递函数讲解、工作点线性化、系统辨识、LMS
控制系统的基本描述方法有动态方程、传递函数、状态方程三种。
而各种描述方法之间如何相互转换的方法也有很多。
而为了更好地进行计算机仿真,则需将控制系统离散化。
下一一介绍控制系统描述方法之间的转换以及各自离散化方法。
三、传递函数与状态方程相互转换
传递函数是指零初始条件下线性系统响应(即输出)量的拉普拉斯变换(或z变换)与激励(即输入)量的拉普拉斯变换之比。记作G(s)=Y(s)/U(s),其中Y(s)、U(s)分别为输出量和输入量的拉普拉斯变换。
1.连续情况
1)传递函数→状态方程
对于单输入单输出被控系统,其时间连续传递函数一般可以描述为(m≥n),
G
(
s
)
=
Y
(
s
)
U
(
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{Y(s)}{U(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)=U(s)Y(s)=amsm+am−1sn−1+...+a0bnsn+bn−1sn−1+...+b0
常见的转换方法有直接法、并联分解法、串联分解法。
直接法的原理是将传递函数先化为微分方程,而后选取不同的状态量,得到状态方程的能控或者能观标准型。
状态空间表达式的能控标准型的转化过程为
G
(
s
)
=
Y
(
s
)
U
(
s
)
=
Y
(
s
)
X
(
s
)
∗
X
(
s
)
U
(
x
)
=
b
n
s
n
+
b
n
−
1
s
n
−
1
+
.
.
.
+
b
0
1
∗
1
a
m
s
m
+
a
m
−
1
s
n
−
1
+
.
.
.
+
a
0
X
˙
=
A
X
+
B
U
=
[
0
1
0
⋯
0
0
0
1
⋯
0
⋮
⋮
⋮
⋱
⋮
−
a
0
/
a
m
−
a
1
/
a
m
−
a
2
/
a
m
⋯
−
a
m
−
1
/
a
m
]
X
+
[
0
0
⋮
1
]
U
Y
=
C
X
=
[
b
0
b
1
⋯
b
n
]
X
1
G(s)=\frac{Y(s)}{U(s)}=\frac{Y(s)}{X(s)}*\frac{X(s)}{U(x)} \\ ~\ \\ =\frac{b_ns^n+b_{n-1}s^{n-1}+...+b_0}{1}*\frac{1}{a_ms^m+a_{m-1}s^{n-1}+...+a_0}\\ ~\ \\ \dot X=AX+BU=\begin{bmatrix} 0&1&0&\cdots&0\\0&0&1&\cdots&0\\ \vdots&\vdots&\vdots&\ddots&\vdots\\ -a_{0}/a_{m}&-a_1/a_{m}&-a_2/a_{m}&\cdots&-a_{m-1}/a_{m} \end{bmatrix}X+\begin{bmatrix} 0\\0\\ \vdots\\1 \end{bmatrix}U\\ ~\ \\ Y=CX=\begin{bmatrix} b_0&b_1& \cdots&b_n \end{bmatrix}X1
G(s)=U(s)Y(s)=X(s)Y(s)∗U(x)X(s) =1bnsn+bn−1sn−1+...+b0∗amsm+am−1sn−1+...+a01 X˙=AX+BU=
00⋮−a0/am10⋮−a1/am01⋮−a2/am⋯⋯⋱⋯00⋮−am−1/am
X+
00⋮1
U Y=CX=[b0b1⋯bn]X1
其余能观标准型、并联分解法或串联分解法都是选取不同的状态量,从而使得矩阵 A B C ABC ABC 的改变。(原理都类似)
2)状态方程→传递函数
以以下控制系统的能控标准型为例,
X
˙
=
A
X
+
B
U
=
[
0
1
0
⋯
0
0
0
1
⋯
0
⋮
⋮
⋮
⋱
⋮
−
a
0
/
a
m
−
a
1
/
a
m
−
a
2
/
a
m
⋯
−
a
m
−
1
/
a
m
]
X
+
[
0
0
⋮
1
]
U
Y
=
C
X
=
[
b
0
b
1
⋯
b
n
]
X
\dot X=AX+BU=\begin{bmatrix} 0&1&0&\cdots&0\\0&0&1&\cdots&0\\ \vdots&\vdots&\vdots&\ddots&\vdots\\ -a_{0}/a_{m}&-a_1/a_{m}&-a_2/a_{m}&\cdots&-a_{m-1}/a_{m} \end{bmatrix}X+\begin{bmatrix} 0\\0\\ \vdots\\1 \end{bmatrix}U\\ ~\ \\ Y=CX=\begin{bmatrix} b_0&b_1& \cdots&b_n \end{bmatrix}X
X˙=AX+BU=
00⋮−a0/am10⋮−a1/am01⋮−a2/am⋯⋯⋱⋯00⋮−am−1/am
X+
00⋮1
U Y=CX=[b0b1⋯bn]X
对于上式进行拉氏反变换,可得
X
(
s
)
S
=
A
X
(
s
)
+
B
U
(
s
)
Y
(
s
)
=
C
X
(
s
)
X(s)S=AX(s)+BU(s)\\ ~\ \\ Y(s)=CX(s)
X(s)S=AX(s)+BU(s) Y(s)=CX(s)
联立可以
Y
(
s
)
=
C
(
S
I
−
A
)
−
1
B
U
(
s
)
Y(s)=C(SI-A)^{-1}BU(s)
Y(s)=C(SI−A)−1BU(s)
即可得,传递函数为
G
(
s
)
=
C
(
S
I
−
A
)
−
1
B
G(s)=C(SI-A)^{-1}B
G(s)=C(SI−A)−1B
2.离散情况
1)传递函数→状态方程
对于单输入单输出被控系统,其时间离散传递函数一般可以描述为(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
常见的转换方法有直接法、并联分解法、串联分解法。
直接法的原理是将传递函数先化为差分方程,而后选取不同的状态量,得到状态方程的能控或者能观标准型。
状态空间表达式的能控标准型的转化过程为
G
(
z
)
=
Y
(
z
)
U
(
z
)
=
Y
(
z
)
X
(
z
)
∗
X
(
z
)
U
(
z
)
=
b
n
z
n
+
b
n
−
1
z
n
−
1
+
.
.
.
+
b
0
1
∗
1
a
m
z
m
+
a
m
−
1
z
n
−
1
+
.
.
.
+
a
0
Δ
X
=
A
X
(
k
)
+
B
U
(
k
)
=
[
−
1
1
0
⋯
0
0
−
1
1
⋯
0
⋮
⋮
⋮
⋱
⋮
−
a
0
/
a
m
−
a
1
/
a
m
−
a
2
/
a
m
⋯
−
a
m
−
1
/
a
m
]
X
+
[
0
0
⋮
1
]
U
Y
=
C
X
=
[
b
0
b
1
⋯
b
n
]
X
G(z)=\frac{Y(z)}{U(z)}=\frac{Y(z)}{X(z)}*\frac{X(z)}{U(z)} \\ ~\ \\ =\frac{b_nz^n+b_{n-1}z^{n-1}+...+b_0}{1}*\frac{1}{a_mz^m+a_{m-1}z^{n-1}+...+a_0}\\ ~\ \\ \Delta X=AX(k)+BU(k)=\begin{bmatrix} -1&1&0&\cdots&0\\0&-1&1&\cdots&0\\ \vdots&\vdots&\vdots&\ddots&\vdots\\ -a_{0}/a_{m}&-a_1/a_{m}&-a_2/a_{m}&\cdots&-a_{m-1}/a_{m} \end{bmatrix}X+\begin{bmatrix} 0\\0\\ \vdots\\1 \end{bmatrix}U\\ ~\ \\ Y=CX=\begin{bmatrix} b_0&b_1& \cdots&b_n \end{bmatrix}X
G(z)=U(z)Y(z)=X(z)Y(z)∗U(z)X(z) =1bnzn+bn−1zn−1+...+b0∗amzm+am−1zn−1+...+a01 ΔX=AX(k)+BU(k)=
−10⋮−a0/am1−1⋮−a1/am01⋮−a2/am⋯⋯⋱⋯00⋮−am−1/am
X+
00⋮1
U Y=CX=[b0b1⋯bn]X
其余能观标准型、并联分解法或串联分解法都是选取不同的状态量,从而使得矩阵 A B C ABC ABC 的改变。(原理都类似)
2)状态方程→传递函数
以以下控制系统的能控标准型为例,
Δ
X
=
A
X
+
B
U
=
[
−
1
1
0
⋯
0
0
−
1
1
⋯
0
⋮
⋮
⋮
⋱
⋮
−
a
0
/
a
m
−
a
1
/
a
m
−
a
2
/
a
m
⋯
−
a
m
−
1
/
a
m
]
X
+
[
0
0
⋮
1
]
U
Y
=
C
X
=
[
b
0
b
1
⋯
b
n
]
X
\Delta X=AX+BU=\begin{bmatrix} -1&1&0&\cdots&0\\0&-1&1&\cdots&0\\ \vdots&\vdots&\vdots&\ddots&\vdots\\ -a_{0}/a_{m}&-a_1/a_{m}&-a_2/a_{m}&\cdots&-a_{m-1}/a_{m} \end{bmatrix}X+\begin{bmatrix} 0\\0\\ \vdots\\1 \end{bmatrix}U\\ ~\ \\ Y=CX=\begin{bmatrix} b_0&b_1& \cdots&b_n \end{bmatrix}X
ΔX=AX+BU=
−10⋮−a0/am1−1⋮−a1/am01⋮−a2/am⋯⋯⋱⋯00⋮−am−1/am
X+
00⋮1
U Y=CX=[b0b1⋯bn]X
对于上式进行z反变换,可得
X
(
z
+
1
)
−
X
(
z
)
=
A
X
(
z
)
+
B
U
(
z
)
Y
(
z
)
=
C
X
(
z
)
X(z+1)-X(z)=AX(z)+BU(z)\\ ~\ \\ Y(z)=CX(z)
X(z+1)−X(z)=AX(z)+BU(z) Y(z)=CX(z)
联立可以
Y
(
z
)
=
C
(
z
−
I
−
A
)
−
1
B
U
(
z
)
Y(z)=C(z-I-A)^{-1}BU(z)
Y(z)=C(z−I−A)−1BU(z)
即可得,传递函数为
G
(
z
)
=
C
(
z
−
I
−
A
)
−
1
B
G(z)=C(z-I-A)^{-1}B
G(z)=C(z−I−A)−1B
3.传递函数离散化
将s域下的传递函数 G ( s ) G(s) G(s) 经过 z z z 变换将 s s s 变量全部替换为 z z z 得到 G ( z ) G(z) G(z) 。常用 s s s 域和 z z z 域的对应关系如下, T T T 为采样时间。
前向差分变换
z
=
e
T
S
≈
1
+
T
s
→
s
=
z
−
1
T
z=e^{TS}\approx 1+Ts \rightarrow s=\frac{z-1}{T}
z=eTS≈1+Ts→s=Tz−1
后向差分变换
z
=
(
e
−
T
S
)
−
1
≈
1
1
−
T
s
→
s
=
1
−
z
−
1
T
z=(e^{-TS})^{-1}\approx \frac{1}{1-Ts} \rightarrow s=\frac{1-z^{-1}}{T}
z=(e−TS)−1≈1−Ts1→s=T1−z−1
双线性变换
z
=
e
T
S
≈
1
+
T
s
2
1
−
T
s
2
→
s
=
2
T
1
−
z
−
1
1
+
z
−
1
z=e^{TS}\approx \frac{1+\frac{Ts}{2}}{1-\frac{Ts}{2}} \rightarrow s=\frac{2}{T}\frac{1-z^{-1}}{1+z^{-1}}
z=eTS≈1−2Ts1+2Ts→s=T21+z−11−z−1
将连续传递函数中的 s s s 用上式替换成 z z z ,即可完成传递函数的离散化。(离散滤波器形式)