Discretization of Analog Controllers

离散系统控制设计完后,都写上控制器算法

D(z)=\dfrac{U(z)}{E(z)}\quad \quad u(k)=\mathscr{Z}^{-1}[D(z)E(z)] \end{align}$$ ### 一、响应不变法(z 变换法) #### 1.1 脉冲响应不变法 基本思想:数字控制器 $D(z)$ 产生的脉冲响应序列与模拟控制器 $D(s)$ 产生的**脉冲响应序列在采样瞬间相等**。由于 $\mathscr{L}[\delta(t)]=1$,实际上就是对 $D(s)$ 取 [[z 变换\|z 变换]]: $$\begin{align} U(s)=D(s)E(s)=D(s)\quad D(z)=\mathscr{Z}[D(s)] \end{align}$$ 如果原控制器稳定,则离散化后也稳定,不具有串联性质 #### 1.2 阶跃响应不变法 基本思想:数字控制器 $D(z)$ 产生的单位阶跃响应与模拟控制器 $D(s)$ 产生的单位阶跃响应在采样瞬间相等。实际上就是 [[脉冲传递函数#开环控制\|ZOH 串联的广义对象]] 的 z 变换: $$\begin{align} D(z)=\mathscr{Z}[\dfrac{1-e^{ -Ts }}{s} D(s)]=(1-z^{-1}) \mathscr{Z}[ \dfrac{D(s)}{s}] \end{align}$$ 如果原控制器稳定,则离散化后也稳定,不具有串联性质 例子: $D(s)= \dfrac{a}{s+a}$,求阶跃响应不变法对应的数字控制器,以及对应的差分方程 $$\begin{align} \dfrac{U(z)}{E(z)} & =D(z)=(1-z^{-1})\mathscr{Z}[\dfrac{a}{(s+a)s}]=(1-z^{-1})\mathscr{Z}[(\dfrac{1}{s}- \dfrac{1}{s+a})] \\ & =(1-z^{-1}) (\dfrac{1}{1-z^{-1}}- \dfrac{1}{1-e^{ -aT }z^{-1}})=\dfrac{z^{-1}(1-e^{ -aT })}{1-e^{ -aT }z^{-1}} \end{align}$$ 进一步得到差分方程: $$\begin{align} u(k)-e^{ -aT }u(k-1)=(1-e^{ -aT })e(k-1) \end{align}$$ ### 二、差分变换法 将微分方程中的**导数项用有限差分**来近似等效,得到一个与原微分方程逼近的差分方程。[[欧拉法\|欧拉法]] 根据 [[z 变换\|z 变换]] 的定义,以及[[泰勒级数\|泰勒级数]]展开有: $$\begin{align} z=e^{ Ts }=1+Ts+ \dfrac{T^{2}s^{2}}{2!}+\cdots \end{align}$$ ![差分变换.png](../img/user/Functional%20files/Photo%20Resources/%E5%B7%AE%E5%88%86%E5%8F%98%E6%8D%A2.png) 离散化稳态增益保持不变,都不能保持脉冲响应和频率响应 #### 1. 前向差分 $$\begin{align} z=e^{ sT }\approx 1+Ts\quad \Rightarrow\quad s=\dfrac{z-1}{T} \\ \end{align}$$ 前向差分可能将 s 域左半平面的稳定极点映射到 z 平面单位圆外。 原控制器 $D(s)$ 稳定时,数字控制器 $D(z)$ 不一定稳定,实际一般不用前向差分 #### 2. 后向差分 $$\begin{align} \dfrac{\mathrm{d} u(t)}{\mathrm{d} t} \approx \dfrac{u(k)-u(k-1)}{T}=e(k) \end{align}$$ $$\begin{align} e^{ sT} = \dfrac{1}{e^{ -sT }} \approx \dfrac{1}{1-Ts}\quad \Rightarrow\quad s= \dfrac{z-1}{Tz} \end{align}$$ 后向差分将 s 域左半平面的稳定极点映射到 z 平面单位圆内的一个小圆内。 如果 $D(s)$ 稳定,则离散化的数字控制器 $D(z)$ 也一定稳定。(应用较多) (映射关系有畸变,变换精度较低) #### 3. 双线性差分 Tustin 变换法 $$\begin{align} u(k)=u(k-1)+ \dfrac{T}{2 }[e(k)-e(k-1)] \end{align}$$ $$\begin{align} e^{ sT }=\dfrac{e^{ sT/ 2 }}{e^{ -sT / 2 }}\approx \dfrac{1+ \dfrac{T}{2}s}{1- \dfrac{T}{2 } s}\quad \Rightarrow\quad s= \dfrac{2}{T} \dfrac{z-1}{z+1} \end{align}$$ 双线性差分将 s 域左半平面的稳定极点映射到 z 平面单位圆内。 如果 $D(s)$ 稳定,则离散化的数字控制器 $D(z)$ 也一定稳定。(应用较多) > [!important] > > 注意得到数字控制器后,如果要进一步得到差分方程,要注意不要出现 $z$ 的项,可以上下同除以 $z$ $$\begin{align} D(z)=\dfrac{U(z)}{E(z)}= \dfrac{aT}{z+(aT-1)}=\dfrac{aTz^{-1}}{1+(aT-1)z^{-1}}\; {\color{red}\Rightarrow} \; u(k)=aTe(k-1)-(aT-1)u(k-1) \end{align}$$ $$\begin{align} D(z)=\dfrac{U(z)}{E(z)}= \dfrac{z+1}{Az+B} =\dfrac{1+z^{-1}}{A+Bz^{-1}}\; {\color{red}\Rightarrow} \; u(k)=-\dfrac{B}{A}u(k-1)+\dfrac{1}{A}(e(k)+e(k-1)) \end{align}$$ ### 三、零极点匹配法 基本步骤: 1. 将模拟控制器写为零极点的形式, 2. 将零点或极点按照 $z=e^{ Ts }$ 映射到 z 平面:$s+a\to z-e^{ -aT }$ 3. 当极点数为 $n$,零点数为 $m$ 时,在分子上补充 $(z+1)^{n-m}$,保证零极点个数相等 4. **选定经典输入信号**,按照稳态增益相等的原则匹配增益 $k_{z}$ 模拟控制器使用:[[拉普拉斯变换#6.极限性质\|拉普拉斯变换#6.极限性质]] 数字控制器使用: [[z 变换#4. 极限定理\|z 变换#4. 极限定理]] 经典控制输入信号的选择要保证:原来的模拟控制器稳态为常数,才有意义 $$\begin{align} D(s)=\dfrac{k_{s}\prod\limits_{i=1}^{m}(s+z_{i})}{\prod\limits_{i=1}^{n}(s+p_{i})} \; {\color{red}\Rightarrow} \;D(z)= \dfrac{k_{z}\prod\limits_{i=1}^{m}(z- e^{ -z_{i}T })}{\prod\limits_{i=1}^{n}(z-e^{ -p_{i}T } )} (z+1)^{n-m} \end{align}$$ $$\begin{align} \lim\limits_{ s \to 0 } sD(s) R(s)= \lim\limits_{ z \to 1 } (z-1) D(z) R(z) \; {\color{red}\Rightarrow} \; k_{z} \end{align}$$ > [!important] > > 注意写为零极点形式(无论是模拟控制器还是数字控制器),都要在形式上把**增益分离出来**,避免混淆 #### 例题 1 $$\begin{align} & D(s)=\dfrac{a}{s+a}= a\cdot \dfrac{1}{s+a}\; {\color{red}\Rightarrow} \; D(z)= k_{z} \dfrac{1}{z-e^{ -aT }} (z+1) \\ & \lim\limits_{ s \to 0 } sD(s) \dfrac{1}{s}=1\quad \lim\limits_{ z \to 1 } (z-1) \dfrac{z}{z-1} \dfrac{k_{z}}{z-e^{ -aT }}(z+1)= \dfrac{2k_{z}}{1-e^{ -aT }}=1 \end{align}$$ #### 例题 2 $$\begin{align} D(s)= \dfrac{s+2}{(s+1)(s+4)}\; {\color{red}\Rightarrow} \; D(z)=K_{z} \dfrac{(z-e^{ -2T })(z+1)}{(z-e^{ -T })(z-e^{ -4T })} \end{align}$$ $$\begin{align} \lim\limits_{ s \to 0 } sD(s)R(s)= \lim\limits_{ s \to 0 } s\dfrac{s+2}{(s+1) (s+4)} \dfrac{1}{s}= \dfrac{1}{2} \end{align}$$ $$\begin{align} \lim\limits_{ z \to 1 } (1-z^{-1})D(z)R(z)= (1-z^{-1}) \cdot K_{z} \dfrac{(z-e^{ -2T })(z+1)}{(z-e^{ -T })(z-e^{ -4T })} \cdot \dfrac{1}{1-z^{-1}}=\dfrac{2K_{z}(1-e^{ -2T })}{(1-e^{ -T })(1-e^{ -4T })}=\dfrac{1}{2} \end{align}$$