后续陆续更新:传递函数讲解、工作点线性化、系统辨识、LMS
控制系统的基本描述方法有动态方程、传递函数、状态方程三种。
而各种描述方法之间如何相互转换的方法也有很多。
而为了更好地进行计算机仿真,则需将控制系统离散化。
下一一介绍控制系统描述方法之间的转换以及各自离散化方法。
一、动态方程与传递函数相互转换
经典控制理论中,借助积分变换引入的传递函数模型,可以很好地描述系统输入输出特性。
1.连续情况
1)动态方程→传递函数
借助于如下一中积分变换(拉普拉斯变换)以及相关的性质,可将一个有参数实数
t
(
t
≥
0
)
t(t≥ 0)
t(t≥0) 的函数转换为一个参数为复数
s
s
s 的函数。(后续有时间应该会详细介绍以下积分变换)
F
(
s
)
=
∫
0
∞
f
(
t
)
e
−
s
t
d
t
F(s)=\int_{0}^{\infty}f(t)e^{-st}dt
F(s)=∫0∞f(t)e−stdt
一般单输入单输出的控制系统,其动态方程可以用如下高阶微分方程描述,
a
n
y
n
+
a
n
−
1
y
n
−
1
+
.
.
.
+
a
1
y
=
b
m
u
m
+
b
m
−
1
u
m
−
1
+
.
.
.
+
b
1
u
a_ny^n+a_{n-1}y^{n-1}+...+a_1y=b_mu^m+b_{m-1}u^{m-1}+...+b_1u
anyn+an−1yn−1+...+a1y=bmum+bm−1um−1+...+b1u
在零初始条件下,对上式进行拉普拉斯变换,可得到在参数为复数
s
s
s 下的输出和输入之间的关系
a
n
Y
(
s
)
s
n
+
a
n
−
1
Y
(
s
)
s
n
−
1
+
.
.
.
+
a
1
Y
(
s
)
=
b
m
U
(
s
)
s
m
+
b
m
−
1
U
(
s
)
s
m
−
1
+
.
.
.
+
b
1
U
(
s
)
a_nY(s)s^n+a_{n-1}Y(s)s^{n-1}+...+a_1Y(s)=b_mU(s)s^m+b_{m-1}U(s)s^{m-1}+...+b_1U(s)
anY(s)sn+an−1Y(s)sn−1+...+a1Y(s)=bmU(s)sm+bm−1U(s)sm−1+...+b1U(s)
G
(
s
)
=
Y
(
s
)
U
(
s
)
=
b
m
s
m
+
b
m
−
1
s
m
−
1
+
.
.
.
+
b
1
a
n
s
n
+
a
n
−
1
s
n
−
1
+
.
.
.
+
a
1
G(s)=\frac{Y(s)}{U(s)}=\frac{b_ms^m+b_{m-1}s^{m-1}+...+b_1}{a_ns^n+a_{n-1}s^{n-1}+...+a_1}
G(s)=U(s)Y(s)=ansn+an−1sn−1+...+a1bmsm+bm−1sm−1+...+b1
此即完成了动态方程向传函函数之间的转换。
2)传递函数→动态方程
对于如下传递函数
G
(
s
)
G(s)
G(s)
G
(
s
)
=
Y
(
s
)
U
(
s
)
=
b
m
s
m
+
b
m
−
1
s
m
−
1
+
.
.
.
+
b
1
a
n
s
n
+
a
n
−
1
s
n
−
1
+
.
.
.
+
a
1
G(s)=\frac{Y(s)}{U(s)}=\frac{b_ms^m+b_{m-1}s^{m-1}+...+b_1}{a_ns^n+a_{n-1}s^{n-1}+...+a_1}
G(s)=U(s)Y(s)=ansn+an−1sn−1+...+a1bmsm+bm−1sm−1+...+b1
将其展开可以得到输入输出变量及其多阶导数之间在参数为复数
s
s
s 的函数关系
a
n
Y
(
s
)
s
n
+
a
n
−
1
Y
(
s
)
s
n
−
1
+
.
.
.
+
a
1
Y
(
s
)
=
b
m
U
(
s
)
s
m
+
b
m
−
1
U
(
s
)
s
m
−
1
+
.
.
.
+
b
1
U
(
s
)
a_nY(s)s^n+a_{n-1}Y(s)s^{n-1}+...+a_1Y(s)=b_mU(s)s^m+b_{m-1}U(s)s^{m-1}+...+b_1U(s)
anY(s)sn+an−1Y(s)sn−1+...+a1Y(s)=bmU(s)sm+bm−1U(s)sm−1+...+b1U(s)
根据拉普拉斯逆变换可以得到输入输出变量及其多阶导数在参数为时间
t
t
t 上的函数关系
a
n
y
n
+
a
n
−
1
y
n
−
1
+
.
.
.
+
a
1
y
=
b
m
u
m
+
b
m
−
1
u
m
−
1
+
.
.
.
+
b
1
u
a_ny^n+a_{n-1}y^{n-1}+...+a_1y=b_mu^m+b_{m-1}u^{m-1}+...+b_1u
anyn+an−1yn−1+...+a1y=bmum+bm−1um−1+...+b1u
2.离散情况
1)动态方程→传递函数
借助于如下一中积分变换(z变换)以及相关的性质,可将一个有参数实数 k ( k = 0 , 1 , 2... ) k(k=0,1,2...) k(k=0,1,2...) 的离散函数转换为一个参数为复数 z z z 的函数。(后续有时间应该会详细介绍以下积分变换)
(Z变换是对离散序列进行的一种数学变换,常用于求线性时不变差分方程的解。它在离散系统中的地位如同拉普拉斯变换在连续系统中的地位。)
X
(
z
)
=
∑
0
∞
x
(
n
)
z
−
n
X(z)=\sum_{0}^{\infty}x(n)z^{-n}
X(z)=0∑∞x(n)z−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)
在零初始条件下,对上式进行z变换,可得到在参数为复数
z
z
z 下的输出和输入之间的关系
a
n
Y
(
z
)
z
n
+
a
n
−
1
Y
(
z
)
z
n
−
1
+
.
.
.
+
a
1
Y
(
z
)
=
b
m
U
(
z
)
z
m
+
.
.
.
+
b
1
U
(
z
)
a_nY(z)z^n+a_{n-1}Y(z)z^{n-1}+...+a_1Y(z)=b_mU(z)z^m+...+b_1U(z)
anY(z)zn+an−1Y(z)zn−1+...+a1Y(z)=bmU(z)zm+...+b1U(z)
G
(
z
)
=
Y
(
z
)
U
(
z
)
=
b
m
z
m
+
b
m
−
1
z
m
−
1
+
.
.
.
+
b
1
a
n
z
n
+
a
n
−
1
z
n
−
1
+
.
.
.
+
a
1
G(z)=\frac{Y(z)}{U(z)}=\frac{b_mz^m+b_{m-1}z^{m-1}+...+b_1}{a_nz^n+a_{n-1}z^{n-1}+...+a_1}
G(z)=U(z)Y(z)=anzn+an−1zn−1+...+a1bmzm+bm−1zm−1+...+b1
此即完成了离散情况下动态方程向传函函数之间的转换。
(离散情况下的脉冲传递函数跟滤波器原理一致)
2)传递函数→动态方程
对于如下离散传递函数
G
(
z
)
G(z)
G(z)
G
(
z
)
=
Y
(
z
)
U
(
z
)
=
b
m
z
m
+
b
m
−
1
z
m
−
1
+
.
.
.
+
b
1
a
n
z
n
+
a
n
−
1
z
n
−
1
+
.
.
.
+
a
1
G(z)=\frac{Y(z)}{U(z)}=\frac{b_mz^m+b_{m-1}z^{m-1}+...+b_1}{a_nz^n+a_{n-1}z^{n-1}+...+a_1}
G(z)=U(z)Y(z)=anzn+an−1zn−1+...+a1bmzm+bm−1zm−1+...+b1
将其展开可以得到输入输出变量及其多阶导数之间在参数为复数
z
z
z 的函数关系
a
n
Y
(
z
)
z
n
+
a
n
−
1
Y
(
z
)
z
n
−
1
+
.
.
.
+
a
1
Y
(
z
)
=
b
m
U
(
z
)
z
m
+
b
m
−
1
U
(
z
)
z
m
−
1
+
.
.
.
+
b
1
U
(
z
)
a_nY(z)z^n+a_{n-1}Y(z)z^{n-1}+...+a_1Y(z)=b_mU(z)z^m+b_{m-1}U(z)z^{m-1}+...+b_1U(z)
anY(z)zn+an−1Y(z)zn−1+...+a1Y(z)=bmU(z)zm+bm−1U(z)zm−1+...+b1U(z)
根据z逆变换可以得到输入输出变量及其多阶导数在参数为离散时间
k
k
k 上的函数关系
a
n
y
(
k
+
n
)
+
a
n
−
1
y
(
k
+
n
−
1
)
+
.
.
.
+
a
1
y
(
k
)
=
b
m
u
(
k
+
m
)
+
b
m
−
1
u
(
k
+
m
−
1
)
+
.
.
.
+
b
1
u
(
k
)
a_ny(k+n)+a_{n-1}y(k+n-1)+...+a_1y(k)=b_mu(k+m)+b_{m-1}u(k+m-1)+...+b_1u(k)
any(k+n)+an−1y(k+n−1)+...+a1y(k)=bmu(k+m)+bm−1u(k+m−1)+...+b1u(k)
离散时间数字滤波器的仿真通常也是这样转换而后再进行计算。
3.动态方程离散化
作为理论部分,大多系统输入输出的函数关系一般是时间连续的,而为了方便仿真计算,往往需要将连续情况离散化,即将微分方程离散化转为差分方程。
将微分方程离散化转为差分方程,通常可以采用有限差分法。(用差分代替微分)
而根据离散时间顺序方向通常可以分为前向差分和后向差分。
一阶前向差分
Δ
f
(
k
)
=
f
(
k
+
1
)
−
f
(
k
)
\Delta f(k)=f(k+1)-f(k)
Δf(k)=f(k+1)−f(k)
二阶前向差分
Δ
2
f
(
k
)
=
Δ
f
(
k
+
1
)
−
Δ
f
(
k
)
=
f
(
k
+
2
)
−
2
f
(
k
+
1
)
+
f
(
k
)
\Delta^2f(k)=\Delta f(k+1)-\Delta f(k)=f(k+2)-2f(k+1)+f(k)
Δ2f(k)=Δf(k+1)−Δf(k)=f(k+2)−2f(k+1)+f(k)
n
n
n 阶前向差分
Δ
n
f
(
k
)
=
Δ
n
−
1
f
(
k
+
1
)
−
Δ
n
−
1
f
(
k
)
\Delta^nf(k)=\Delta^{n-1} f(k+1)-\Delta^{n-1} f(k)
Δnf(k)=Δn−1f(k+1)−Δn−1f(k)
一阶后向差分
Δ
f
(
k
)
=
f
(
k
)
−
f
(
k
−
1
)
\Delta f(k)=f(k)-f(k-1)
Δf(k)=f(k)−f(k−1)
二阶后向差分
Δ
2
f
(
k
)
=
Δ
f
(
k
)
−
Δ
f
(
k
−
1
)
=
f
(
k
)
−
2
f
(
k
−
1
)
+
f
(
k
−
2
)
\Delta^2f(k)=\Delta f(k)-\Delta f(k-1)=f(k)-2f(k-1)+f(k-2)
Δ2f(k)=Δf(k)−Δf(k−1)=f(k)−2f(k−1)+f(k−2)
n
n
n 阶后向差分
Δ
n
f
(
k
)
=
Δ
n
−
1
f
(
k
)
−
Δ
n
−
1
f
(
k
−
1
)
\Delta^nf(k)=\Delta^{n-1} f(k)-\Delta^{n-1} f(k-1)
Δnf(k)=Δn−1f(k)−Δn−1f(k−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)