离散系统基础

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

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

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

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

离散系统和离散信号

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

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

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

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

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

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

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

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

τ<<T,e(kT)=e(kT)

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

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

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

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

补充

现在常用的MCU比如,STM32或者NXP之类的,自带DAC模块了,这个过程实际上也是单片机里面内在的,比如说STM32,调用DAC_SetChannel1Data(DAC_Align_12b_R, vol);函数以后重新设置DAC的值,在此之前电压值就是上次设置的值。

实际上寄存器这个东西就是ZOH,只要不改变存储值,这个值一直即不会变。

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

信号采样序列δT(t)=+δ(tnT),调幅信号是载波乘信号生成的,离散信号类似,单位脉冲序列乘时间域信号就是一串离散信号。

信号采样的数学表达e(t)=e(t)δT(t)=0+e(nT)δ(tnT)

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

E(s)=L[e(t)]=L[0+e(nT)δ(tnT)]=0+e(nT)enTs

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

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

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

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

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

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

ωs>2ωh

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

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

时域表达

k(t)=1(t)1(tT) Gh(s)=1eTss Gh(jω)=Tsin(ωT/2)ωT/2ejωT/2

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

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

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

补充

ZOH实际上不需要去实现,寄存器就是。而且可以严格证明,这个性能不算差,这个滞后效应比一阶二阶保持器都要小。

补充

采样后送进MCU,运算输出后,复现的问题。

为什么可以离散的问题

离散域分析的数学工具

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

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

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

{(1)e(t)=0+e(nT)δ(tnT)(2)E(s)=n=0+e(nT)enTs(3)E(z)=n=0+e(nT)zn

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

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

E(z)=Z[e(t)]=Z[E(s)]=Z[E(s)]

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

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

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

E(s) e(t) E(z)
1 δ(t) 1
1s 1(t) zz1
1s2 t Tz(z1)2
1s3 t22 T2z(z+1)(z1)3
1s+a eat zzeaT

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

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

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

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

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

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

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

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

离散系统的数学模型

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

差分方程

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

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

前向差分:

Δe(k)=e(k+1)e(k) Δ2e(k)=Δe(k+1)Δe(k)

后向差分:

e(k)=e(k)e(k1) 2e(k)=e(k)e(k1)

对比连续的微分

limT0Δe(k)T=de(t)dt

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

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

脉冲传递函数

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

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

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

G(z)=C(z)R(z)

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

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

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

开环脉冲传递函数

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

  • 环节之间有采样开关
G(z)=Z[G1(s)]Z[G2(s)]
  • 环节无开关的处理方法
G(z)=Z[G1(s)G2(s)]
  • 有零阶保持器的处理

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

闭环脉冲传递函数

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

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

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

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

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

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

这样的话就有

C(z)1=RG1(z)G2(z)1+G1G2H(z)

信号的分解

卷积的本质是信号的分解

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

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

f(t)=+f(τ)δ(tτ)dτ

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

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

δ(tτ)的输出为h(tτ)

那么总的输入f(t)=+f(τ)δ(tτ)dτ的输出为

y(t)=+f(τ)h(tτ)dτ

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

更数学的定义:

f(t)=f1(t)f2(t)=+f1(τ)f2(tτ)dτ

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

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


取样序列

δ(k)={=1,   k=0=0,   k0 δT(t)=n=0δ(tnT)

同样这个一串序列也是时间上把一个个脉冲加起来,不是说一个点把值加起来。

信号与系统里面有序列的分解。

任意离散序列f(k)=+f(i)δ(ki)