学习笔记-状态方程精确离散化

假设连续系统的线性状态方程为:

x ˙ = A x + b u \dot{ \mathbf{x}}=\mathbf{A}\mathbf{x}+\mathbf{b}u x˙=Ax+bu, x ( 0 ) = x 0 x(0)=x_0 x(0)=x0

其状态转移矩阵为:

Φ ( t ) = ∑ k = 0 ∞ A k t k k ! = e A t \mathbf{\Phi}(t)=\sum_{k=0}^{\infty} \mathbf{A}^{k} \frac{t^{k}}{k !}=e^{\mathbf{A} t} Φ(t)=k=0Akk!tk=eAt

其非齐次微分方程的解为:
x ( t ) = Φ ( t − t 0 ) x ( t 0 ) ⏟ 齐次解  + ∫ t 0 t Φ ( t − τ ) b u ( τ ) d τ ⏟ 特解  \mathbf{x}(t)=\underbrace{\mathbf{\Phi}\left(t-t_{0}\right) \mathbf{x}\left(t_{0}\right)}_{\text {齐次解 }}+\underbrace{\int_{t_{0}}^{t} \mathbf{\Phi}(t-\tau) \mathbf{b} u(\tau) d \tau}_{\text {特解 }} x(t)=齐次解  Φ(tt0)x(t0)+特解  t0tΦ(tτ)bu(τ)dτ

t 0 : = t k = k T t_0:=t_k=kT t0:=tk=kT,并且 t : = t k + 1 = ( k + 1 ) T t:=t_{k+1}=(k+1)T t:=tk+1=(k+1)T,则有

x ( t k + 1 ) = Φ ( T ) x ( t k ) + ∫ t k t k + 1 Φ ( t k + 1 − τ ) b u ( τ ) d τ \mathbf{x}\left(t_{k+1}\right)=\mathbf{\Phi}(T) \mathbf{x}\left(t_{k}\right)+\int_{t_{k}}^{t_{k+1}} \Phi\left(t_{k+1}-\tau\right) \mathbf{b} u(\tau) d \tau x(tk+1)=Φ(T)x(tk)+tktk+1Φ(tk+1τ)bu(τ)dτ

因为采样保持,在一个采样区间里,输入控制变量恒定 u ( τ ) = u k = const u(\tau)=u_k=\text{const} u(τ)=uk=const t ∈ [ t k , t k + 1 ) t \in[t_k,t_{k+1}) t[tk,tk+1),所以上式 u ( τ ) u(\tau) u(τ)可以提出:

x ( t k + 1 ) = Φ ( T ) x ( t k ) + ∫ t k t k + 1 Φ ( t k + 1 − τ ) b d τ u k \mathbf{x}\left(t_{k+1}\right)=\mathbf{\Phi}(T) \mathbf{x}\left(t_{k}\right)+\int_{t_{k}}^{t_{k+1}} \Phi\left(t_{k+1}-\tau\right) \mathbf{b} d \tau u_k x(tk+1)=Φ(T)x(tk)+tktk+1Φ(tk+1τ)bdτuk

换元, t k + 1 − τ = κ t_{k+1}-\tau=\kappa tk+1τ=κ,所以 d κ = d ( t k + 1 − τ ) = − d τ d\kappa = d(t_{k+1}-\tau)=-d\tau dκ=d(tk+1τ)=dτ

x ( t k + 1 ) = Φ ( T ) x ( t k ) + ∫ T 0 − Φ ( κ ) b d κ u k \mathbf{x}\left(t_{k+1}\right)=\mathbf{\Phi}(T) \mathbf{x}\left(t_{k}\right)+\int_{T}^{0} -\Phi\left( \kappa \right) \mathbf{b} d \kappa u_k x(tk+1)=Φ(T)x(tk)+T0Φ(κ)bdκuk

