矩阵指数离散化推导

矩阵指数离散化是一种将连续时间线性时不变(LTI)系统转换为离散时间系统的方法。这种方法特别适用于状态空间表示的系统。以下是详细介绍矩阵指数离散化的过程:

1. 连续时间系统的状态空间表示

首先,我们需要将连续时间系统表示为状态空间形式。对于给定的微分方程:

y′(t)=−Ay(t)+Bu(t) y'(t)=−Ay(t)+Bu(t) y(t)=Ay(t)+Bu(t)

我们可以将其转换为状态空间形式。假设 x(t)x(t)x(t)是内部状态向量,y(t)y(t)y(t) 是输出向量,系统的状态空间表示为:

x˙(t)=Ax(t)+Bu(t) \dot{x}(t) = Ax(t) + Bu(t) x˙(t)=Ax(t)+Bu(t)

y(t)=Cx(t)+Du(t) y(t)=Cx(t)+Du(t) y(t)=Cx(t)+Du(t)

其中:

- A是系统矩阵。

- B是输入矩阵。

- C是输出矩阵。

-D是直接传递矩阵。

对于一阶系统,状态空间表示可以简化为:

x˙(t)=Ax(t)+Bu(t)\dot{x}(t) = Ax(t) + Bu(t)x˙(t)=Ax(t)+Bu(t)

y(t)=x(t)y(t) = x(t)y(t)=x(t)

这里,A=−AA = -AA=AB=BB = BB=BC=IC = IC=I(单位矩阵),D=0D=0D=0

2. 矩阵指数

矩阵指数是将矩阵$ A$的指数函数定义为:

eAt=I+At+(At)22!+(At)33!+⋯e^{At} = I + At + \frac{(At)^2}{2!} + \frac{(At)^3}{3!} + \cdotseAt=I+At+2!(At)2+3!(At)3+

其中 III 是单位矩阵。

连续时间LTI系统的状态可以通过矩阵指数解来表示:

x(t)=eA(t−t0)x(t0)+∫t0teA(t−τ)Bu(τ)dτx(t)=e^{A(t-t_0)}x(t_0)+\int_{t_0}^t e^{A(t-\tau)} Bu(\tau) d\taux(t)=eA(tt0)x(t0)+t0teA(tτ)Bu(τ)dτ

解的推导

对进行变换:x˙(t)=Ax(t)+Bu(t)\dot{x}(t) = Ax(t) + Bu(t)x˙(t)=Ax(t)+Bu(t)

先移相:x˙(t)−Ax(t)=Bu(t)\dot{x}(t) -Ax(t)= Bu(t)x˙(t)Ax(t)=Bu(t)

两边同乘积分因子e−Ate^{-At}eAt 得:e−Atx˙(t)−Ae−Atx(t)=Be−Atu(t)e^{-At}\dot{x}(t) -Ae^{-At}x(t)= Be^{-At}u(t)eAtx˙(t)AeAtx(t)=BeAtu(t)

上式左边可以看作:[e−Atx(t)]′=e−Atx˙(t)−Ae−Atx(t)[e^{-At}x(t)]'=e^{-At}\dot{x}(t) -Ae^{-At}x(t)[eAtx(t)]=eAtx˙(t)AeAtx(t)

替换后:[e−Atx(t)]′=Be−Atu(t)[e^{-At}x(t)]'=Be^{-At}u(t)[eAtx(t)]=BeAtu(t)

对上式在[t0,t][t_0,t][t0,t]区间上求积分:∫t0t[e−Aτx(τ)]′dτ=∫t0tBe−Aτu(τ)dτ\int_{t_0}^t[e^{-A\tau}x(\tau)]'d\tau=\int_{t_0}^tBe^{-A\tau}u(\tau)d\taut0t[eAτx(τ)]dτ=t0tBeAτu(τ)dτ

求得:e−Atx(t)−e−At0x(t0)=∫t0tBe−Aτu(τ)dτe^{-At}x(t)-e^{-At_0}x(t_0)=\int_{t_0}^tBe^{-A\tau}u(\tau)d\taueAtx(t)eAt0x(t0)=t0tBeAτu(τ)dτ

式子两边同乘eAte^{At}eAt 并移相得:x(t)=eA(t−t0)x(t0)+∫t0teA(t−τ)Bu(τ)dτx(t)=e^{A(t-t_0)}x(t_0)+\int_{t_0}^t e^{A(t-\tau)} Bu(\tau) d\taux(t)=eA(tt0)x(t0)+t0teA(tτ)Bu(τ)dτ

3. 离散化过程

1. 确定离散时间步长 TTT:选择一个离散时间步长 TTT

2. 使用矩阵指数近似状态更新:在连续时间系统中,状态更新可以通过矩阵指数来描述:

x(t+T)=eATx(t)+∫tt+TeA(t+T−τ)Bu(τ)dτx(t + T) = e^{AT} x(t)+\int_t^{t+T} e^{A(t+T-\tau)} Bu(\tau) d\taux(t+T)=eATx(t)+tt+TeA(t+Tτ)Bu(τ)dτ

3.近似积分:如果输入u(t)u(t)u(t)[t,t+T][t,t+T][t,t+T]区间是常数u(k)u(k)u(k)(也就是说在一个时间步长T内,u不变),则积分可近似为:

∫tt+TeA(t+T−τ)Bu(τ)dτ≈Bu(k)∫tt+TeA(t+T−τ)dτ\int_t^{t+T} e^{A(t+T-\tau)} Bu(\tau) d\tau \approx Bu(k)\int_t^{t+T} e^{A(t+T-\tau)}d\tautt+TeA(t+Tτ)Bu(τ)dτBu(k)tt+TeA(t+Tτ)dτ

4.计算积分

∫tt+TeA(t+T−τ)dτ=[−1AeA(t+T−τ)]tt+T=1A(eAT−I)\int_t^{t+T} e^{A(t+T-\tau)}d\tau = [-\frac{1}{A} e^{A(t+T-\tau)}]_t^{t+T}=\frac{1}{A}(e^{AT} - I)tt+TeA(t+Tτ)dτ=[A1eA(t+Tτ)]tt+T=A1(eATI)

5. 最终离散时间模型:将输入的影响合并到状态更新中,我们得到离散时间模型:

x(k+1)=eATx(k)+B(1A(eAT−I))u(k)x(k+1) = e^{AT} x(k) + B \left( \frac{1}{A} (e^{AT} - I) \right) u(k)x(k+1)=eATx(k)+B(A1(eATI))u(k)

其中kkk 是离散时间步长,x(k)x(k)x(k) 是在时间步 kkk 的系统状态。

6. 输出计算:输出 y(k)y(k)y(k) 可以通过当前状态x(k)x(k)x(k) 计算:

y(k)=Cx(k)y(k) = Cx(k)y(k)=Cx(k)

对于一阶系统,C=IC = IC=I ,因此:

y(k)=x(k)y(k) = x(k)y(k)=x(k)

4. 离散时间系统的状态空间表示

最终,离散时间系统的状态空间表示为:

x(k+1)=Adx(k)+Bdu(k)x(k+1) = A_d x(k) + B_d u(k)x(k+1)=Adx(k)+Bdu(k)

y(k)=x(k)y(k) = x(k)y(k)=x(k)

其中:

Ad=eATA_d=e^{AT}Ad=eAT

Bd=BA(Ad−I)B_d = \frac{B}{A} (A_d - I)Bd=AB(AdI)是离散时间系统的输入矩阵。

通过这种方法,我们可以将任何连续时间线性时不变系统转换为离散时间系统,从而在数字控制系统设计和仿真中使用。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