关于线性连续系统转换到离散系统的方法

本文介绍了将线性连续系统转换为离散系统的方法,包括传递函数的z变换以及状态空间方程的欧拉法和零阶保持法。通过z变换,可以将传递函数中的s替换为z。对于状态空间方程,欧拉法利用泰勒展开进行离散化,而零阶保持法则考虑了系统在采样时间内的积分,提供了更精确的转换。零阶保持法在稳定性和精度上优于欧拉法。
摘要由CSDN通过智能技术生成

关于线性连续系统转换到离散系统的方法

虽然通常在分析设计控制器时,总是针对连续系统设计的。但是若要将其在实际工程中应用起来,则免不了需要将它转换为离散的形式。本文主要对连续系统转换到离散系统的几种方法进行了汇总,便于之后的翻阅。

参考资料:

1.传递函数

线性连续系统的一种重要的表示形式为传递函数。将传递函数进行离散化的方法就是z变换,将传递函数中的"s"变量全部用"z"替换即可。
G ( s ) ⟶ G ( z ) G(s) \longrightarrow G(z) G(s)G(z)
常见的三种"s"与"z"的对应关系分别如下所示,其中 T T T表示采样时间。

  • 前项差分变换
    z = 1 + T s (1) z=1+Ts \tag{1} z=1+Ts(1)

  • 后项差分变换
    z = 1 1 − T s (2) z=\frac{1}{1-Ts} \tag{2} z=1Ts1(2)

  • 双线性变换(Tustin变换)
    z = 1 + T s / 2 1 − T s / 2 (3) z=\frac{1+Ts/2}{1-Ts/2} \tag{3} z=1Ts/21+Ts/2(3)

2.状态空间方程

线性连续系统的另一种重要的表示形式为状态空间方程。一般来说,将状态空间方程进行离散化的方法有两种,分别为欧拉法和零阶保持法。下面分别进行介绍。
{ x ˙ = A x + B u y = C x + D u ⟶ { x ( k + 1 ) = A z x ( k ) + B z u ( k ) y ( k ) = C z x ( k ) + D z u ( k ) \begin{cases} \dot{x}=Ax+Bu \\ y=Cx+Du \end{cases} \longrightarrow \begin{cases} x(k+1)=A_zx(k)+B_zu(k) \\ y(k)=C_zx(k)+D_zu(k) \end{cases} {x˙=Ax+Buy=Cx+Du{x(k+1)=Azx(k)+Bzu(k)y(k)=Czx(k)+Dzu(k)

2.1.欧拉法

欧拉法利用了泰勒展开式的一阶近似,将状态导数表示为了如下形式
x ˙ = x ( k + 1 ) − x ( k ) T (4) \dot{x}=\frac{x(k+1)-x(k)}{T} \tag{4} x˙=Tx(k+1)x(k)(4)
将上式代入状态空间方程,可以得到离散化状态空间方程
{ x ( k + 1 ) = A z x ( k ) + B z u ( k ) y ( k ) = C z x ( k ) + D z u ( k ) (5) \begin{cases} x(k+1)=A_zx(k)+B_zu(k) \\ y(k)=C_zx(k)+D_zu(k) \end{cases} \tag{5} {x(k+1)=Azx(k)+Bzu(k)y(k)=Czx(k)+Dzu(k)(5)
上式中, A z = I + T A , B z = T B , C z = C , D z = D A_z=I+TA,B_z=TB,C_z=C,D_z=D Az=I+TA,Bz=TB,Cz=C,Dz=D

2.2.零阶保持法

我们知道,线性系统的状态空间方程的解可以表示为
x ( t ) = e A ( t − t 0 ) x ( t 0 ) + ∫ t 0 t e A ( t − τ ) B u ( τ ) d τ (6) x(t)=e^{A(t-t_0)}x(t_0)+\int_{t_0}^t{e^{A(t-\tau)}Bu(\tau)d\tau} \tag{6} x(t)=eA(tt0)x(t0)+t0teA(tτ)Bu(τ)dτ(6)
上式中, e A ( t − t 0 ) e^{A(t-t_0)} eA(tt0)表示系统的状态转移矩阵, e A e^A eA的形式称为矩阵指数。

定义时间间隔为 T = t k + 1 − t k T=t_{k+1}-t_{k} T=tk+1tk,且假设在时间间隔内 A ( t ) , B ( t ) , u ( t ) A(t),B(t),u(t) A(t),B(t),u(t)保持不变。则式(6)可以写成
x ( t k + 1 ) = e A T x ( t k ) + ∫ 0 T e A ( T − τ ) d τ B u ( t k ) = e A T x ( t k ) + e A T ∫ 0 T e − A τ d τ B u ( t k ) (7) \begin{aligned} x(t_{k+1})&=e^{AT}x(t_k)+\int_{0}^T{e^{A(T-\tau)}d\tau}Bu(t_k) \\ &=e^{AT}x(t_k)+e^{AT}\int_{0}^T{e^{-A\tau}d\tau}Bu(t_k) \end{aligned} \tag{7} x(tk+1)=eATx(tk)+0TeA(Tτ)dτBu(tk)=eATx(tk)+eAT0TeAτdτBu(tk)(7)
由式(7)可以确定, A z = e A T , B z = e A T ∫ 0 T e − A τ d τ B A_z=e^{AT},B_z=e^{AT}\int_{0}^T{e^{-A\tau}d\tau}B Az=eAT,Bz=eAT0TeAτdτB

在计算矩阵 B z B_z Bz时,由于存在矩阵指数的积分运算,在实际使用时可能会比较麻烦。当矩阵 A A A可逆时,矩阵指数的积分运算可以进行简化,如式(8)所示。具体推导过程详见Optimal State Estimation Kalman, H Infinity, and Nonlinear Approaches
∫ 0 T e − A τ d τ = [ I − e − A T ] A − 1 (8) \int_{0}^T{e^{-A\tau}d\tau}=[I-e^{-AT}]A^{-1} \tag{8} 0TeAτdτ=[IeAT]A1(8)
以上介绍的两种离散化方法中,零阶保持法在精确度和稳定性方面优于欧拉法。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值