鲁 鹏,北京理工大学宇航学院
为了将离散信号重新转换成连续信号,常使用零阶保持 (zero-order hold, ZOH) 模型或一阶保持 (first order hold) 模型 。本文将推导线性系统零阶保持器和一阶保持器离散公式
定义矩阵的指数函数为
e
A
=
exp
(
A
)
=
I
+
A
+
A
2
2
!
+
A
3
3
!
+
⋯
=
∑
n
=
0
∞
A
n
n
!
(1)
e^{A} = \exp(A) = I+A+\frac{A^2}{2!} + \frac{A^3}{3!} + \cdots = \sum_{n=0}^{\infty}\frac{A^n}{n!} \tag{1}
eA=exp(A)=I+A+2!A2+3!A3+⋯=n=0∑∞n!An(1)
任意的方阵 A 均可以转换为 Jordan 标准型(矩阵论里的知识),即
A
=
P
J
P
−
1
A = PJP^{-1}
A=PJP−1 ,并且 Jordan 标准型的幂可以轻松求解。此时再求
A
n
=
P
J
n
P
−
1
A^{n} = PJ^{n}P^{-1}
An=PJnP−1 就很好求了。
我们考虑如下线性系统
x
˙
(
t
)
=
A
(
t
)
x
(
t
)
+
B
(
t
)
u
(
t
)
+
Σ
(
t
)
σ
+
z
(
t
)
(2)
\dot{\boldsymbol{x}}(t) = A(t) \boldsymbol{x}(t) + B(t) \boldsymbol{u}(t) + \Sigma(t)\sigma + \boldsymbol{z}(t) \tag{2}
x˙(t)=A(t)x(t)+B(t)u(t)+Σ(t)σ+z(t)(2)
其中,
x
(
t
)
∈
R
n
\boldsymbol{x}(t)\in\mathbb{R}^{n}
x(t)∈Rn 是状态向量,
u
(
t
)
∈
R
m
\boldsymbol{u}(t)\in\mathbb{R}^{m}
u(t)∈Rm 是控制向量,
σ
∈
R
\sigma\in\mathbb{R}
σ∈R 是参数,
A
(
t
)
∈
R
n
×
n
A(t)\in\mathbb{R}^{n\times n}
A(t)∈Rn×n是状态矩阵,
B
(
t
)
∈
R
n
×
m
B(t)\in\mathbb{R}^{n\times m}
B(t)∈Rn×m是控制矩阵,
Σ
(
t
)
∈
R
n
\Sigma(t)\in\mathbb{R}^{n}
Σ(t)∈Rn是参数矩阵,
z
(
t
)
∈
R
n
\boldsymbol{z}(t)\in\mathbb{R}^{n}
z(t)∈Rn是扰动。该系统的状态转移矩阵可以参考[1]
状态转移矩阵 Φ ( t , t 0 ) \Phi(t,t_{0}) Φ(t,t0)的性质 [3]
使用以上性质可以推导出线性系统 (2) 的解
x
˙
(
t
)
−
A
(
t
)
x
(
t
)
=
B
(
t
)
u
(
t
)
+
Σ
(
t
)
σ
+
z
(
t
)
Φ
−
1
(
t
,
t
k
)
x
˙
(
t
)
−
Φ
−
1
(
t
,
t
k
)
A
(
t
)
x
(
t
)
=
Φ
−
1
(
t
,
t
k
)
[
B
(
t
)
u
(
t
)
+
Σ
(
t
)
σ
+
z
(
t
)
]
d
d
t
[
Φ
−
1
(
t
,
t
k
)
x
(
t
)
]
=
Φ
−
1
(
t
,
t
k
)
[
B
(
t
)
u
(
t
)
+
Σ
(
t
)
σ
+
z
(
t
)
]
Φ
−
1
(
t
,
t
k
)
x
(
t
)
−
Φ
−
1
(
t
k
,
t
k
)
x
(
t
k
)
=
∫
t
k
t
Φ
−
1
(
ξ
,
t
k
)
[
B
(
ξ
)
u
(
ξ
)
+
Σ
(
ξ
)
σ
+
z
(
ξ
)
]
d
ξ
x
(
t
)
=
Φ
(
t
,
t
k
)
x
(
t
k
)
+
Φ
(
t
,
t
k
)
∫
t
k
t
Φ
−
1
(
ξ
,
t
k
)
[
B
(
ξ
)
u
(
ξ
)
+
Σ
(
ξ
)
σ
+
z
(
ξ
)
]
d
ξ
\dot{x}(t) - A(t) x(t) = B(t) u(t) + \Sigma(t)\sigma + z(t) \\ \Phi^{-1}(t,t_{k}) \dot{x}(t) - \Phi^{-1}(t,t_{k}) A(t) x(t) = \Phi^{-1}(t,t_{k})\left[B(t) u(t) + \Sigma(t)\sigma + z(t)\right] \\ \frac{d}{dt}\left[\Phi^{-1}(t,t_{k}) x(t)\right] = \Phi^{-1}(t,t_{k})\left[B(t) u(t) + \Sigma(t)\sigma + z(t)\right] \\ \Phi^{-1}(t,t_{k}) x(t) - \Phi^{-1}(t_{k},t_{k}) x(t_{k}) = \int_{t_{k}}^{t}\Phi^{-1}(\xi,t_{k})\left[B(\xi) u(\xi) + \Sigma(\xi)\sigma + z(\xi)\right]d\xi \\ x(t) = \Phi(t,t_{k}) x(t_{k}) + \Phi(t,t_{k})\int_{t_{k}}^{t}\Phi^{-1}(\xi,t_{k})\left[B(\xi) u(\xi) + \Sigma(\xi)\sigma + z(\xi)\right]d\xi \\
x˙(t)−A(t)x(t)=B(t)u(t)+Σ(t)σ+z(t)Φ−1(t,tk)x˙(t)−Φ−1(t,tk)A(t)x(t)=Φ−1(t,tk)[B(t)u(t)+Σ(t)σ+z(t)]dtd[Φ−1(t,tk)x(t)]=Φ−1(t,tk)[B(t)u(t)+Σ(t)σ+z(t)]Φ−1(t,tk)x(t)−Φ−1(tk,tk)x(tk)=∫tktΦ−1(ξ,tk)[B(ξ)u(ξ)+Σ(ξ)σ+z(ξ)]dξx(t)=Φ(t,tk)x(tk)+Φ(t,tk)∫tktΦ−1(ξ,tk)[B(ξ)u(ξ)+Σ(ξ)σ+z(ξ)]dξ
x ( t ) = Φ ( t , t k ) x ( t k ) + ∫ t k t Φ ( t , ξ ) [ B ( ξ ) u ( ξ ) + Σ ( ξ ) σ + z ( ξ ) ] d ξ (3) x(t) = \Phi(t,t_{k}) x(t_{k}) + \int_{t_{k}}^{t}\Phi(t,\xi)\left[B(\xi) u(\xi) + \Sigma(\xi)\sigma + z(\xi)\right]d\xi \tag{3} x(t)=Φ(t,tk)x(tk)+∫tktΦ(t,ξ)[B(ξ)u(ξ)+Σ(ξ)σ+z(ξ)]dξ(3)
零阶保持模型
使用零阶保持模型离散时,控制量在采样时刻之间保持不变,即
u
(
t
)
=
u
(
t
k
)
,
∀
t
∈
[
t
k
,
t
k
+
1
)
(4)
\boldsymbol{u}(t) = \boldsymbol{u}(t_{k}), \forall t\in [t_{k},t_{k+1}) \tag{4}
u(t)=u(tk),∀t∈[tk,tk+1)(4)
t
k
,
t
k
+
1
t_{k}, t_{k+1}
tk,tk+1是时间离散点。
当控制有上面 (4) 的形式时,公式 (3) 可以简化为
一阶保持模型
使用一阶保持模型离散时,控制量在采样时刻之间线性变化,即
u
(
t
)
=
λ
k
−
(
t
)
u
(
t
k
)
+
λ
k
+
(
t
)
u
(
t
k
+
1
)
,
∀
t
∈
[
t
k
,
t
k
+
1
)
λ
k
−
(
t
)
≜
t
k
+
1
−
t
t
t
+
1
−
t
k
λ
k
+
(
t
)
≜
t
−
t
k
t
t
+
1
−
t
k
(5)
\boldsymbol{u}(t) = \lambda_{k}^{-}(t)\boldsymbol{u}(t_{k})+\lambda_{k}^{+}(t)\boldsymbol{u}(t_{k+1}), \forall t\in [t_{k},t_{k+1}) \tag{5} \\ \lambda_{k}^{-}(t) \triangleq \frac{t_{k+1}-t}{t_{t+1}-t_{k}} \\ \lambda_{k}^{+}(t) \triangleq \frac{t-t_{k}}{t_{t+1}-t_{k}}
u(t)=λk−(t)u(tk)+λk+(t)u(tk+1),∀t∈[tk,tk+1)λk−(t)≜tt+1−tktk+1−tλk+(t)≜tt+1−tkt−tk(5)
当控制有上面 (5) 的形式时,公式 (3) 可以简化为
参考:
[1] https://blog.csdn.net/qq_25777815/article/details/102509131
[2] https://dsp.stackexchange.com/questions/59725/derivation-of-zoh-discretization
[3] Danylo Malyuta, Taylor Reynoldsm, Michael Szmuk .et al. Discretization Performance and Accuracy Analysis for the Rocket Powered Descent Guidance Problem [C] AIAA Scitech 2019 Forum, https://arc.aiaa.org/doi/abs/10.2514/6.2019-0925.