x ( t k + 1 ) = Φ ( T ) x ( t k ) + ∫ 0 T Φ ( κ ) b d κ u k \mathbf{x}\left(t_{k+1}\right)=\mathbf{\Phi}(T) \mathbf{x}\left(t_{k}\right)+\int_{0}^{T} \Phi\left( \kappa \right) \mathbf{b} d \kappa u_k x(tk+1)=Φ(T)x(tk)+0TΦ(κ)bdκuk

比较离散状态方程 x ( t k + 1 ) = A d x ( t k ) + b d u k \mathbf{x}(t_{k+1})=\mathbf{A}_d\mathbf{x}(t_k)+\mathbf{b}_d u_k x(tk+1)=Adx(tk)+bduk

A d = Φ ( T ) = ∑ k = 0 ∞ A k T k k ! = e A T \mathbf{A}_{d}=\mathbf{\Phi}(T)=\sum_{k=0}^{\infty} \mathbf{A}^{k} \frac{T^{k}}{k !}=e^{\mathbf{A} T} Ad=Φ(T)=k=0Akk!Tk=eAT

b d = ∫ 0 T Φ ( κ ) b d κ \mathbf{b}_{d}=\int_{0}^{T} \mathbf{\Phi}(\kappa) \mathbf{b} d \kappa bd=0TΦ(κ)bdκ

c d T = c T \mathbf{c}_{d}^{\mathrm{T}}=\mathbf{c}^{\mathrm{T}} cdT=cT

离散的动态系数矩阵为指数矩阵,求解方法为连续矩阵求和,只有当 k → ∞ k\to\infty k 能够取到无穷阶才有完全精确的表达。自然和连续的动态矩阵 A \mathbf{A} A不一样。

如果是非线性系统,没有微分方程的通解,那也可以采用同样的思路,对非线性的状态方程采取欧拉法,乃至龙格库塔法逼近。

以上转自知乎用户 善道 在问题如何理解状态空间中状态方程系数矩阵的离散化后的结果?下的回答,仅作个人笔记使用。

当系统带有扰动时,系统的状态方程为:

x ˙ = A x + b u + d ( t ) \dot{ \mathbf{x}}=\mathbf{A}\mathbf{x}+\mathbf{b}u+\mathbf{d}(t) x˙=Ax+bu+d(t), x ( 0 ) = x 0 x(0)=x_0 x(0)=x0

同样采用知乎用户 善道 的方法

x ( t k + 1 ) = Φ ( T ) x ( t k ) + ∫ t k t k + 1 Φ ( t k + 1 − τ ) b d τ u k + ∫ t k t k + 1 Φ ( t k + 1 − τ ) d ( τ ) d τ \mathbf{x}\left(t_{k+1}\right)=\mathbf{\Phi}(T) \mathbf{x}\left(t_{k}\right)+\int_{t_{k}}^{t_{k+1}} \Phi\left(t_{k+1}-\tau\right) \mathbf{b} d \tau u_k+\int_{t_{k}}^{t_{k+1}} \Phi\left(t_{k+1}-\tau\right)\mathbf{d}(\tau)d\tau x(tk+1)=Φ(T)x(tk)+tktk+1Φ(tk+1τ)bdτuk+tktk+1Φ(tk+1τ)d(τ)dτ

换元, t k + 1 − τ = κ t_{k+1}-\tau=\kappa tk+1τ=κ

x ( t k + 1 ) = Φ ( T ) x ( t k ) + ∫ 0 T Φ ( κ ) b d κ u k + ∫ 0 T Φ ( κ ) d ( ( k + 1 ) T − κ ) d κ \mathbf{x}\left(t_{k+1}\right)=\mathbf{\Phi}(T) \mathbf{x}\left(t_{k}\right)+\int_{0}^{T} \Phi\left( \kappa \right) \mathbf{b} d \kappa u_k +\int_{0}^{T} \Phi\left( \kappa \right) \mathbf{d}\left( \left(k+1 \right)T-\kappa \right) d \kappa x(tk+1)=Φ(T)x(tk)+0TΦ(κ)bdκuk+0TΦ(κ)d((k+1)Tκ)dκ

你可能感兴趣的:(CHM,数学公式,数学手册)