传递函数严格离散化
傅里叶变换、拉普拉斯变换,以及
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)e−jωtdtf(t)=2π1∫−∞∞F(ω)ejωtdω
拉普拉斯变换 : { 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)e−stdtf(t)=2πj1∫σ−j∞σ+j∞F(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]z−nf[n]=2πj1∮F(z)zn−1dz
可以利用如下映射关系,实现传递函数 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=jω=T1lnz,或,z=esT=ejωT
稳定性分析: 连续型传递函数稳定的充要条件为,所有极点均位于 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)↔Tz−1Y(z)
因此,可以令 s = z − 1 T s = \frac{{z - 1}}{T} s=Tz−1实现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=Tz−1正是 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=Tz−1⇒z=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(k−1)
对上式的左右两端分别进行拉氏变换和Z变换,可以得到如下映射关系:
s
Y
(
s
)
↔
1
−
z
−
1
T
Y
(
z
)
sY(s) \leftrightarrow \frac{{1 - z^{-1}}}{T}Y(z)
sY(s)↔T1−z−1Y(z)
因此,可以令
s
=
1
−
z
−
1
T
s = \frac{{1 - z^{-1}}}{T}
s=T1−z−1实现S域传递函数到Z域传递函数的转换。实际上,
s
=
1
−
z
−
1
T
s = \frac{{1 - z^{-1}}}{T}
s=T1−z−1也是
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=T1−z−1⇒z=1−sT1
后向欧拉离散化方法将
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=e−sT/2esT/2≈1−sT/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+z−11−z−1
稳定性分析: 假设连续传递函数是稳定的,分析离散化后极点在
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+z−11−z−1⇒z=1−sT/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+1z−1进行离散化,其中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+1z−1 = (T2z+1z−1)2+10002(T2z+1z−1)=(20002+10002)z2+2(10002−20002)z+(10002+20002)2000z2−2000
利用如下代码,对比连续传递函数和离散传递函数的波特图:
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+1z−1=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+1z−1所对应的真实连续系统,注:
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α−e−jα),cosα=0.5(ejα+e−jα):
{
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+1z−1=Ca(T2esT+1esT−1)=Ca(T2ejωT+1ejωT−1)=Ca
T2ej2ωT(ej2ωT+e−j2ωT)ej2ωT(ej2ωT−e−j2ωT)
=Ca[j∗T2tan(2ωT)]
C d ( z ) {C_d}(z) Cd(z)并不对应 C a ( j ω ) {C_a}(j\omega) Ca(jω),而对应 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 jω的。但对于高频谐波,或者特定频率的分析,就不得不考虑这部分影响了。
回顾上述所设计 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+1z−1 | 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+1z−1 | 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+1z−1=tan(2ω∗T)ω∗z+1z−1 | ω ∗ 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+1z−1 | ω ∗ 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(21000∗0.001)1000z+1z−1 = (1830z+1z−1)2+10002(1830z+1z−1)=(18302+10002)z2+2(18302−10002)z+(10002+18302)1830z2−1830
对比连续传函和离散传函波特图,如下所示:
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=1−sT1=1−jω1=(1−jω)(1+jω)1+jω=1+ω21+j1+ω2ω→⎩
⎨
⎧∥z−0.5∥2=(1+ω21−0.5)2+(1+ω2ω)2=41[(1+ω22−1)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=1−sT1,Re(s)<0=a−bj1,a>1=(a−bj)(a+bj)a+bj=a2+b2a+ja2+b2b→⎩
⎨
⎧∥z−0.5∥2=(a2+b2a−0.5)2+(a2+b2b)2=41[(a2+b22a−1)2+(a2+b22b)2]<41[(a2+b22a−1)2+(a2+b22ab)2]<41[(a2+b2a2−b2)2+(a2+b22ab)2]=41,证毕,其中⎩
⎨
⎧a2+b22a−1<a2+b2a2−b2←2a−a2−b2<a2−b2←2a<2a2←1<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=1−sT/21+sT/2=1−jω1+jω=1+ω21−ω2+j1+ω22ω→⎩
⎨
⎧∥z∥2=(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;