离散系统

理想采样函数联系起了连续信号和离散信号。

对于离散信号,我们用频谱分析得出采样后还原连续信号的条件,这就是香农定理。

然后我们再对采样连续信号进行拉普拉斯变换,进行的个代换起个名字叫z变换。

这个变换的地位再离散系统里个拉普拉斯的地位是一样的,提供了一个在复频域的视角。

离散系统和离散信号

离散系统指的是系统里面一处或几处是脉冲串或者数码。

离散系统有采样系统和数字系统。采样系统是实践离散但是数值连续,数字系统的数值也离散了,比如8bit只能表示0-255的整数,在值上也有量化误差。

用编程实现控制有相当多的好处,能程序实现各种算法,所有的控制器比如超前滞后啥的没有硬件电路了,全都用编程实现。此外还能联网,很强。

当然也有采样点间信息丢失的问题,和相同条件的连续系统相比,性能会有所下降(后面会用数学推)。此外还得要A/D以及D/A装置。

比如上面就是个书上举的例子。小口径高炮高精度伺服系统,最终是要控制转角,是个电机相关的控制系统。可以看出来比较老了,8255A作为IO口,可能控制计算机是8088这个时代的东西。

这个实际的系统大概画出来这这个样子的,这个框图不是数学上的框图,需要想办法用数学语言描述出来

最主要的,数字系统和连续系统里面不一样的,是AD和DA转换还有计算机控制过程,被控对象还是个连续的物理设备,如何用数学描述这些不一样的地方呢?

在数学上可以认为A/D过程是个理想采样过程,即采样是理想采样(瞬间完成),量化误差(字长足够)也忽略不计了。

τ<<T,e(kT)=e(kT)\tau << T, e^*(kT) = e(kT)

计算过程描述成数码量通过一个连续系统后再次采样。

比如实际系统,MCU输入为 signed int error,输出为signed int u,数学上MCU内部的算法计算仍为Gc(s)G_c(s),只不过后面又跟了个理想采样过程,相当合理。

D/A过程在数学上用ZOH(零阶保持器)来描述,把离散数值保持一拍,使得连续时刻每刻都有个值,虽然不光滑但是连续了。

接着MCU输出了signed int u,后面跟一块DA芯片,就描述成这个样子。

将上面过程画成数学上的表达方式

信号采样序列δT(t)=+δ(tnT) \delta_T(t) = \sum_{-\infty}^{+\infty} \delta(t - nT),调幅信号是载波乘信号生成的,离散信号类似,单位脉冲序列乘时间域信号就是一串离散信号。

信号采样的数学表达e(t)=e(t)δT(t)=0+e(nT)δ(tnT)e^*(t) = e(t) \cdot \delta_T(t) = \sum_{0}^{+\infty} e(nT) \cdot \delta(t - nT)

这个误差采样的拉普拉斯变换

E(s)=L[e(t)]=L[0+e(nT)δ(tnT)]=0+e(nT)enTsE^*(s) = \mathscr{L} \left[ e^*(t) \right] = \mathscr{L} \left[ \sum_{0}^{+\infty} e(nT) \cdot \delta(t - nT) \right] = \sum_{0}^{+\infty} e(nT) \cdot e^{-nTs}

也就是说,e(nT) 延迟了nT出现了。即第n拍出来值为e(nT)这个值。

一个连续信号拉普拉斯变换是个s的有理式,离散化以后,拉普拉斯变换是个级数和,所以分析起来就不是很容易。

E*和E的区别有多大呢,将采样序列做傅里叶变换后带入进行拉普拉斯变换,可以知道关系 E(s)=1T+E(s+jnωs)E^*(s) = \frac{1}{T}\sum_{-\infty}^{+\infty} E( s + jn\omega_s)

区别于前面给出E*与et在采样点上取值之间的关系,一般可以写成封闭形式。这个式子给出了E*与E之间的关系,用于e*的频谱分析。

频谱是对信号而言,频率特性是对系统而言,对于一个给定的信号e(t),非周期信号的频谱是连续的。采样后的离散信号的频谱可以用上面的关系,可以看出是连续频谱平移后叠加。

很重要的一个事情,采样频率必须足够快,才能不丢失连续信号的信息。这就是香农采样定理

ωs>2ωh\omega_s > 2\omega_h

采样频率足够高后,找个理想滤波器,把高频的全部过滤掉,信号就可以一模一样的复现出来了,只不过幅值差了一点点。

很遗憾理想滤波器物理上不可实现,但是有个差不多的,找个容易实现又接近的。零阶保持器。

时域表达

