矩阵指数离散化推导
矩阵指数离散化是一种将连续时间线性时不变(LTI)系统转换为离散时间系统的方法。这种方法特别适用于状态空间表示的系统。
矩阵指数离散化推导
矩阵指数离散化是一种将连续时间线性时不变(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=−A,B=BB = BB=B,C=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(t−t0)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}e−At 得:e−Atx˙(t)−Ae−Atx(t)=Be−Atu(t)e^{-At}\dot{x}(t) -Ae^{-At}x(t)= Be^{-At}u(t)e−Atx˙(t)−Ae−Atx(t)=Be−Atu(t)
上式左边可以看作:[e−Atx(t)]′=e−Atx˙(t)−Ae−Atx(t)[e^{-At}x(t)]'=e^{-At}\dot{x}(t) -Ae^{-At}x(t)[e−Atx(t)]′=e−Atx˙(t)−Ae−Atx(t)
替换后:[e−Atx(t)]′=Be−Atu(t)[e^{-At}x(t)]'=Be^{-At}u(t)[e−Atx(t)]′=Be−Atu(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\tau∫t0t[e−Aτx(τ)]′dτ=∫t0tBe−Aτ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\taue−Atx(t)−e−At0x(t0)=∫t0tBe−Aτ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(t−t0)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\tau∫tt+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(eAT−I)
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(eAT−I))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(Ad−I)是离散时间系统的输入矩阵。
通过这种方法,我们可以将任何连续时间线性时不变系统转换为离散时间系统,从而在数字控制系统设计和仿真中使用。
更多推荐
所有评论(0)