概述
鲁 鹏,北京理工大学宇航学院
为了将离散信号重新转换成连续信号,常使用零阶保持 (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)inmathbb{R}^{n}
x(t)∈Rn 是状态向量,
u
(
t
)
∈
R
m
boldsymbol{u}(t)inmathbb{R}^{m}
u(t)∈Rm 是控制向量,
σ
∈
R
sigmainmathbb{R}
σ∈R 是参数,
A
(
t
)
∈
R
n
×
n
A(t)inmathbb{R}^{ntimes n}
A(t)∈Rn×n是状态矩阵,
B
(
t
)
∈
R
n
×
m
B(t)inmathbb{R}^{ntimes m}
B(t)∈Rn×m是控制矩阵,
Σ
(
t
)
∈
R
n
Sigma(t)inmathbb{R}^{n}
Σ(t)∈Rn是参数矩阵,
z
(
t
)
∈
R
n
boldsymbol{z}(t)inmathbb{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]dxi \ 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]dxi \
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]dxi 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 tin [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 tin [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.
最后
以上就是狂野水蜜桃为你收集整理的零阶保持模型和一阶保持模型离散的推导的全部内容,希望文章能够帮你解决零阶保持模型和一阶保持模型离散的推导所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复