k(t)=1(t)1(tT)k(t) = 1(t) - 1(t-T)

Gh(s)=1eTss\color{red} { G_h(s) = \frac{1-e^{-Ts}}{s} }

Gh(jω)=Tsin(ωT/2)ωT/2ejωT/2G_h(j\omega) = T\frac{\sin (\omega T/2)}{\omega T/2} e ^{-j\omega T/2}

表达式略微复杂了一点,但是幅相特性还是可以画的

希望的理想滤波器的幅频特性是蓝线,相频特性是0,然而实际的ZOH的特性是红线,所以即便是满足了香浓采样定理,也是没法完全一模一样复现的。但是还是要精确的看看影响

ZOH把离散信号变成阶梯信号,粗略的看,认为是加了一个T/2的纯延时环节,相角滞后了,稳定裕度损失了。所以ZOH对系统是有不利影响的。但是这点不利换来了巨大的其他便利。

为什么可以离散的问题

离散域分析的数学工具

前面出现过,eTs=ze^{Ts} = z,可以认为就是个简单的代换。

究其本质,这是个复函数,这个代换实际上是个映射。复函数w=ezw = e^z代表的映射

把这里个离散表达的东西放到一起

{e(t)=0+e(nT)δ(tnT)E(s)=n=0+e(nT)enTsE(z)=n=0+e(nT)zn\begin{array}{} \left\{ \begin{align} e^*(t) &= \sum_{0}^{+\infty} e(nT) \cdot \delta(t - nT) \tag{1}\\ E^*(s) &= \sum_{n=0}^{+\infty} e(nT) \cdot e^{-nTs} \tag{2}\\ E(z) &= \sum_{n=0}^{+\infty} e(nT) \cdot z^{-n} \tag{3} \end{align} \right. \end{array}

核心都是在表达幅值为e(nT)的这个脉冲延迟了n拍出现,这里的求和是把单个脉冲加成连续的序列,而不是一点上值相加。这三个意思是一样的。

Z变换仅仅对离散信号而言,但是写法有好多

E(z)=Z[e(t)]=Z[E(s)]=Z[E(s)]E(z) = \mathscr{Z} [e^*(t)] = \mathscr{Z} [E^*(s)]= \mathscr{Z} [E(s)]

z变换的数学方法:级数求和法、部分分式展开法、留数法。

级数求和根据上面式子(3),算一个无穷级数,这就是纯数学方法了,先导后积或者先积后导这些可能也要用的。

部分分式展开需要熟悉基本的几个变换

E(s)E(s)

e(t)e(t)

E(z)E(z)

11

δ(t)\delta(t)

11

1s\frac{1}{s}

1(t)1(t)

zz1\frac{z}{z-1}

1s2\frac{1}{s^2}

tt

Tz(z1)2\frac{Tz}{(z-1)^2}

1s3\frac{1}{s^3}

t22\frac{t^2}{2}

T2z(z+1)(z1)3\frac{T^2z(z+1)}{(z-1)^3}

1s+a\frac{1}{s+a}

eate^{-at}

zzeaT\frac{z}{z-e^{-aT}}

同样的和拉普拉斯变换一样,也有一些Z变换的性质。最常用的,线性性质,位移定理。

最重要的,初值定理终值定理,这在连续系统里都有对应的东西,对照的看,工具性质的东西。连续系统的思想,离散的工具,具体的细节放在后面稳定稳态误差做对照。

还有个卷积定理。遇到了再说。

Z反变换:幂级数法(长除法)、部分分式展开法、留数法。

长除法最无脑,部分分式展开要记得除z,留数法最通用。

数学工具,z变换只局限在采样点去研究系统,这也是不得已而为之,和最后的连续的输出相比还是有差距。

举个例子说明一下,用窄脉冲去模拟脉冲序列直接作用于一个连续系统

蓝线是实际响应曲线,但是虚设采样开关后只反映了采样时刻的信息。后面还会说虚设开关这个事情。

离散系统的数学模型

接下来要真正的找出离散系统的模型。

差分方程

离散系统的时域数学模型:差分方程。

差分有个前向后向的问题,前向是往未来操作(前进),后向是往过去操作(后退)。

前向差分:

Δe(k)=e(k+1)e(k)\Delta e(k) = e(k+1) - e(k)

Δ2e(k)=Δe(k+1)Δe(k)\Delta^2 e(k) = \Delta e(k+1) - \Delta e(k)

后向差分:

e(k)=e(k)e(k1)\nabla e(k) = e(k) - e(k-1)

2e(k)=e(k)e(k1)\nabla^2 e(k) = \nabla e(k) - \nabla e(k-1)

对比连续的微分

limT0Δe(k)T=de(t)dt\lim_{T \to 0} \frac{\Delta e(k)}{T} = \frac{de(t)}{dt}

相应的,差分方程有前向差分、后向差分,解法有迭代法、Z变换。

对于离散系统,解出差分方程自然也就有时域解了,系统的特性也就知道了。

脉冲传递函数

差分方程对应微分方程,相应的脉冲传递函数对应传递函数。脉冲传递函数定义为零条件输出z变换比输入z变换。

对于一个系统,有时候需要虚设一个开关,放弃部分输出信息,退一步用离散的方法还可以进行分析。

放弃一部分输出信息后使用z变换就可以得到离散数学模型,脉冲传递函数:

G(z)=C(z)R(z)G(z) = \frac{C(z)}{R(z)}

类比连续系统,也是单位脉冲响应的Z反变换。

同样的类比连续传递函数,这是个z的复函数,也由系统结构参数确定,等价于差分方程,同样可以画出z平面的零极点图。

当然脉冲传递函数也有局限性,无法反映系统响应的全部信息(仅采样点);只适用单入单出、线性定常。

开环脉冲传递函数

由实际系统各模块画出控制框图以后,同样面临着找出脉冲传递函数的问题,由于由采样开关的问题,和连续系统还稍稍有点不一样。

  • 环节之间有采样开关

G(z)=Z[G1(s)]Z[G2(s)]G(z) = \mathscr{Z}[G_1(s)] \cdot \mathscr{Z}[G_2(s)]

  • 环节无开关的处理方法

G(z)=Z[G1(s)G2(s)]G(z) = \mathscr{Z}[G_1(s) \cdot G_2(s)]

  • 有零阶保持器的处理

前面频率里推到过ZOH的传递函数,这里看看串联进去改怎么处理。把ZOH拆开来,可以看出虽然ZOH有积分环节但是并不增加系统阶数。

闭环脉冲传递函数

闭环系统脉冲传递函数,这是最后要用的东西。在这里Mason公式是有条件的。

再找闭环脉冲传递函数的时候,采样开关有时候需要等效,思想大概就是早晚都要采样,不如提前采样。

找闭环脉冲传递函数跟着信号流动方向硬推肯定是没问题的,虽然略微复杂。要注意前面一块Z变换还是分开Z变换的问题。

对于Mason公式,从数学方法的角度去考虑,改变字母并不会改变公式本质,所以每个环节前后都有采样开关或者等效采样开关的话,是可以直接用Mason公式的。

此外只有一个回路(无前馈通道),在前向通道至少存在一个一个实际采样开关的系统也可以小用一下。

这种系统采样开关没法透过G1,输入是连续,这种情况一般求不出脉冲传递函数,只能求出输出的z变换C(z),但是只要输出的有了不影响分析,有个技巧,认为输入的r是单位脉冲激励的,开始的一瞬间给一下后面就没关系了。

这样的话就有

C(z)1=RG1(z)G2(z)1+G1G2H(z)\frac{C(z)}{1} = \frac{RG_1(z)G_2(z)}{1 + G_1G_2H(z)}

信号的分解

卷积的本质是信号的分解

基本信号及响应,信号的分解,

连续信号分解成δ(t)\delta(t)的线性组合,这样线性是不变系统就好搞了。

f(t)=+f(τ)δ(tτ)dτf(t) = \int_{-\infty}^{+\infty} f(\tau)\delta(t-\tau)d\tau

这个积分是时间上加成一个序列,并非一个点上的数值相加。放在离散系统可能更好理解。

相当于把一个连续信号看作是一堆脉冲输入到系统里。

δ(tτ)\delta(t-\tau)的输出为h(tτ)h(t-\tau)

那么总的输入f(t)=+f(τ)δ(tτ)dτf(t) = \int_{-\infty}^{+\infty} f(\tau)\delta(t-\tau)d\tau的输出为

y(t)=+f(τ)h(tτ)dτy(t) = \int_{-\infty}^{+\infty} f(\tau)h(t-\tau)d\tau

这个式子叫成卷积积分,直接在时域里面得到了响应。

更数学的定义:

f(t)=f1(t)f2(t)=+f1(τ)f2(tτ)dτf(t) = f_1(t)*f_2(t) = \int_{-\infty}^{+\infty} f_1(\tau)f_2(t-\tau)d\tau

卷积完还是个函数。纯时域的操作。

在复频域来看Y(s)=G(s)R(S)Y(s) = G(s)R(S)


取样序列

Last updated