矩阵指数离散化推导
矩阵指数离散化是一种将连续时间线性时不变(LTI)系统转换为离散时间系统的方法。这种方法特别适用于状态空间表示的系统。以下是详细介绍矩阵指数离散化的过程:
1. 连续时间系统的状态空间表示
首先,我们需要将连续时间系统表示为状态空间形式。对于给定的微分方程:
y ′ ( t ) = − A y ( t ) + B u ( 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 ) = A x ( t ) + B u ( t ) \dot{x}(t) = Ax(t) + Bu(t) x˙(t)=Ax(t)+Bu(t)
y ( t ) = C x ( t ) + D u ( t ) y(t)=Cx(t)+Du(t) y(t)=Cx(t)+Du(t)
其中:
- A是系统矩阵。
- B是输入矩阵。
- C是输出矩阵。
-D是直接传递矩阵。
对于一阶系统,状态空间表示可以简化为:
x ˙ ( t ) = A x ( t ) + B u ( 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 = − A A = -A A=−A, B = B B = B B=B, C = I C = I C=I(单位矩阵), D = 0 D=0 D=0
2. 矩阵指数
矩阵指数是将矩阵$ A$的指数函数定义为:
e A t = I + A t + ( A t ) 2 2 ! + ( A t ) 3 3 ! + ⋯ e^{At} = I + At + \frac{(At)^2}{2!} + \frac{(At)^3}{3!} + \cdots eAt=I+At+2!(At)2+3!(At)3+⋯
其中 I I I 是单位矩阵。
连续时间LTI系统的状态可以通过矩阵指数解来表示:
x ( t ) = e A ( t − t 0 ) x ( t 0 ) + ∫ t 0 t e A ( t − τ ) B u ( τ ) d τ x(t)=e^{A(t-t_0)}x(t_0)+\int_{t_0}^t e^{A(t-\tau)} Bu(\tau) d\tau x(t)=eA(t−t0)x(t0)+∫t0teA(t−τ)Bu(τ)dτ
解的推导:
对进行变换: x ˙ ( t ) = A x ( t ) + B u ( t ) \dot{x}(t) = Ax(t) + Bu(t) x˙(t)=Ax(t)+Bu(t)
先移相: x ˙ ( t ) − A x ( t ) = B u ( t ) \dot{x}(t) -Ax(t)= Bu(t) x˙(t)−Ax(t)=Bu(t)
两边同乘积分因子 e − A t e^{-At} e−At 得: e − A t x ˙ ( t ) − A e − A t x ( t ) = B e − A t u ( t ) e^{-At}\dot{x}(t) -Ae^{-At}x(t)= Be^{-At}u(t) e−Atx˙(t)−Ae−Atx(t)=Be−Atu(t)
上式左边可以看作: [ e − A t x ( t ) ] ′ = e − A t x ˙ ( t ) − A e − A t x ( t ) [e^{-At}x(t)]'=e^{-At}\dot{x}(t) -Ae^{-At}x(t) [e−Atx(t)]′=e−Atx˙(t)−Ae−Atx(t)
替换后: [ e − A t x ( t ) ] ′ = B e − A t u ( t ) [e^{-At}x(t)]'=Be^{-At}u(t) [e−Atx(t)]′=Be−Atu(t)
对上式在 [ t 0 , t ] [t_0,t] [t0,t]区间上求积分: ∫ t 0 t [ e − A τ x ( τ ) ] ′ d τ = ∫ t 0 t B e − A τ u ( τ ) d τ \int_{t_0}^t[e^{-A\tau}x(\tau)]'d\tau=\int_{t_0}^tBe^{-A\tau}u(\tau)d\tau ∫t0t[e−Aτx(τ)]′dτ=∫t0tBe−Aτu(τ)dτ
求得: e − A t x ( t ) − e − A t 0 x ( t 0 ) = ∫ t 0 t B e − A τ u ( τ ) d τ e^{-At}x(t)-e^{-At_0}x(t_0)=\int_{t_0}^tBe^{-A\tau}u(\tau)d\tau e−Atx(t)−e−At0x(t0)=∫t0tBe−Aτu(τ)dτ
式子两边同乘 e A t e^{At} eAt 并移相得: x ( t ) = e A ( t − t 0 ) x ( t 0 ) + ∫ t 0 t e A ( t − τ ) B u ( τ ) d τ x(t)=e^{A(t-t_0)}x(t_0)+\int_{t_0}^t e^{A(t-\tau)} Bu(\tau) d\tau x(t)=eA(t−t0)x(t0)+∫t0teA(t−τ)Bu(τ)dτ
3. 离散化过程
1. 确定离散时间步长 T T T:选择一个离散时间步长 T T T。
2. 使用矩阵指数近似状态更新:在连续时间系统中,状态更新可以通过矩阵指数来描述:
x ( t + T ) = e A T x ( t ) + ∫ t t + T e A ( t + T − τ ) B u ( τ ) d τ x(t + T) = e^{AT} x(t)+\int_t^{t+T} e^{A(t+T-\tau)} Bu(\tau) d\tau x(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不变),则积分可近似为:
∫ t t + T e A ( t + T − τ ) B u ( τ ) d τ ≈ B u ( k ) ∫ t t + T e A ( 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\tau ∫tt+TeA(t+T−τ)Bu(τ)dτ≈Bu(k)∫tt+TeA(t+T−τ)dτ
4.计算积分:
∫ t t + T e A ( t + T − τ ) d τ = [ − 1 A e A ( t + T − τ ) ] t t + T = 1 A ( e A T − 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(eAT−I)
5. 最终离散时间模型:将输入的影响合并到状态更新中,我们得到离散时间模型:
x ( k + 1 ) = e A T x ( k ) + B ( 1 A ( e A T − 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(eAT−I))u(k)
其中 k k k 是离散时间步长, x ( k ) x(k) x(k) 是在时间步 k k k 的系统状态。
6. 输出计算:输出 y ( k ) y(k) y(k) 可以通过当前状态 x ( k ) x(k) x(k) 计算:
y ( k ) = C x ( k ) y(k) = Cx(k) y(k)=Cx(k)
对于一阶系统, C = I C = I C=I ,因此:
y ( k ) = x ( k ) y(k) = x(k) y(k)=x(k)
4. 离散时间系统的状态空间表示
最终,离散时间系统的状态空间表示为:
x ( k + 1 ) = A d x ( k ) + B d u ( 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)
其中:
A d = e A T A_d=e^{AT} Ad=eAT
B d = B A ( A d − I ) B_d = \frac{B}{A} (A_d - I) Bd=AB(Ad−I)是离散时间系统的输入矩阵。
通过这种方法,我们可以将任何连续时间线性时不变系统转换为离散时间系统,从而在数字控制系统设计和仿真中使用。