离散系统的差分方程

发布时间 2023-08-05 17:39:46作者: 华小电

差分方程

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

一阶前向差分:

\[\Delta f(k)=f(k+1)-f(k) \]

二阶前向差分:

\[\Delta^2f(k)=\Delta[\Delta f(k)]=\Delta f(k+1)-\Delta f(k)=f(k+2)-2f(k+1)+f(k) \]

N 阶前向差分:

\[\Delta^n f(k)=\Delta[\Delta^{n-1}f(k)] \]

一阶后向差分:

\[\nabla f(k)=f(k)-f(k-1) \]

二阶后向差分:

\[\nabla^2f(k)=\nabla[\nabla f(k)]=\nabla f(k)-\nabla f(k-1)=f(k)-2f(k-1)+f(k-2) \]

N 阶后向差分:

\[\nabla^n f(k)=\nabla[\nabla^{n-1}f(k)] \]

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

\[\varphi [k,x(k),\Delta x(k),\Delta^2 x(k),\cdots,\Delta^n x(k)] \]

传递函数离散化

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

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

\[z=e^{Ts}\approx 1+Ts\Leftrightarrow s=\frac{z-1}{T} \]

后向差分变换

\[z=e^{Ts}=(e^{Ts})^{-1}\approx \frac{1}{1-Ts} \Leftrightarrow s=\frac{1-z^{-1}}{T} \]

双线性变换(Tustin)

\[z=e^{Ts}=e^{\frac{Ts}{2}}(e^{-\frac{Ts}{2}})^{-1} \approx \frac {1+\frac{Ts}{2}}{1-\frac{Ts}{2}} \Leftrightarrow s=\frac{2}{T}\frac{1-z^{-1}}{1+z^{-1}} \]

Z变换转为差分方程

\[zy(z)=y(k+1),z^{-1}y(z)=y(k-1) \]

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

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

\[G(s)=\frac{b}{s+a} \]

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

\[G(z)=\frac{Tb}{z+(Ta-1)}=\frac{y(z)}{u(z)}\\ \Rightarrow [z+(Ta-1)]y(z)=Tbu(z)\\ \Rightarrow zy(z)=(1-Ta)y(z)+Tbu(z)\\ \Rightarrow y(k+1)=(1-Ta)y(k)+Tbu(k) \]

状态空间方程离散化

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

\[\begin{cases} \dot{x}=\mathbf{A}x+\mathbf{B}u\\ y = \mathbf{C}x+\mathbf{D}u \end{cases} \]

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

欧拉法

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

\[\dot{x}=\frac{x(k+1)-x(k)}{T} \]

带入连续状态空间方程得

\[\dot{x}=\frac{x(k+1)-x(k)}{T}=\mathbf{A}x(k)+\mathbf{B}u(k)\\ \Rightarrow x(k+1)-x(k)=T[\mathbf{A}x(k)+\mathbf{B}u(k)]\\ \Rightarrow x(k+1)=(\mathbf{I}+T\mathbf{A})x(k)+T\mathbf{B}u(k) \]

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

\[\begin{aligned} & \begin{cases} x(k+1)=\mathbf{A_z}x(k)+\mathbf{B_z}u(k)\\ y(k)=\mathbf{C_z}x(k)+\mathbf{D_z}u(k)\\ \end{cases}\\ & \mathbf{A_z}=\mathbf{I}+T\mathbf{A}; \mathbf{B_z}=T\mathbf{B};\\ & \mathbf{C_z}=\mathbf{C};\mathbf{D_z}=\mathbf{D} \end{aligned} \]

零阶保持器法

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

\[\dot x = \mathbf{A}x+ \mathbf{B}u \]

两边左乘\(e^{-\mathbf{A}t}\),整理得

\[e^{-\mathbf{A}t}[\dot x(t)-\mathbf{A}x(t)]=e^{-\mathbf{A}t}\mathbf{B}u(t)\\ \frac{\text{d}}{\text{d}t}[e^{-\mathbf{A}t}x(t)]=e^{-\mathbf{A}t}\mathbf{B}u(t) \]

两边积分整理可得到

\[x(t)=e^{\mathbf{A}t}x(0)+\int_0^te^{\mathbf{A}(t-\tau)}\mathbf{B}u(\tau)\text{d}(\tau) \]

\(t=kT\)

\[x(kT)=e^{\mathbf{A}kT}x(0)+\int_0^{kT}e^{\mathbf{A}(kT-\tau)}\mathbf{B}u(\tau)\text{d}(\tau) \]

\(t=(k+1)T\)

\[x[(k+1)T]=e^{\mathbf{A}[(k+1)T]}x(0)+\int_0^{(k+1)T}e^{\mathbf{A}[(k+1)T-\tau]}\mathbf{B}u(\tau)\text{d}(\tau) \]

整理得

\[x[(k+1)T]=e^{\mathbf{A}T}x(kT)+\int_{kT}^{(k+1)T}e^{\mathbf{A}[(k+1)T-\tau]}\mathbf{B}u(\tau)\text{d}(\tau) \]

当使用零阶保持器时,有

\[u(t)\approx u_h(t),\quad kT\leq t \leq (k+1)T \]

变换积分空间得

\[x[(k+1)T]=e^{\mathbf{A}T}x(kT)+(\int_0^Te^{\mathbf{A}T}\text{d}t)u(kT) \]

例:

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

\[\dot x=\mathbf{A}x+\mathbf{B}u\\ \mathbf{A}=\begin{bmatrix}0 & 0 \\ 0 & 3\\ \end{bmatrix},\mathbf{B}=\begin{bmatrix}\frac{2}{3} \\ -\frac{2}{3} \\ \end{bmatrix} \]

\[e^{\mathbf{A}T} = \begin{bmatrix} 1& 0\\ 0 & e^{-3T}\end{bmatrix}\\ \int_0^T e^{\mathbf{A}T}\mathbf{B}\text{d}t = \int_0^T\begin{bmatrix} 1& 0\\ 0 & e^{-3T}\end{bmatrix}\begin{bmatrix} \frac{2}{3} \\ -\frac{2}{3}\end{bmatrix}\text{d}t= \begin{bmatrix} \frac{2}{3}T \\ \frac{2}{9}(e^{3T}-1)\end{bmatrix} \]

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

\[\begin{aligned} & x_1(k+1)=x_1(k)+\frac{2}{3}Tu(k) \\ & x_2(k+1)=e^{-3T}x_2(k)+\frac{2}{9}(e^{3T}-1)u(k) \end{aligned} \]