




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、精选优质文档-倾情为你奉上数字控制器的模拟化设计目录 专心-专注-专业第一章 模拟化设计基础 数字控制系统的设计有两条道路,一是模拟化设计,一是直接数字设计。如果已经有成熟的模拟控制器,可以节省很多时间和部分试验费用,只要将模拟控制器离散化即可投入应用。如果模拟控制器还不存在,可以利用已有的模拟系统的设计经验,先设计出模拟控制器,再进行离散化。 将模拟控制器离散化,如果用手工进行,计算量比较大。借助数学软件MATLAB控制工具箱,可以轻松地完成所需要的全部计算步骤。如果需要的话,还可以使用MATLAB的SIMULINK工具箱,进行模拟仿真。第一节 步骤步骤1 模拟控制器的处理 在数字控制系统中
2、,总是有传输特性为零阶保持器的数模转换器(DAC),因此,如果模拟控制器尚未设计,则应以下图的方式设计模拟控制器,即在对象前面加上一个零阶保持器,形成一个新对象,然后针对这个新对象求模拟控制器D(s)。事实上,模拟控制器一般是已经设计好的,无法或不方便更改了,离散化后的系统只好作为近似设计了。 然而,按照上述思路,可否将已有的控制器除以一个零阶保持器再离散化呢?还没有这方面的实际经验。以下假设选定的G(s),D(s)如下图,而且不对G(s)作添加保持器的预处理。步骤2 离散化模拟控制器 离散化模拟控制器之前,先要确定离散化算法和采样时间。离散化算法有好几种,第二章中有详细的论述,现假定采用双线
3、性变换法。确定采样时间,需要考虑被控对象的特性,计算机的性能,以及干扰信号的影响等,初步可按采样时间T<0.1Tp,Tp为被控对象时间常数,或T=(0.1250.25),为被控对象的纯滞后,初步确定后再综合平衡其它因素,当然这需要一定的经验,现在假定取0.05秒。 假设模拟控制器为,在MATLAB中,用c2d函数进行离散化,过程为:ds=zpk(-2,-15,8) %建立模拟控制器的s传递函数dz=c2d(ds,0.05,'tustin') %将模拟控制器按tustin方法转换为z传递函数的数字控制器dz=c2d(ds,0.05,'tustin') %将模
4、拟控制器按tustin方法转换为z传递函数的数字控制器 转换结果为:步骤3 检验数字控制器的性能 数字控制器的性能项目比较多,我们仅以直流增益,频率特性,零极点分布说明。 直流增益 dcgain(dz)返回直流增益1.0667 频率特性 bode(ds,'r',dz,'g')伯德图,见下页左图 零极点分布 pzmap(dz)零极点分布图,见下页右图步骤4 离散化控制对象 为了进行模拟仿真,需要对控制对象进行离散化,由于步骤1所说的原因,应把被控对象视为零阶保持器与原对象的串连,即应对进行离散化,这时可在c2d函数中使用零阶保持器(zoh)方法,如果认为不需要添加
5、零阶保持器,即直接对G(s)离散化,则应在c2d函数中使用冲击响应不变法(imp)。 借用零阶保持器(zoh)方法,将对象带一阶保持器离散化的过程如下: . %模拟控制器D(s)转换为D(z)的过程见前gs=zpk( ,0,-2,20) %建立对象的s传递函数g1z=c2d(gs,0.05,'zoh') %借用c2d函数进行带零阶保持器的对象的离散化 转换结果为:步骤5 模拟仿真 求离散系统的闭环传递函数和连续系统的闭环传递函数。 离散系统的闭环传递函数为: 连续系统的闭环传递函数为: 用MATLAB算TRCZ与TRCS: trcz=dz*g1z/(1+dz*g1z)trcs=
6、ds*gs/(1+ds*gs) 结果为: 用MATLAB函数STEP画阶跃响应图形:hold on %图形保持step(trcs,'r',2) %画连续系统的阶跃响应图,红色,终止时间为2秒step(trcz,'b',2) %画离散系统的阶跃响应图,兰色,终止时间为2秒 响应图形为:步骤6 求数字控制器的时域表达式 上面已经求出, 连续传递函数的tustin离散式为 ,或 。 对上式取z反变换,得时域表达式,根据此式就可以写出计算的程序代码来了。 除上述步骤之外,在编写程序代码时,还需要考虑几个问题: ADC位数 ADC位数是一个硬件问题,在系统设计时,就应该结
7、合控制算法,仔细分析ADC位数对控制精度的影响。 数据类型 在控制算法中有3种数据类型可以采用:无符号整数,定点数,浮点数。我们知道,无符号整数运算既是最简单和速度最快的运算,又是定点数运算和浮点数运算的基础。在数据动态范围比较小的情况下,应尽可能用无符号整数运算代替定点数运算和浮点数运算。 浮点数运算是一整套运算,包括加,减,乘,除,对阶,规格化,溢出处理等一系列子程序,使用浮点数的程序,将占用比较多的代码空间和比较长的运行时间。不论使用汇编语言还是c语言,对于是否使用浮点数运算,都应进行比较仔细的酌斟。 数值计算误差 数值计算引入的误差有3个方面,一是定点数字长不够或者浮点数有效数字过少,
8、一是两个相近的数相减,一是加减乘除次数过多。在程序设计中,应优化算法以避免计算误差的引入。第二节 在MATLAB中离散化 1. 建立s降幂传递函数 建立多项式型s降幂传递函数 方法1. sys = tf(num,den) 方法2. s = tf('s'),再令sys = f(s) 例: 已知,用tf函数建立多项式型s降幂传递函数,若G0以零极点形式给出,即已知,仍可用tf函数建立多项式型s降幂传递函数,但需用多项式乘法函数conv配合,G0=tf(conv(3,0.5 1),conv(conv(1 0,1 1),0.25 1) 建立零极点型s传递函数 方法1. sys = zp
9、k(z,p,k) 方法2. s = zpk('s'),再令sys = f(s)。 2. 传递函数的转换 将任意形式的s传递函数转换为s降幂传递函数sys = tf(sys) 将任意形式的s传递函数转换为s零极点传递函数sys = zpk(sys) 3. 建立z传递函数 将连续传递函数转换为离散传递函数 sysd = c2d(sysc,t,method) 建立多项式形式的z传递函数 方法1. sys = tf(num,den,Dt) 方法2. z = tf('z',Dt),再令sys = f(z) 建立零极点z传递函数 方法1. sys = zpk(z,p,k,D
10、t) 方法2. z = zpk('z',Dt),再令sys = f(z) 4. 建立z-1格式的传递函数 直接根据分子和分母建立z-1格式的传递函数sys_z = filt(num,den,Dt) 当已有多项式形式的z降幂传递函数时,按以下步骤: 取z降幂传递函数a的分子多项式系数num,den = tfdata(sys_s,'v') 建立z-1格式的传递函数sys_z = filt(num,den,Dt) 5. 将多项式形式的高阶z-1降幂传递函数转换为并联传递函数,按以下步骤: “手工”将z-1降幂传递函数a改写成多项式形式的z降幂传递函数b。 取z降幂传递
11、函数b的分子多项式系数num和分母多项式系数den。 利用residue函数取z降幂传递函数b的分项分式,an ad ak=residue(num,den)。 分项结果可能出现共轭复数,在这种情况下应将含有共轭复数的分式合并成二次有理质分式。 根据分项结果手工写出z降幂多项式形式的并联表达式。 “手工”将z降幂多项式形式的并联表达式改写成z-1降幂多项式形式的并联表达式。 “手工”对z-1降幂多项式形式的并联表达式中的每一个分式项降阶,即将每一个分式项变形,使得分式项的分子的阶次比分母的阶次低1阶,变形完毕再将全部常数项合并。 举例 设有z-1降幂传递函数 改写成z降幂传递函数 , 取分项矢量
12、 an ad ak=residue(nz,dz) 得 an=0.5101 -0.1971 ad=1.0000 0.2700 ak=0.1 手工写分项分式 , 令 , 令 又令 故 验证 实际上,大多数数字控制器的传递函数都是一阶或者二阶的,所以需要分解的并不是很多。 6. 将高阶z-1降幂传递函数生成串联传递函数使用zpk函数 sys_zpk= zpk(sys_pl)零极点的概念是相对于z而不是相对于z-1说的,但对于以z-1为变量的降幂传递函数sys_pl来说,仍然可以用zpk(sys_pl)生成以z-1为变量的因式积形式传递函数,权且也称为零极点形式。zpk函数对于z降幂传递函和z-1降幂
13、传都能得到合理的结果,原因是zpk函数的作用就是把分子多项式和分母多项式分别进行因式分解。第三节 延时环节e-Ts的处理 在建立s传递函数的LTI模型时,对于延时环节e-T s,可按如下方法处理: 1. 在tf函数中使用属性inputdely或者iodely ,例如:>> tf(1 -1,1 3 5,'inputdelay',0.35)将返回以下形式的传递函数 s 1exp(-0.35*s) * - s2 + 3 s + 5使用这个方法不能建立形如的传递函数,因为带延时的传递函数不能与不带延时的传递函数相加,但可以使用c2d进行离散化,但要求延时时间t必须是采样时间
14、Dt的整数倍,若不是整数倍,则在转换时不理会延时环节,例如:用tf函数建立2个传递函数,主体部分相同,但一个无输入延时,一个有输入延时0.35s, >> a=tf(1 -1,1 4 5) s - 1 - s2 + 4 s + 5 >> a1=tf(1 -1,1 4 5,'iodelay',0.35) s - 1 exp(-0.35*s) * - s2 + 4 s + 5 若采样时间为0.05,因为延时时间是采样时间的整数倍,转换结果的主体部分完全一样: >> c2d(a,0.05,'imp') z2 - 1.039 z + 9
15、.146e-018 - sampling time: 0.05 z2 - 1.807 z + 0.8187 >> c2d(a1,0.05,'imp') z2 - 1.039 z + 9.146e-018 z(-7) * - sampling time: 0.05 z2 - 1.807 z + 0.8187 若采样时间为0.1,因为延时时间不是采样时间的整数倍,结果的主体部分不一样: >> c2d(a,0.1,'imp') z2 - 1.06 z + 4.349e-018 - sampling time: 0.1 z2 - 1.629 z
16、+ 0.6703 >> c2d(a1,0.1,'imp') 0.768 z - 0.851 z(-3) * - sampling time: 0.1 z2 - 1.629 z + 0.6703 2. 将e-Ts有理化 设,因e-Ts的一阶有理表达式是 ,故 。 为了对ts进行离散化,首先使用tf函数建立lti模型的ts。若,则。 3. 在离散化时使用恒等式 设,因,采样时间为t,若T=mt,则,因为离散化时总是认为,故取。 根据以上假设,用MATLAB的c2d函数对g(s)进行离散化,则,进而。则。第四节 控制函数分类以下函数在control toolbox中,这里
17、所述仅限于siso模型1 创建多项式形式的传递函数 sys = tf(num,den) 创建一个s降幂多项式连续传递函数sys,分子多项式系数和分母多项式系数分别为num和den。 sys = tf(num,den,Dt) 创建一个z降幂离散传递函数sys,Dt是采样时间,行矢量num和den同上。 sys = tf(sys) 把一个任意的lti模型sys转换成多项式传递函数,例如把零极点模型转换成多项式传递函数。 sys = tf 创建一个空的tf对象。 sys = tf(m) 指定静态增益m。2 创建零极点形式的传递函数 sys = zpk(z,p,k) 创建一个零极点模型的连续传递函数s
18、ys,零极点矢量分别是z和p,增益是k。 sys = zpk(z,p,k,Dt) 创建一个零极点模型的离散传递函数sys,零极点矢量分别是z和p,增益是k,采样时间是Dt。在零极点对象中,如果没有零点,则z=。 sys = zpk 创建一个空的零极点对象。 sys = zpk(d) 指定静态增益d。3 创建任意形式的传递函数 s = tf('s') 指定多项式传递函数变量为s变量 z = tf('z',Dt) 指定多项式传递函数变量为z变量,Dt为采样时间 形如的传递函数,既不能直接用tf函数建立,也不能直接用zpk函数建立。 定义了s=tf('s
19、9;)后,写出赋值式f=10/(s*(0.25*s+1)*(0.05*s+1),回车后即可得到多项式型传递函数,再令f1=zpk(f),可得。 s = zpk('s') 指定零极点传递函数变量为s变量 z = zpk('z', Dt) 指定零极点传递函数变量为z变量,Dt为采样时间 定义了s = zpk('s'),写出赋值式f=10/(s*(0.25*s+1)*(0.05*s+1),回车后即可得到零极点型传递函数。4 建立z-1降幂离散传递函数 sys = filt(num,den,Dt) 返回z-1降幂离散传递函数,num和den分别是分子和分
20、母多项式系数,Dt是采样时间。 sys = filt(m) 返回增益离散传递函数。5 连续函数离散化 sysd = c2d(sysc,t,method)把连续传递函数sysc转换成采样时间为Dt的离散传递函数,字符串method为离散化方法: 'zoh'(零阶保持,即阶跃响应不变),'foh'(一阶保持),'imp'(冲击响应不变,v6以上版本),'tustin' (双线性近似),'prewarp'(带预畸变的双线性近似),'matched'(零极点匹配)。 注: 缺省的方法是'zoh
21、9; 'foh'的算法是而不是,这一点可以通过验证证实,验证方法是,令,但此结果中,的分子和分母将含有公因式,所以应进一步用zpk函数把表示成零极点形式,然后用“手工”的方法写出不含公因式的来,可以看到,最后的结果与用foh方法得到的结果完全一致。 当使用'prewarp'方法时,临界频率wc(in rad/sec)作为第四个输入来指定,如sysd = c2d(sysc,t,'prewarp',wc) 。另有1种形式是,opt = c2dOptions('Method','tustin','PrewarpF
22、requency',.5), c2d(ds,.05,opt)。6 取多项式模型传递函数的分子和分母的系数矢量 num,den = tfdata(sys,'v') 对于siso模型sys返回作为分子和分母系数的单行矩阵num和den。 num,den,t = tfdata(sys,'v') 同上,同时返回采样时间Dt。7 取零极点模型传递函数的零点和极点的单行矩阵 z,p,k = zpkdata(sys,'v') 返回lti模型sys的零极点矢量z和p,增益k。8 取e-T s近似式 num,den = pade(t,n) 返回e-T
23、83;s的n阶pade近似式,行矢量num和den是s的降幂多项式系数。 e-Ts的一阶有理表达式是 。 e-T·s的高阶有理表达式是 9 画阶跃响应图 step(sys) 画出由tf,zpk,or ss等函数创建的lti模型sys的阶跃响应图。 step(sys,tfinal) 画出lti模型sys从t=0到t=tfinal的阶跃响应图。对于未指定采样时间的离散模型,tfinal被解释为采样的数目。 step(sys,t) 使用用户提供的矢量t画阶跃响应图。对于离散时间模型,t的形式应该是ti: Dt:tf,在这里,Dt是采样时间。对于连续时间模型,t的形式应该是ti:dt:tf,
24、在这里,dt变成对于连续系统的近似离散化的采样时间。Ti是开始时间,tf是终止时间。因为阶跃输入总是假定在t=0开始,所以通常不考虑ti和tf,即只使用一个终止时间t。 step(sys1,sys2,.,t) 在一个单个的图上画出多个lti模型sys1,sys2,. 的阶跃响应图,时间矢量t是可选择,还可以以step(sys1,¢r¢,sys2,¢y¢,sys3,¢gx¢)的方式对每一个系统指定颜色,线型和标记。 y,t = step(sys) 返回用于仿真的时间t的输出响应y,但并没有图形画在屏幕上,如果sys有ny输出和nu输入和
25、lt = length(t),y就是一个尺寸为lt ny nu的阵列,而y(:,:,j)给出第j个输入通道的阶跃响应。10 画脉冲响应图 impulse 脉冲响应函数,用法与step相同11 画频率响应图-伯德图(连续或离散) bode(sys) 画伯德图 bode(sys,wmin,wmax) 在频率wmin,wmax(in radians/second)之间画伯德图 bode(sys,w) 按指定的频率矢量w(in radians/second)画伯德图 bode(sys1,sys2,.) 画多个lti模型sys1,sys2,.的伯德图 bode(sys1,sys2,.,w) 按指定的频率
26、矢量w(in radians/second)画多个lti模型sys1,sys2,.的伯德图以下函数在符号工具箱symbolick中,需注意,在使用这些函数前,要对所使用的变量进行符号说明,例如:syms a t %是用空格分隔而不是用逗号分隔a=sin(t)L=laplace(a)12 福里哀变换fourier 反福里哀变换ifourier13 拉普拉斯变换laplace 反拉普拉斯变换ilaplace14 z变换ztrans 反z变换iztrans注:以上3 种变换必须是符号表达式,例如: syms t laplace(sin(t)15 改善公式的可读性pretty16 多项式转换为符号表达
27、式poly2sym17 化简符号表达式simplify18 取符号表达式的分子和分母numden以下函数在符号工具箱polyfun中,在公式变换中可能会用到19 部分分式展开an ad ak = residue(n,d) n和d分别为原分式的分子和分母矢量,an和ad分别为分项式的分子和分母矢量,ak为整式部分。这是一个数学公式,在数字控制器程序设计中,利用部分分式展开的方法,把高于2阶的分式变换为不高于2阶的分式之和,从而把高阶传递函数算法变为低阶传递函数并联的算法。在使用这个方法时,不论在分子矢量中还是在分母矢量中,如果有共轭复数出现,则应将其整合为2阶质因式。20 多项式乘法c = co
28、nv(a,b) a×b=c21 多项式除法q,r = deconv(b,a) b÷a=q.r,即b = conv(a,q) + r第二章 离散化算法 连续传递函数离散化的核心环节,就是将控制器的s传递函数转换为z传递函数。离散化后,系统应该仍有好的稳定性,好的控制精度,而不是要求转换前后,两个数学公式等值。因此,离散化方法有多种。本章对这些方法的转换原理和由来进行了演绎。 离散化后得到的离散传递函数的稳定性,没有进行讨论,仅列了一张表进行比较。离散的结果,虽然可能会控制精度降低,应该认为,这不是主要问题。真正影响控制精度的因素,主要还是采样周期的长短。 一般情况下,由连续到
29、离散的设计最好多实验几种方法(通过仿真,得出满意的结果)。因为匹配零、极点映射法、双线性变换法都能得出比较满意的结果,初步设计时,可以试用这些方法。 而其实,后向差分近似法也是合理的选择。但MATLAB的c2d函数中没有这一方法,在该方法的介绍之后,给出了一个可由MATLAB引用的m文件函数。摘要 3种保持器法 保持器法即将s函数串联上一个保持器后取z变换,也可以从“对输入信号的响应不变”的角度导出。无保持器法(阶跃响应不变)imp 零阶保持器法(阶跃响应不变)zoh 一阶保持器法(斜坡输入不变)foh(一阶保持器)MATLAB中无此方法 4种近似法 近似法将s与z的无理关系近似地化为有理关系
30、,主要应用于传递函数从连续到离散的变换。 后向差分近似法MATLAB的C2D函数中没有这个方法 前向差分近似法MATLAB的C2D函数中没有这个方法 双线性近似法tustin 预畸双线性近似法 ,w1为进行预畸变的频率prevarp 增益匹配: 或 1种匹配法 匹配法完全从控制学的角度看问题,也是应用于传递函数从连续到离散的变换。 零极点匹配法 若,matched 则, 或者, 确定增益kz: a 令, b 若D(s)分子有s因子,例如, 可以令 ,也可以令 比较离散化方法变换公式映射关系特点冲击响应不变法Z变换法 imp脉冲响应采样值相同;容易产生频率混迭现象,为采样角频率。阶跃响应不变法零
31、阶保持器法 zoh阶跃响应采样值相同;稳定增益不变。斜坡响应不变法一阶保持器法 foh向前差分法D(s)稳定,D(z)可能不稳定;等效精度差。向后差分法变换计算简单;如果D(s)稳定,D(z)稳定;离散滤波器的过程特性及频率特性有一定的失真,需要较小的采样周期T。双线性变换法 tustinD(s)稳定,D(z)也稳定;低频特失真,但无频率混迭现象。稳定增益不变;具有串联特性。预修正双线性变换法 prevarp有前一种变换的特点;还能保证在关键频率1处,幅频特性不变。零极点匹配法 matchedZ域与s域零极点位置一一对应;当没有零点时,补充z=1的零点可避免频率混迭现象。第一节 冲击响应不变法
32、(imp,无保持器直接z变换法) 公式推导1 无保持器,直接转换:公式推导2 按冲击响应不变的原则: (冲击响应不变,中的1表示)第二节 阶跃响应不变法(zoh,零阶保持器z变换法) ,式中T为采样周期,所以 公式推导1 按串联零阶保持器的原则: 因为零阶保持器的s传递函数为,故公式推导2 按阶跃响应不变的原则: 设阶跃信号,则,按照下一节对斜坡响应不变法的推导,立即可以写出第三节 斜坡响应不变法(foh,一阶保持器z变换法) ,按斜坡响应不变原则导出,也可按一阶保持器原则配合e-Ts的台劳近似式得出,foh方法使用此式 ,从一阶保持器的思路推出 以上2个公式中T为采样周期,两式差异请参看“附
33、录 两种一阶离散化方法的结果的比较”。公式推导1 按斜坡响应不变的原则: 设连续滤波器为D(s),输入为斜坡函数e(t)=t,则,采样输出为us(kT)。按z变换的定义,us(kT)的变换就是的z变换,故。 又设离散滤波器的传递函数为D(z),它的输出为uz(KT),按斜坡响应不变的要求,应有uz(kT)=us(kT),故,但离散滤波器的输出为U(z)=E(z)D(z),而斜坡函数e(t)=t的z变换为,求Uz(z) 与E(z)的比值,得斜坡响应不变法离散公式 。公式推导2 按串联一阶保持器的原则: 一阶保持器的传递函数为,则一阶保持器法离散公式为,故 。 根据台劳近似式,用取代中的Ts+1,
34、则得到。 显然,反过来也可以将近似为。 由此可以认为,“斜坡响应不变公式”和“串联一阶保持器公式”互为近似式。经验证,MATLAB的C2D函数中foh方法使用的就是“斜坡响应不变法公式”。 使用台劳近似式的条件是,T很小,时间单位也很小。第四节 后向差分代换法(backward difference) 公式推导1 近似微分: 设连续传递函数,则,取反变换得, 将中的微分用后向差分代替,得, 对上式取z变换,得 , 整理后得离散传递函数 , 比较和,知 。公式推导2 近似积分: 设连续传递函数,则,反变换得 ,进行近似积分,而且把输出看作由两部分组成,一部分是前一个时刻面积的累加值,一部分是本次
35、的面积值。如果认为本次的面积是本次采样值与采样周期的乘积,则 式(B) 取z变换,得 合并同类项,得离散传递函数 比较和,知 。 所以,后向差分法就是积分法,并且以当前采样值为计算依据,所以可以称为本次采样积分,式(B)的图形见下页。公式推导3有理化z与s的关系: ,由此式求得。% 差分近似法 function y=c2d1(ds,t0,str)% 函数 c2d1 补充MATLAB控制类函数 c2d 之不足,可以将连续传递函数以向前差分法和向后差分法变换为离散传递函数% 因为双线性变换法与向前差分法和向后差分法同属近似法,所以 c2d1 函数也包括了双线性变换法% 输出参数 y : LTI模型
36、,离散传递函数% 输入参数 ds : LTI模型,连续传递函数% t0 : 数值,采样时间% str : 字符串,变换方法 backdiff=向后差分 fordiff=向前差分 tustin=双线性syms z;% -检查采样时间Ts是否大于0if t0<=0 error('Ts<0 or Ts=0 unallowed');end% -根据输入的"方法",确定代入公式if strcmp(str,'backdiff') s=(z-1)/(t0*z); string='coefficient of result of back
37、ward difference:' string1='zero-pole of result of backward difference:'elseif strcmp(str,'fordiff') s=(z-1)/t0; string='coefficient of result of forward difference:' string1='zero-pole of result of forward difference:'elseif strcmp(str,'tustin') s=(2/t0)*(
38、z-1)/(z+1); string='coefficient of result of double linear:' string1='zero-pole of result of double linear:'else disp(' '); error('please chek method parameter');end% -%以下将模型的传递函数转换为符号表达式,以便s=f(z)代入到ds中num,den=tfdata(ds,'v'); %取模型连续传递函数的分子和分母(多项式)nums=poly2sym
39、(num,'s');%将多项式转换为符号dens=poly2sym(den,'s');tran=nums/dens; %生成一个符号分式m=compose(tran,s); %代入m=simplify(m); %化简n d=numden(m); %取符号表达式的分子和分母n=sym2poly(n); %取符号表达式的分子多项式系数,按降幂排列d=sym2poly(d); %取符号表达式的分母多项式系数,按降幂排列% -%以下显示分子和分母的系数,是辅助性的disp(string)n=n/d(1); %使分母的最高项的系数为1d=d/d(1);n_str=num2
40、str(n);d_str=num2str(d);n_disp=strcat('fn = ',n_str);d_disp=strcat('fd = ',d_str);disp(n_disp);disp(d_disp);% -%以下生成离散传递函数y=tf(n,d,t0);% -%以下求出离散传递函数的零点和极点disp(string1);z p k=zpkdata(y,'v')% -%以下画出连续传递函数和离散传递函数的伯德图bode(ds,'r',y,'g');zpk(z,p,k,t0)% 程序结束第五节 前向差分
41、代换法(forward difference) 公式推导1 近似微分: 设连续传递函数,则,反变换得 , 将中的微分用前向差分代替,得 。 将所有的采样值提前一个周期,得 , 。 取z变换,得 , 故 。 整理后得离散传递函数 。 比较和,知 。 也可以不进行时间位移,直接从 进行z变换,同样可得 , 。 。公式推导2 近似积分: 设连续传递函数,则,它的积分表达式是,进行近似积分,而且把输出看作由两部分组成,一部分是前一个时刻面积的累加值,一部分是本次的面积值。如果认为本次的面积是前次采样值与与采样周期的乘积,则 (式B), 取z变换,得 , 合并同类项,得离散传递函数 。 比较和,得 所以
42、,前向差分法就是积分法,并且以前一次采样值为计算依据,所以可以称为前次采样积分,式(B)的图形是公式推导3 有理化z与s的关系: ,由此式求得。第六节 双线性近似法(tustin) 公式推导1 近似微分: 设连续传递函数,则,它的微分表达式是。 将用后向差分代替,用前采样值与本次采样值的平均值代替,得, 对上式取z变换 , 即 , 故 , 比较和,得 。公式推导2 近似积分: 设连续传递函数,它的积分表达式是,进行近似积分,而且把输出看作由两部分组成,一部分是前一个时刻面积的累加值,一部分是本次的面积值。如果认为本次面积是前次采样值与本次采样值,两次采样值的平均值平均值与采样周期的乘积,则 (
43、式B), 取z变换,得 , 合并同类项,得 。 比较和,得 。 所以,双线性近似法也是积分法,与差分法不同的是它是梯形积分,式(B)的图形是:公式推导3 有理化z与s的关系: ,由此式求得。公式推导4 使用的台劳级数: 由,得 故。公式推导5 使用th s压缩s平面: 脉冲响应不变法的主要缺点是频谱交叠产生的混淆,这是从S平面到Z平面的标准变换的多值对应关系导致的。为了克服这一缺点,设想通过两个步骤建立S平面与Z平面一一对应的单值关系。双线性变换的映射关系 第一步 将整个S平面压缩到S1平面的一条横带里 考察双曲正切变换,当由时,w由,也就是说将s平面的w轴压缩到平面轴上的一段上。将这一关系推
44、广到整个s平面,则得到s平面到平面的映射关系,系数的来源是,当时,可得。 第二步 通过标准变换关系将此横带变换到整个Z平面上去 令,得S平面与Z平面的单值映射关系, 或者 验证: 变换的单值性:当时,代入,即S的虚轴映射到Z平面正好是单位圆。 S平面 Z平面 S1平面 变换的稳定性: 代入z表达式,得 和。当时,|z|<1即s左半平面映射在单位圆内,s右半平面映射在单位圆外,因此,稳定的模拟滤波器通过双线性变换后,所得到的数字滤波器也是稳定的。第七节 预畸双线性法(prevarp) 第一步:求预修正频率 ,w1为预防畸变的频率, 为修正后的频率。 第二步:预畸变 。 第三步:变换 。 综
45、合以上3步: ,w1为预防畸变的频率 。 变换后,稳态增益将变化,需以或的原则进行增益匹配。 举例: 若 , 则 若 , 则第八节 零极点匹配法(matched) D(S) è D(Z) 若 , 则 。 分子上因子(Z+1)n-m的作用是:把处的零点投射到来单位园上,使D(Z)的分母和分子的阶数就相同。(如果不加这个因子,D(Z)脉冲响应会产生n-m个采样时间的延迟,对系统造成不利影响?)。 或者 。 后一个公式比前一个公式少一个零点,MATLAB函数c2d的matched方法是按后一个公式进行变换的(但脉冲响应具有一个采样时间的延迟?)。 确定D(z)的增益kz的方法: a 令与的
46、稳态增益相等求得,即令, b 若D(s)分子有s因子,例如,可依高频段增益相等原则确定增益,即,也可选择某关键频率处的幅频相等,即。 对零极点匹配法做的描述,可以使用符号数学编写m文件程序,“手工式”地进行验证。下面的程序以连续传递函数为例,运行此程序后,可以看到,文中描述的方法与c2d函数的mtched方法是一致的,也说明文本中没有排版错误,这样应该更有于助理解和使用零极点匹配法。%程序开始syms s z kz t %预置采样周期tt=0.7 %预置采样周期s1=1 %建立ds的分子s2=vpa(s3+1.8*s2+1.8*s+1) %建立ds的分母s2r=solve(s2) %求ds的极点z1=(z+1)2 %建立dz分子的零点表达式,不包含增益z1=vpa(expand(z1),5) %展开dz分子的零点表达式为多项式表达式,不包含增益z2=(z-exp(t*s2r(1)*(z-exp(t*s2r(2)*(z-exp(t*s2r(3) %建立dz分母的极点表达式z2=vpa(subs(z2,'t',tt),5) %将dz分母中周期t用预置的值tt代替,不改变极点表达式形式z2=vpa(expand(z2),5)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 平顶山浮雕迎门墙施工方案
- 农田防护林网工程施工方案
- 凤岗幼儿园地胶施工方案
- 滁州三模数学试卷
- 内蒙古经贸外语职业学院《播音主持语音与发声二》2023-2024学年第二学期期末试卷
- 青岛恒星科技学院《机械程训练》2023-2024学年第二学期期末试卷
- 重庆医药高等专科学校《森林保护学》2023-2024学年第二学期期末试卷
- 广州民航职业技术学院《信息技术应用基础》2023-2024学年第二学期期末试卷
- 重庆装修用地出让方案
- 广东汕头幼儿师范高等专科学校《有限元法》2023-2024学年第二学期期末试卷
- 出租共享菜园合同范例
- 八年级班主任学生心理健康计划
- 整体施工劳务服务方案
- 传统节日端午节模板37
- 2025年泰山职业技术学院高职单招职业适应性测试近5年常考版参考题库含答案解析
- 【历史】唐朝建立与“贞观之治”课件-2024~2025学年统编版七年级历史下册
- 2024化工园区危险品运输车辆停车场建设规范
- 第1课 精美绝伦的传统工艺 课件 2023-2024学年赣美版初中美术八年级下册
- 云南省地质灾害群测群防手册
- 仓内运营方案
- 江苏省电力条例(2020)
评论
0/150
提交评论