连续传递函数离散化的方法与原理

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

目录第一章模拟化设计基础1第一节步骤1第二节在MATLAB中离散化3第三节延时e-Ts环节的处理5第四节控制函数分类6第二章离散化算法10摘要10比较11第一节冲击响应不变法(imp,无保持器直接z变换法)11第二节阶跃响应不变法(zoh,零阶保持器z变换法)11第三节斜坡响应不变法(foh,一阶保持器z变换法)11第四节后向差分近似法12第五节前向差分近似法14第六节双线性近似法(tustin)15第七节预畸双线性法(prevarp)17第八节零极点匹配法(matched)18第三章时域化算法19第一节直接算法1—双中间变量向后递推19第二节直接算法2—双中间变量向前递推20第三节直接算法3—单中间变量向后递推21第四节直接算法4—单中间变量向前递推(简约快速算法)21第五节串联算法22第六节并联算法23第四章数字PID控制算法24第一节微分方程和差分方程25第二节不完全微分25第三节参数选择26第四节c51框架27第五章保持器33第一节零阶保持器33第二节一阶保持器30附录两种一阶离散化方法的结果的比较31以连续传递函数为基础的数字控制设计1/35第一章模拟化设计基础数字控制系统的设计有两条道路,一是模拟化设计,一是直接数字设计。如果已经有成熟的模拟控制器,可以节省很多时间和部分试验费用,只要将模拟控制器离散化即可投入应用。如果模拟控制器还不存在,可以利用已有的模拟系统的设计经验,先设计出模拟控制器,再进行离散化。将模拟控制器离散化,如果用手工进行,计算量比较大。借助数学软件MATLAB控制工具箱,可以轻松地完成所需要的全部计算步骤。如果需要的话,还可以使用MATLAB的SIMULINK工具箱,进行模拟仿真。第一节步骤步骤1模拟控制器的处理在数字控制系统中,总是有传输特性为零阶保持器的数模转换器(DAC),因此,如果模拟控制器尚未设计,则应以下图的方式设计模拟控制器,即在对象前面加上一个零阶保持器,形成一个新对象Ts1eGss(),然后针对这个新对象求模拟控制器D(s)。事实上,模拟控制器一般是已经设计好的,无法或不方便更改了,离散化后的系统只好作为近似设计了。然而,按照上述思路,可否将已有的控制器除以一个零阶保持器再离散化呢?还没有这方面的实际经验。D(s)xue-模拟控制器1-e-TssG(s)对象以下假设选定的G(s),D(s)如下图,而且不对G(s)作添加保持器的预处理。xue-D(s)=8s+2s+15.G(s)=20s(s+2)步骤2离散化模拟控制器离散化模拟控制器之前,先要确定离散化算法和采样时间。离散化算法有好几种,第二章中有详细的论述,现假定采用双线性变换法。确定采样时间,需要考虑被控对象的特性,计算机的性能,以及干扰信号的影响等,初步可按采样时间T0.1Tp,Tp为被控对象时间常数,或T=(0.125~0.25)τ,为被控对象的纯滞后,初步确定后再综合平衡其它因素,当然这需要一定的经验,现在假定取0.05秒。假设模拟控制器为s2Ds8s15(),在MATLAB中,用c2d函数进行离散化,过程为:转换结果为:xue-D(z)=6.1091(z-0.9048)z-0.4545D(s)=8s+2s+15.G(s)=20s(s+2)步骤3检验数字控制器的性能数字控制器的性能项目比较多,我们仅以直流增益,频率特性,零极点分布说明。直流增益dcgain(dz)返回直流增益1.0667ds=zpk(-2,-15,8)%建立模拟控制器的s传递函数dz=c2d(ds,0.05,'tustin')%将模拟控制器按tustin方法转换为z传递函数的数字控制器dz=c2d(ds,0.05,'tustin')%将模拟控制器按tustin方法转换为z传递函数的数字控制器以连续传递函数为基础的数字控制设计2/35频率特性bode(ds,'r',dz,'g')伯德图,见下页左图零极点分布pzmap(dz)零极点分布图,见下页右图步骤4离散化控制对象为了进行模拟仿真,需要对控制对象进行离散化,由于步骤1所说的原因,应把被控对象视为零阶保持器与原对象的串连,即应对Ts1eGss()进行离散化,这时可在c2d函数中使用零阶保持器(zoh)方法,如果认为不需要添加零阶保持器,即直接对G(s)离散化,则应在c2d函数中使用冲击响应不变法(imp)。借用零阶保持器(zoh)方法,将对象20Gsss2()()带一阶保持器离散化的过程如下:转换结果为:D(z)xue-D(z)=6.1091(z-0.9048)z-0.4545G1(z)=Z(1-e-TssG(s))G1(z)=0.024187(z-0.9672)(z-1)(z-0.9048)步骤5模拟仿真求离散系统的闭环传递函数和连续系统的闭环传递函数。离散系统的闭环传递函数为:CZDzG1zTR1DzG1z()()()()连续系统的闭环传递函数为:CSDsGsTR1DsGs()()()()用MATLAB算TRCZ与TRCS:结果为:CZ20.14776(z-0.9048)(z-0.9048)(z-1)(z-0.4545)(z+0.9672)TR(z-0.4545)(z-0.9047)(z-0.9048)(z-1)(z-1.307z+0.5975)trcz=dz*g1z/(1+dz*g1z)trcs=ds*gs/(1+ds*gs)......%模拟控制器D(s)转换为D(z)的过程见前gs=zpk([],[0,-2],20)%建立对象的s传递函数g1z=c2d(gs,0.05,'zoh')%借用c2d函数进行带零阶保持器的对象的离散化以连续传递函数为基础的数字控制设计3/352CS22160s(s+2)(s+15)TRs(s+15)(s+2)(s+15s+160)用MATLAB函数STEP画阶跃响应图形:响应图形为:步骤6求数字控制器的时域表达式上面已经求出,连续传递函数s2Ds8s15()的tustin离散式为11Uz61091z090486.1091-5.527zDzEzz04545104545z().(.)()()..,或11Uz61091Ez5527Ezz04545Uzz().().().()。对上式取z反变换,得时域表达式uk61091ek5527ek104545uk1().().().(),根据此式就可以写出计算uk()的程序代码来了。除上述步骤之外,在编写程序代码时,还需要考虑几个问题:①ADC位数ADC位数是一个硬件问题,在系统设计时,就应该结合控制算法,仔细分析ADC位数对控制精度的影响。②数据类型在控制算法中有3种数据类型可以采用:无符号整数,定点数,浮点数。我们知道,无符号整数运算既是最简单和速度最快的运算,又是定点数运算和浮点数运算的基础。在数据动态范围比较小的情况下,应尽可能用无符号整数运算代替定点数运算和浮点数运算。浮点数运算是一整套运算,包括加,减,乘,除,对阶,规格化,溢出处理等一系列子程序,使用浮点数的程序,将占用比较多的代码空间和比较长的运行时间。不论使用汇编语言还是c语言,对于是否使用浮点数运算,都应进行比较仔细的酌斟。③数值计算误差数值计算引入的误差有3个方面,一是定点数字长不够或者浮点数有效数字过少,一是两个相近的数相减,一是加减乘除次数过多。在程序设计中,应优化算法以避免计算误差的引入。holdon%图形保持step(trcs,'r',2)%画连续系统的阶跃响应图,红色,终止时间为2秒step(trcz,'b',2)%画离散系统的阶跃响应图,兰色,终止时间为2秒以连续传递函数为基础的数字控制设计4/35第二节在MATLAB中离散化1.建立s降幂传递函数①建立多项式型s降幂传递函数方法1.sys=tf(num,den)方法2.s=tf('s'),再令sys=f(s)例:已知03215s3G025s125ss...,用tf函数建立多项式型s降幂传递函数,0Gtf15302512510([.],[..]),若G0以零极点形式给出,即已知0305s1Gss1025s1(.)()(.),仍可用tf函数建立多项式型s降幂传递函数,但需用多项式乘法函数conv配合,G0=tf(conv([3],[0.51]),conv(conv([10],[11]),[0.251]))②建立零极点型s传递函数方法1.sys=zpk(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,t)方法2.z=tf('z',t),再令sys=f(z)③建立零极点z传递函数方法1.sys=zpk(z,p,k,t)方法2.z=zpk('z',t),再令sys=f(z)4.建立z-1格式的传递函数直接根据分子和分母建立z-1格式的传递函数sys_z=filt(num,den,t)当已有多项式形式的z降幂传递函数时,按以下步骤:①取z降幂传递函数a的分子多项式系数[num,den]=tfdata(sys_s,'v')②建立z-1格式的传递函数sys_z=filt(num,den,t)5.将多项式形式的高阶z-1降幂传递函数转换为并联传递函数,按以下步骤:①“手工”将z-1降幂传递函数a改写成多项式形式的z降幂传递函数b。②取z降幂传递函数b的分子多项式系数num和分母多项式系数den。③利用residue函数取z降幂传递函数b的分项分式,[anadak]=residue(num,den)。分项结果可能出现共轭复数,在这种情况下应将含有共轭复数的分式合并成二次有理质分式。④根据分项结果手工写出z降幂多项式形式的并联表达式。⑤“手工”将z降幂多项式形式的并联表达式改写成z-1降幂多项式形式的并联表达式。⑥“手工”对z-1降幂多项式形式的并联表达式中的每一个分式项降阶,即将每一个分式项变形,使得分式项的分子的阶次比分母的阶次低1阶,变形完毕再将全部常数项合并。举例设有z-1降幂传递函数1212010186z00864ztz01127z027z..._..以连续传递函数为基础的数字控制设计5/35改写成z降幂传递函数2201z0186z00864tz01z127z027..._..,取分项矢量[anadak]=residue(nz,dz)得an=[0.5101-0.1971]ad=[1.00000.2700]ak=0.1手工写分项分式1110510105101z0510105101z11z1z....,令105101tzp11z._1110197101971z073073z0271027z1027z.......,令1073tzp21027z._.又令tzp3010510107303199_....故1105101073tz0tzp3tzp1tzp2031991z1z..____.验证12111205101073010186z008637z031991z1z1127z027z........实际上,大多数数字控制器的传递函数都是一阶或者二阶的,所以需要分解的并不是很多。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降幂传都能得到合理的结果,原因是zpk函数

1 / 33
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功