离散系统的差分方程

差分方程

连续系统的动态过程采用拉普拉斯变换求解微分方程描述,离散系统的动态过程采用z变换求解差分方程描述。差分方程表示出系统离散输入与离散输出之间的函数关系。

一阶前向差分:

Δf(k)=f(k+1)f(k)

二阶前向差分:

Δ2f(k)=Δ[Δf(k)]=Δf(k+1)Δf(k)=f(k+2)2f(k+1)+f(k)

N 阶前向差分:

Δnf(k)=Δ[Δn1f(k)]

一阶后向差分:

f(k)=f(k)f(k1)

二阶后向差分:

2f(k)=[f(k)]=f(k)f(k1)=f(k)2f(k1)+f(k2)

N 阶后向差分:

nf(k)=[n1f(k)]

如果一个方程中除了含有函数本身外,还有函数的差分,称此方程为差分方程。差分方程的阶次为最高差分与最低差分之差。

φ[k,x(k),Δx(k),Δ2x(k),,Δnx(k)]

传递函数离散化

将s域下的传递函数G(s)经过z变换将s变量全部替换为z得到G(z)。常用s域和z域的对应关系如下,T为采样时间

前向差分变换(嵌入式常用离散方法)

z=eTs1+Tss=z1T

后向差分变换

z=eTs=(eTs)111Tss=1z1T

双线性变换(Tustin)

z=eTs=eTs2(eTs2)11+Ts21Ts2s=2T1z11+z1

Z变换转为差分方程

zy(z)=y(k+1),z1y(z)=y(k1)

以连续系统的一阶传递函数为例,对其进行z变换离散化,然后写成差分方程的形式即可在嵌入式设备运行。

一阶传递函数,G(z)为连续系统输出与输入之比。

G(s)=bs+a

对一阶传递函数使用前向差分法离散化,G(z)为离散系统输出与输入之比。将z变换写成差分方程形式,

G(z)=Tbz+(Ta1)=y(z)u(z)[z+(Ta1)]y(z)=Tbu(z)zy(z)=(1Ta)y(z)+Tbu(z)y(k+1)=(1Ta)y(k)+Tbu(k)

状态空间方程离散化

连续系统的状态空间方程表示为

{x˙=Ax+Buy=Cx+Du

将状态空间方程离散化方法有欧拉法和零阶保持法等,采样时间为 T。

欧拉法

欧拉法也称前向差分法,采用如下公式近似微分

x˙=x(k+1)x(k)T

带入连续状态空间方程得

x˙=x(k+1)x(k)T=Ax(k)+Bu(k)x(k+1)x(k)=T[Ax(k)+Bu(k)]x(k+1)=(I+TA)x(k)+TBu(k)

最终得到离散状态空间方程

{x(k+1)=Azx(k)+Bzu(k)y(k)=Czx(k)+Dzu(k)Az=I+TA;Bz=TB;Cz=C;Dz=D

零阶保持器法

在连续系统的状态空间方程添加零阶保持器,然后一起Z变换离散化结合泰勒公式得到离散状态空间方程,其中离散状态空间方程的矩阵A和B的求解可以参照矩阵的一阶非齐次微分方程。

x˙=Ax+Bu

两边左乘eAt,整理得

eAt[x˙(t)Ax(t)]=eAtBu(t)ddt[eAtx(t)]=eAtBu(t)

两边积分整理可得到

x(t)=eAtx(0)+0teA(tτ)Bu(τ)d(τ)

t=kT

x(kT)=eAkTx(0)+0kTeA(kTτ)Bu(τ)d(τ)

t=(k+1)T

x[(k+1)T]=eA[(k+1)T]x(0)+0(k+1)TeA[(k+1)Tτ]Bu(τ)d(τ)

整理得

x[(k+1)T]=eATx(kT)+kT(k+1)TeA[(k+1)Tτ]Bu(τ)d(τ)

当使用零阶保持器时,有

u(t)uh(t),kTt(k+1)T

变换积分空间得

x[(k+1)T]=eATx(kT)+(0TeATdt)u(kT)

例:

线性定常系统的状态方程描述为

x˙=Ax+BuA=[0003],B=[2323]

eAT=[100e3T]0TeATBdt=0T[100e3T][2323]dt=[23T29(e3T1)]

采用零阶保持器得差分方程为

x1(k+1)=x1(k)+23Tu(k)x2(k+1)=e3Tx2(k)+29(e3T1)u(k)

posted @   华小电  阅读(2142)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
点击右上角即可分享
微信分享提示