传递函数离散化方法:差分,双线性Tustin,预矫正双线性,Matlab实现

传递函数严格离散化

  傅里叶变换、拉普拉斯变换,以及 Z Z Z变换的定义如下所示:
傅里叶变换 : { F ( ω ) = ∫ − ∞ ∞ f ( t ) e − j ω t d t f ( t ) = 1 2 π ∫ − ∞ ∞ F ( ω ) e j ω t d ω 傅里叶变换:\left\{ \begin{array}{l} F\left( \omega \right) = \int_{ - \infty }^\infty {f\left( t \right){e^{ - j\omega t}}dt} \\ f\left( t \right) = \frac{1}{{2\pi }}\int_{ - \infty }^\infty {F\left( \omega \right){e^{j\omega t}}d\omega } \end{array} \right. 傅里叶变换:{F(ω)=f(t)etdtf(t)=2π1F(ω)etdω

拉普拉斯变换 : { F ( s ) = ∫ − ∞ ∞ f ( t ) e − s t d t f ( t ) = 1 2 π j ∫ σ − j ∞ σ + j ∞ F ( s ) e s t d s 拉普拉斯变换:\left\{ \begin{array}{l} F\left( s \right) = \int_{ - \infty }^\infty {f\left( t \right){e^{ - st}}dt} \\ f\left( t \right) = \frac{1}{{2\pi j}}\int_{\sigma - j\infty }^{\sigma + j\infty } {F\left( s \right){e^{st}}ds} \end{array} \right. 拉普拉斯变换:{F(s)=f(t)estdtf(t)=2πj1σjσ+jF(s)estds

Z 变换 : { F ( z ) = ∑ f [ n ] z − n f [ n ] = 1 2 π j ∮ F ( z ) z n − 1 d z Z变换:\left\{ \begin{array}{l} F\left( z \right) = \sum {f\left[ n \right]{z^{ - n}}} \\ f\left[ n \right] = \frac{1}{{2\pi j}}\oint {F\left( z \right){z^{n - 1}}dz} \end{array} \right. Z变换:{F(z)=f[n]znf[n]=2πj1F(z)zn1dz

  可以利用如下映射关系,实现传递函数 F ( s ) F(s) F(s) F ( ω ) F(\omega) F(ω) F ( z ) F(z) F(z)之间的等价转换,详见《信号与系统》的“离散系统的Z域分析”章节:

s = j ω = 1 T ln ⁡ z ,或, z = e s T = e j ω T s = j\omega = \frac{1}{T}\ln z,或,z = {e^{sT}} = {e^{j\omega T}} s==T1lnz,或,z=esT=eT

  稳定性分析: 连续型传递函数稳定的充要条件为,所有极点均位于 s s s域左半平面;离散型传递函数稳定的充要条件为,所有极点均位于 z z z域原点为圆心的单位圆内。对于连续传函离散化问题, s s s域左半平面所有极点,经 z = e s T z=e^{sT} z=esT映射后,均位于 z z z域原点为圆心的单位圆内。因此,严格离散化前后,连续系统稳定,则离散系统稳定。

离散化方法1,前向欧拉,前向差分

  对于一个连续函数 y ( t ) y(t) y(t) k T kT kT时刻的微分可以做以下近似:
y ′ ( k ) ≈ y ( k + 1 ) − y ( k ) T y'(k) \approx \frac{{y(k + 1) - y(k)}}{T} y(k)Ty(k+1)y(k)

  对上式的左右两端分别进行拉氏变换和Z变换,可以得到如下映射关系:
s Y ( s ) ↔ z − 1 T Y ( z ) sY(s) \leftrightarrow \frac{{z - 1}}{T}Y(z) sY(s)Tz1Y(z)

  因此,可以令 s = z − 1 T s = \frac{{z - 1}}{T} s=Tz1实现S域传递函数到Z域传递函数的转换。值得注意的是,这种传递函数离散化是近似的, s = 1 T ln ⁡ z s=\frac{1}{T}\ln z s=T1lnz才是严格的,但并不方便数字实现。实际上, s = z − 1 T s = \frac{{z - 1}}{T} s=Tz1正是 s = 1 T ln ⁡ z s=\frac{1}{T}\ln z s=T1lnz,在 s = 0 s=0 s=0 z = 1 z=1 z=1时的近似表示。

  稳定性分析: 假设连续传递函数是稳定的,即传递函数极点位于 s s s域左半平面,分析离散化后极点在 z z z域平面位置,
s = z − 1 T ⇒ z = s T + 1 s = \frac{{z - 1}}{T} \Rightarrow z = sT + 1 s=Tz1z=sT+1
  前向欧拉离散化方法将 s s s域左半平面映射到 z z z z < 1 z<1 z<1区域,显然包含不稳定区域,稳定极点可能变为不稳定极点。因此,稳定的连续系统变换所得离散系统可能不稳定,这种方法很少用。

离散化方法2,后向欧拉,后向差分

  同理还有后向差分,将 y ( t ) y(t) y(t) k T kT kT时刻的微分做以下近似:
y ′ ( k ) ≈ y ( k ) − y ( k − 1 ) T y'(k) \approx \frac{{y(k) - y(k - 1)}}{T} y(k)Ty(k)y(k1)
  对上式的左右两端分别进行拉氏变换和Z变换,可以得到如下映射关系:
s Y ( s ) ↔ 1 − z − 1 T Y ( z ) sY(s) \leftrightarrow \frac{{1 - z^{-1}}}{T}Y(z) sY(s)T1z1Y(z)
  因此,可以令 s = 1 − z − 1 T s = \frac{{1 - z^{-1}}}{T} s=T1z1实现S域传递函数到Z域传递函数的转换。实际上, s = 1 − z − 1 T s = \frac{{1 - z^{-1}}}{T} s=T1z1也是 s = 1 T ln ⁡ z s=\frac{1}{T}\ln z s=T1lnz,在 s = 0 s=0 s=0 z = 1 z=1 z=1时的近似表示。

  稳定性分析: 假设连续传递函数是稳定的,即连续传函极点位于 s s s域左半平面,分析离散化后极点在 z z z域平面位置,
s = 1 − z − 1 T ⇒ z = 1 1 − s T s = \frac{{1 - z^{-1}}}{T} \Rightarrow z = \frac{1}{{1 - sT}} s=T1z1z=1sT1
  后向欧拉离散化方法将 s s s域左半平面映射到 z z z域以 ( 0.5 , 0 ) (0.5,0) (0.5,0)为圆心,以 0.5 0.5 0.5为半径的圆内(具体分析见附录)。也就是说,原来的连续系统稳定,则离散系统稳定。

离散化方法3,双线性变换,Tustin

  由于 z = e s T = e s T / 2 e − s T / 2 ≈ 1 + s T / 2 1 − s T / 2 z = {e^{sT}} = \frac{{{e^{sT/2}}}}{{{e^{ - sT/2}}}} \approx \frac{{1 + sT/2}}{{1 - sT/2}} z=esT=esT/2esT/21sT/21+sT/2,分子分母进行一阶泰勒线性展开,故得名双线性变换。进一步可以得到:
s = 2 T 1 − z − 1 1 + z − 1 s = \frac{2}{T}\frac{{1 - z^{-1}}}{{1 + z^{-1}}} s=T21+z11z1

  稳定性分析: 假设连续传递函数是稳定的,分析离散化后极点在 z z z域平面位置,
s = 2 T 1 − z − 1 1 + z − 1 ⇒ z = 1 + s T / 2 1 − s T / 2 s = \frac{2}{T}\frac{{1 - z^{-1}}}{{1 + z^{-1}}} \Rightarrow z = \frac{{1 + sT/2}}{{1 - sT/2}} s=T21+z11z1z=1sT/21+sT/2
  双线性变换离散化方法将 s s s域左半平面映射到 z z z域以 ( 0 , 0 ) (0,0) (0,0)为圆心,以 1 1 1为半径的单位圆内(具体分析见附录),这正是我们很希望看到的结果。因此,原来的连续传函稳定,则离散传函稳定。

离散化方法4,预矫正双线性变换,Tustin with Pre-Warping

问题描述

  上述方法均可实现连续系统的离散化,但因为离散化过程中采用了近似化手段,不可避免地引入了误差,使得离散化后的频域特性并不完全等价于连续系统,以下以双线性变换为例,进行说明。设计谐振频率 ω 0 = 1000 \omega_0=1000 ω0=1000 r a d / s rad/s rad/s的传递函数:
C a ( s )  =  s s 2 + 1000 2 {C_a}(s){\text{ = }}\frac{s}{{{s^2} + {{1000}^2}}} Ca(s) = s2+10002s

  采用双线性变换 s = 2 T z − 1 z + 1 s=\frac{2}{T} \frac{z-1}{z+1} s=T2z+1z1进行离散化,其中T取0.001,得到离散化后的传递函数:
C d ( z ) = C a ( s ) ∣ s = 2 T z − 1 z + 1  =  ( 2 T z − 1 z + 1 ) ( 2 T z − 1 z + 1 ) 2 + 1000 2 = 2000 z 2 − 2000 ( 2000 2 + 1000 2 ) z 2 + 2 ( 1000 2 − 2000 2 ) z + ( 1000 2 + 2000 2 ) {C_d}(z) = {C_a}(s){|_{s = \frac{2}{T}\frac{{z - 1}}{{z + 1}}}}{\text{ = }}\frac{{\left( {\frac{2}{T}\frac{{z - 1}}{{z + 1}}} \right)}}{{{{\left( {\frac{2}{T}\frac{{z - 1}}{{z + 1}}} \right)}^2} + {{1000}^2}}} = \frac{{2000{z^2} - 2000}}{{\left( {{{2000}^2} + {{1000}^2}} \right){z^2} + 2\left( {{{1000}^2} - {{2000}^2}} \right)z + \left( {{{1000}^2} + {{2000}^2}} \right)}} Cd(z)=Ca(s)s=T2z+1z1 = (T2z+1z1)2+10002(T2z+1z1)=(20002+10002)z2+2(1000220002)z+(10002+20002)2000z22000

  利用如下代码,对比连续传递函数和离散传递函数的波特图:

a=1000^2;b=2000^2;
Ca = tf([1,0],[1 0 a]);
Cd = tf([2000 0 -2000],[b+a 2*a-2*b b+a],0.001);
bode(Ca, Cd);legend('Ca','Cd')

  当然,也可以利用matlab实现双线性变换,两者效果是一致的(更多函数介绍请参考matlab函数用法:传递函数tf,波特图bode,离散化c2d):

Ca = tf([1,0],[1 0 1000^2]);
Cd = c2d(Ca,0.001,'tustin');
bode(Ca, Cd);legend('Ca','Cd')

  连续传递函数和离散传递函数的波特图对比结果如下所示。可以看出,近似的离散化过程使得离散传递函数特性发生了改变,离散化后传递函数的特性与所设计连续传递函数的特性不一致。

在这里插入图片描述

解决方案

  对离散化所引入的误差进行分析, C d ( z ) C_d(z) Cd(z)代表数字控制器, C a ( s ) C_a(s) Ca(s)代表模拟控制器,两者之间的转换关系如下:
C a ( s ) ∣ s = 2 T z − 1 z + 1 = C d ( z ) {C_a}(s){|_{s = \frac{2}{T}\frac{{z - 1}}{{z + 1}}}} = {C_d}(z) Ca(s)s=T2z+1z1=Cd(z)

  下面探究一下 C a ( s ) ∣ s = 2 T z − 1 z + 1 {C_a}(s){|_{s = \frac{2}{T}\frac{{z - 1}}{{z + 1}}}} Ca(s)s=T2z+1z1所对应的真实连续系统,注: sin ⁡ α = − j 0.5 ( e j α − e − j α ) , cos ⁡ α = 0.5 ( e j α + e − j α ) \sin \alpha = - j0.5\left( {{e^{j\alpha }} - {e^{ - j\alpha }}} \right), \cos \alpha = 0.5\left( {{e^{j\alpha }} + {e^{ - j\alpha }}} \right) sinα=j0.5(ejαejα),cosα=0.5(ejα+ejα):
{ C a ( s ) ∣ s = 2 T z − 1 z + 1 = C a ( 2 T e s T − 1 e s T + 1 ) = C a ( 2 T e j ω T − 1 e j ω T + 1 ) = C a [ 2 T e j ω T 2 ( e j ω T 2 − e − j ω T 2 ) e j ω T 2 ( e j ω T 2 + e − j ω T 2 ) ] = C a [ j ∗ 2 T tan ⁡ ( ω T 2 ) ] \left\{ \begin{aligned} {C_a}(s){|_{s = \frac{2}{T}\frac{{z - 1}}{{z + 1}}}} &= {C_a}(\frac{2}{T}\frac{{{e^{sT}} - 1}}{{{e^{sT}} + 1}})= {C_a}\left( {\frac{2}{T}\frac{{{e^{j\omega T}} - 1}}{{{e^{j\omega T}} + 1}}} \right)\\ &= {C_a}\left[ {\frac{2}{T}\frac{{{e^{j{\textstyle{{\omega T} \over 2}}}}\left( {{e^{j{\textstyle{{\omega T} \over 2}}}} - {e^{ - j{\textstyle{{\omega T} \over 2}}}}} \right)}}{{{e^{j{\textstyle{{\omega T} \over 2}}}}\left( {{e^{j{\textstyle{{\omega T} \over 2}}}} + {e^{ - j{\textstyle{{\omega T} \over 2}}}}} \right)}}} \right]\\ &= {C_a}\left[ {j*\frac{2}{T}\tan \left( {\frac{{\omega T}}{2}} \right)} \right] \end{aligned} \right. Ca(s)s=T2z+1z1=Ca(T2esT+1esT1)=Ca(T2eT+1eT1)=Ca T2ej2ωT(ej2ωT+ej2ωT)ej2ωT(ej2ωTej2ωT) =Ca[jT2tan(2ωT)]

   C d ( z ) {C_d}(z) Cd(z)并不对应 C a ( j ω ) {C_a}(j\omega) Ca(),而对应 C a [ j 2 T tan ⁡ ( ω 2 T ) ] {C_a}\left[ {j\frac{2}{T}\tan \left( {\frac{\omega }{2}T} \right)} \right] Ca[jT2tan(2ωT)],离散系统的 ω \omega ω会映射到连续系统的 2 T tan ⁡ ( ω T 2 ) \frac{2}{T}\tan \left( {\frac{\omega T}{2}} \right) T2tan(2ωT),这就是频率畸变现象。也就是说,分别以 ω \omega ω为横轴画出 C d ( z ) C_d(z) Cd(z)的波特图,和以 2 T tan ⁡ ( ω 2 T ) \frac{2}{T}\tan \left( {\frac{\omega }{2}T} \right) T2tan(2ωT)为横轴画出 C a ( s ) C_a(s) Ca(s)的波特图,两个波形图应该是完全对应的。当 ω T 2 \frac{\omega T}{2} 2ωT足够小时, j 2 T tan ⁡ ( ω 2 T ) {j\frac{2}{T}\tan \left( {\frac{\omega }{2}T} \right)} jT2tan(2ωT)是近似等于 j ω j\omega 的。但对于高频谐波,或者特定频率的分析,就不得不考虑这部分影响了。

  回顾上述所设计 C a ( s ) C_a(s) Ca(s)时,对于 1000 1000 1000 rad/s的角速度变化,传递函数取得最大值。由于离散系统的 ω \omega ω会映射到连续系统的 2 T tan ⁡ ( ω T 2 ) \frac{2}{T}\tan \left( {\frac{\omega T}{2}} \right) T2tan(2ωT),利用 2 T tan ⁡ ( ω T 2 ) = 1000 \frac{2}{T}\tan \left( {\frac{\omega T}{2}} \right) = 1000 T2tan(2ωT)=1000求解离散系统的原始 ω \omega ω,解得 ω = 927.3 \omega = 927.3 ω=927.3 rad/s,这与上述波特图结果是一致的。

  解决方案:离散系统的 ω \omega ω与连续系统的 2 T tan ⁡ ( ω T 2 ) \frac{2}{T}\tan \left( {\frac{\omega T}{2}} \right) T2tan(2ωT)之间存在映射关系,考虑将连续系统进行整体比例缩放,从而实现两者在目标频率 ω ∗ \omega^* ω处表现一致,具体操作如下表所示。 注意,预矫正双线性变换只是通过结合比例坐标变换,实现在目标频点处的特性一致,其他频点处特性仍存在差异。

离散变换关系连续
ω \omega ω s = 2 T z − 1 z + 1 s = \frac{2}{T}\frac{{z - 1}}{{z + 1}} s=T2z+1z1 2 T tan ⁡ ( ω T 2 ) \frac{2}{T}\tan \left( {\frac{\omega T}{2}} \right) T2tan(2ωT)
ω ∗ \omega^* ω s = 2 T z − 1 z + 1 s = \frac{2}{T}\frac{{z - 1}}{{z + 1}} s=T2z+1z1 2 T tan ⁡ ( ω ∗ T 2 ) \frac{2}{T}\tan \left( {\frac{\omega^* T}{2}} \right) T2tan(2ωT)
ω \omega ω s = ω ∗ T 2 tan ⁡ ( ω ∗ T 2 ) 2 T z − 1 z + 1 = ω ∗ tan ⁡ ( ω ∗ T 2 ) z − 1 z + 1 s = \frac{{\frac{{\omega^* T}}{2}}}{{\tan \left( {\frac{{\omega^* T}}{2}} \right)}}\frac{2}{T}\frac{{z - 1}}{{z + 1}} = \frac{\omega^* }{{\tan \left( {\frac{{\omega^* T}}{2}} \right)}}\frac{{z - 1}}{{z + 1}} s=tan(2ωT)2ωTT2z+1z1=tan(2ωT)ωz+1z1 ω ∗ T 2 tan ⁡ ( ω ∗ T 2 ) 2 T tan ⁡ ( ω T 2 ) = ω ∗ tan ⁡ ( ω ∗ T 2 ) tan ⁡ ( ω T 2 ) \frac{{\frac{{{\omega ^*}T}}{2}}}{{\tan \left( {\frac{{{\omega ^*}T}}{2}} \right)}}\frac{2}{T}\tan \left( {\frac{{\omega T}}{2}} \right) = \frac{{{\omega ^*}}}{{\tan \left( {\frac{{{\omega ^*}T}}{2}} \right)}}\tan \left( {\frac{{\omega T}}{2}} \right) tan(2ωT)2ωTT2tan(2ωT)=tan(2ωT)ωtan(2ωT)
ω ∗ \omega^* ω s = ω ∗ tan ⁡ ( ω ∗ T 2 ) z − 1 z + 1 s = \frac{\omega^* }{{\tan \left( {\frac{{\omega^* T}}{2}} \right)}}\frac{{z - 1}}{{z + 1}} s=tan(2ωT)ωz+1z1 ω ∗ tan ⁡ ( ω ∗ T 2 ) tan ⁡ ( ω ∗ T 2 ) = ω ∗ \frac{{{\omega ^*}}}{{\tan \left( {\frac{{{\omega ^*}T}}{2}} \right)}}\tan \left( {\frac{{\omega^* T}}{2}} \right) = \omega^* tan(2ωT)ωtan(2ωT)=ω

  取 ω ∗ = 1000 \omega^*=1000 ω=1000 rad/s进行预矫正,使得离散传函和连续传函在 ω ∗ \omega^* ω处特性一致。采用预矫正双线性对 C a ( s )  =  s s 2 + 1000 2 {C_a}(s){\text{ = }}\frac{s}{{{s^2} + {{1000}^2}}} Ca(s) = s2+10002s进行离散化( T = 0.001 T=0.001 T=0.001),如下所示:
C d ( z ) = C a ( s ) ∣ s = 1000 tan ⁡ ( 1000 ∗ 0.001 2 ) z − 1 z + 1  =  ( 1830 z − 1 z + 1 ) ( 1830 z − 1 z + 1 ) 2 + 1000 2 = 1830 z 2 − 1830 ( 1830 2 + 1000 2 ) z 2 + 2 ( 1830 2 − 1000 2 ) z + ( 1000 2 + 1830 2 ) {C_d}(z) = {C_a}(s){|_{s = \frac{{1000}}{{\tan \left( {\frac{{1000*0.001}}{2}} \right)}}\frac{{z - 1}}{{z + 1}}}}{\text{ = }}\frac{{\left( {1830\frac{{z - 1}}{{z + 1}}} \right)}}{{{{\left( {1830\frac{{z - 1}}{{z + 1}}} \right)}^2} + {{1000}^2}}} = \frac{{1830{z^2} - 1830}}{{\left( {{{1830}^2} + {{1000}^2}} \right){z^2} + 2\left( {{{1830}^2} - {{1000}^2}} \right)z + \left( {{{1000}^2} + {{1830}^2}} \right)}} Cd(z)=Ca(s)s=tan(210000.001)1000z+1z1 = (1830z+1z1)2+10002(1830z+1z1)=(18302+10002)z2+2(1830210002)z+(10002+18302)1830z21830

  对比连续传函和离散传函波特图,如下所示:
在这里插入图片描述
  Matlab实现方案一:解析计算离散传递函数(如上所述),绘制波特图,

a=1000^2;b=1830^2;
Ca = tf([1,0],[1 0 a]);
Cd = tf([1830 0 -1830],[b+a 2*a-2*b b+a],0.001);
bode(Ca, Cd);legend('Ca','Cd');grid on;

  Matlab实现方案二:借助Matlab分别实现传递函数预矫正和双线性变换,

Ca = tf([1, 0], [1, 0, 1000^2]);            % 定义连续传递函数 Ca(s)

T = 0.001;                                  % 采样周期
omega_p = 1000;                             % 预矫正频率
K = (omega_p * T / 2)/tan(omega_p * T / 2); % 计算预缩放因子 K

s = tf('s');                                    % 定义 s 为传递函数变量
Ca_prewarped = (s * K) / ((s * K)^2 + 1000^2);  % s * K 取代 s,预矫正后的传递函数
Cd = c2d(Ca_prewarped, T, 'tustin');            % 使用双线性变换进行离散化

bode(Ca, Cd);legend('Ca','Cd');grid on;

  Matlab实现方案三:借助Matlab直接实现预矫正双线性变换,

Ca = tf([1, 0], [1, 0, 1000^2]);    % 定义连续传递函数 Ca(s)
opt = c2dOptions('Method','tustin','PrewarpFrequency',1000);
Cd = c2d(Ca, 0.001, opt);            % 使用双线性变换进行离散化
bode(Ca, Cd);legend('Ca','Cd');grid on;

总结

  对离散化的简单场景,优先考虑后向差分离散化方法;对于频率有较高准确度的场景,如谐振控制器,建议使用预矫正双线性变换方法。

参考文献

[1] 余成波.信号与系统(第二版)[M].清华大学出版社,2007.
[2] GeneF.Franklin,J.DavidPowell,MichaelWorkman.动态系统的数字控制(第3版)[M].清华大学出版社,2001.
[3] Matlab文档:c2d
[4] Matlab文档:c2dOption
[5] Matlab文档:Continuous-Discrete Conversion Methods

附录

附录1:后向欧拉相关证明

  对于 s s s域的左半平面,其边界为 s s s平面虚轴。证明:该边界在 z z z域的映射为,以 ( 0.5 , 0 ) (0.5,0) (0.5,0)为圆心,以 0.5 0.5 0.5为半径的圆,如下所示:
{ z = 1 1 − s T = 1 1 − j ω = 1 + j ω ( 1 − j ω ) ( 1 + j ω ) = 1 1 + ω 2 + j ω 1 + ω 2 → { ∥ z − 0.5 ∥ 2 = ( 1 1 + ω 2 − 0.5 ) 2 + ( ω 1 + ω 2 ) 2 = 1 4 [ ( 2 1 + ω 2 − 1 ) 2 + ( 2 ω 1 + ω 2 ) 2 ] = 1 4 [ ( 1 − ω 2 1 + ω 2 ) 2 + ( 2 ω 1 + ω 2 ) 2 ] = 1 4 ,证毕 \left\{ \begin{aligned} z &= \frac{1}{{1 - sT}}\\ &= \frac{1}{{1 - j\omega }}\\ &= \frac{{1 + j\omega }}{{\left( {1 - j\omega } \right)\left( {1 + j\omega } \right)}}\\ &= \frac{1}{{1 + {\omega ^2}}} + j\frac{\omega }{{1 + {\omega ^2}}} \end{aligned} \right. \to \left\{ \begin{aligned} {\left\| {z - 0.5} \right\|^2} &= {\left( {\frac{1}{{1 + {\omega ^2}}} - 0.5} \right)^2} + {\left( {\frac{\omega }{{1 + {\omega ^2}}}} \right)^2}\\ &= \frac{1}{4}\left[ {{{\left( {\frac{2}{{1 + {\omega ^2}}} - 1} \right)}^2} + {{\left( {\frac{{2\omega }}{{1 + {\omega ^2}}}} \right)}^2}} \right]\\ &= \frac{1}{4}\left[ {{{\left( {\frac{{1 - {\omega ^2}}}{{1 + {\omega ^2}}}} \right)}^2} + {{\left( {\frac{{2\omega }}{{1 + {\omega ^2}}}} \right)}^2}} \right]\\ &= \frac{1}{4},证毕 \end{aligned} \right. z=1sT1=11=(1)(1+)1+=1+ω21+j1+ω2ω z0.52=(1+ω210.5)2+(1+ω2ω)2=41[(1+ω221)2+(1+ω22ω)2]=41[(1+ω21ω2)2+(1+ω22ω)2]=41,证毕

  进一步证明, s s s域内任何左半平面的点,映射到上述圆内:
{ z = 1 1 − s T , R e ( s ) < 0 = 1 a − b j , a > 1 = a + b j ( a − b j ) ( a + b j ) = a a 2 + b 2 + j b a 2 + b 2 → { ∥ z − 0.5 ∥ 2 = ( a a 2 + b 2 − 0.5 ) 2 + ( b a 2 + b 2 ) 2 = 1 4 [ ( 2 a a 2 + b 2 − 1 ) 2 + ( 2 b a 2 + b 2 ) 2 ] < 1 4 [ ( 2 a a 2 + b 2 − 1 ) 2 + ( 2 a b a 2 + b 2 ) 2 ] < 1 4 [ ( a 2 − b 2 a 2 + b 2 ) 2 + ( 2 a b a 2 + b 2 ) 2 ] = 1 4 ,证毕 ,其中 { 2 a a 2 + b 2 − 1 < a 2 − b 2 a 2 + b 2 ← 2 a − a 2 − b 2 < a 2 − b 2 ← 2 a < 2 a 2 ← 1 < a \left\{ \begin{aligned} z &= \frac{1}{{1 - sT}},Re(s) < 0\\ &= \frac{1}{{a - bj}},a > 1\\ &= \frac{{a + bj}}{{\left( {a - bj} \right)\left( {a + bj} \right)}}\\ &= \frac{a}{{{a^2} + {b^2}}} + j\frac{b}{{{a^2} + {b^2}}} \end{aligned} \right. \to \left\{ \begin{aligned} {\left\| {z - 0.5} \right\|^2} &= {\left( {\frac{a}{{{a^2} + {b^2}}} - 0.5} \right)^2} + {\left( {\frac{b}{{{a^2} + {b^2}}}} \right)^2}\\ &= \frac{1}{4}\left[ {{{\left( {\frac{{2a}}{{{a^2} + {b^2}}} - 1} \right)}^2} + {{\left( {\frac{{2b}}{{{a^2} + {b^2}}}} \right)}^2}} \right]\\ &< \frac{1}{4}\left[ {{{\left( {\frac{{2a}}{{{a^2} + {b^2}}} - 1} \right)}^2} + {{\left( {\frac{{2ab}}{{{a^2} + {b^2}}}} \right)}^2}} \right]\\ &< \frac{1}{4}\left[ {{{\left( {\frac{{{a^2} - {b^2}}}{{{a^2} + {b^2}}}} \right)}^2} + {{\left( {\frac{{2ab}}{{{a^2} + {b^2}}}} \right)}^2}} \right]\\ &= \frac{1}{4},证毕 \end{aligned} \right.,其中\left\{ \begin{aligned} &\frac{{2a}}{{{a^2} + {b^2}}} - 1 < \frac{{{a^2} - {b^2}}}{{{a^2} + {b^2}}}\\ &\leftarrow 2a - {a^2} - {b^2} < {a^2} - {b^2}\\ &\leftarrow2a < 2{a^2}\\ &\leftarrow1 < a \end{aligned} \right. z=1sT1,Re(s)<0=abj1,a>1=(abj)(a+bj)a+bj=a2+b2a+ja2+b2b z0.52=(a2+b2a0.5)2+(a2+b2b)2=41[(a2+b22a1)2+(a2+b22b)2]<41[(a2+b22a1)2+(a2+b22ab)2]<41[(a2+b2a2b2)2+(a2+b22ab)2]=41,证毕,其中 a2+b22a1<a2+b2a2b22aa2b2<a2b22a<2a21<a

  Matlab绘图验证:
在这里插入图片描述
  Matlab代码如下:

clc; clear; close all;

% 定义参数
T = 1;

% 定义s=0(虚部从-无穷到正无穷)
omega = linspace(-1000, 1000, 20001);  % 使用大的范围代替无穷
s1 = 0.0 + 1j * omega;
s2 = -0.1 + 1j * omega;
s3 = -1.0 + 1j * omega;
s4 = -10.0 + 1j * omega;

% 映射到z平面
z1 = 1 ./ (1 - s1 * T);
z2 = 1 ./ (1 - s2 * T);
z3 = 1 ./ (1 - s3 * T);
z4 = 1 ./ (1 - s4 * T);

% 绘制z平面的值
figure;
hold on;

% 绘制s=0的映射
plot(real(z1), imag(z1), 'b', 'DisplayName', 's = 0 (Im: -\infty to +\infty)');

% 绘制s=-0.1的映射
plot(real(z2), imag(z2), 'r', 'DisplayName', 's = -0.1 + j\omega');

% 绘制s=-1.0的映射
plot(real(z3), imag(z3), 'g', 'DisplayName', 's = -1.0 + j\omega');

% 绘制s=-10.0的映射
plot(real(z4), imag(z4), 'm', 'DisplayName', 's = -10.0 + j\omega');

% 设置图形属性
xlabel('Real Part');
ylabel('Imaginary Part');
title('Mapping of s-plane lines to z-plane');
legend show;
grid on;
axis equal;
hold off;

附录2:双线性变换相关证明

  对于 s s s域的左半平面,其边界为 s s s平面虚轴。证明:该边界在 z z z域的映射为,以 ( 0 , 0 ) (0, 0) (0,0)为圆心,以 1 1 1为半径的圆,如下所示:
{ z = 1 + s T / 2 1 − s T / 2 = 1 + j ω 1 − j ω = 1 − ω 2 1 + ω 2 + j 2 ω 1 + ω 2 → { ∥ z ∥ 2 = ( 1 − ω 2 1 + ω 2 ) 2 + ( 2 ω 1 + ω 2 ) 2 = 1 \left\{ \begin{aligned} z &= \frac{{1 + sT/2}}{{1 - sT/2}}\\ &= \frac{{1 + j\omega }}{{1 - j\omega }}\\ &= \frac{{1 - {\omega ^2}}}{{1 + {\omega ^2}}} + j\frac{{2\omega }}{{1 + {\omega ^2}}} \end{aligned} \right. \to \left\{ \begin{aligned} {\left\| z \right\|^2} &= {\left( {\frac{{1 - {\omega ^2}}}{{1 + {\omega ^2}}}} \right)^2} + {\left( {\frac{{2\omega }}{{1 + {\omega ^2}}}} \right)^2}\\ &= 1 \end{aligned} \right. z=1sT/21+sT/2=11+=1+ω21ω2+j1+ω22ω z2=(1+ω21ω2)2+(1+ω22ω)2=1
  对于边界内的点,类比后向欧拉方法,可证明其在 z z z平面的映射在单位圆内。给出Matlab绘图结果:
在这里插入图片描述
  Matlab代码如下:

clc; clear; close all;
% 定义参数
T = 1;

% 定义s=0(虚部从-无穷到正无穷)
omega = linspace(-1000, 1000, 20001);  % 使用大的范围代替无穷
s1 = 0.0 + 1j * omega;
s2 = -0.1 + 1j * omega;
s3 = -1.0 + 1j * omega;
s4 = -10.0 + 1j * omega;

% 映射到z平面
z1 = (1 + s1 * T) ./ (1 - s1 * T);
z2 = (1 + s2 * T) ./ (1 - s2 * T);
z3 = (1 + s3 * T) ./ (1 - s3 * T);
z4 = (1 + s4 * T) ./ (1 - s4 * T);

% 绘制z平面的值
figure;
hold on;

% 绘制s=0的映射
plot(real(z1), imag(z1), 'b', 'DisplayName', 's = 0 (Im: -\infty to +\infty)');

% 绘制s=-0.1的映射
plot(real(z2), imag(z2), 'r', 'DisplayName', 's = -0.1 + j\omega');

% 绘制s=-1.0的映射
plot(real(z3), imag(z3), 'g', 'DisplayName', 's = -1.0 + j\omega');

% 绘制s=-10.0的映射
plot(real(z4), imag(z4), 'm', 'DisplayName', 's = -10.0 + j\omega');

% 设置图形属性
xlabel('Real Part');
ylabel('Imaginary Part');
title('Mapping of s-plane lines to z-plane');
legend show;
grid on;
axis equal;
hold off;
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值