东南大学自动化学院实验报告课程名称:计算机控制实验实验名称:实验四最少拍控制算法研究院(系):自动化学院专业:自动化姓名:郭劲廷学号:08011331实验室:实验组别:同组人员:实验时间:2014年04月21日评定成绩:审阅教师:一、实验目的1.学习并熟悉最少拍控制器的设计和算法;2.研究最少拍控制系统输出采样点间纹波的形成;3.熟悉最少拍无纹波控制系统控制器的设计和实现方法。二、实验设备1.THBDC-1型控制理论·计算机控制技术实验平台2.PCI-1711数据采集卡一块3.PC机1台(安装软件“VC++”及“THJK_Server”)三、实验原理1)最小拍系统在采样控制系统中,通常把一个采样周期称作一拍。在典型输入信号作用下,经过最少拍,使输出量采样时刻的数值能完全跟踪参考输入量的数值,跟踪误差为零的系统称为最少拍系统。计算机控制系统的方框图为:图1最少拍计算机控制原理方框图根据上述方框图可知,有限拍系统的闭环脉冲传递函数为:)()(1)()()()()(zGzDzGzDzRzCzH(4-1))()(11)()()(1zGzDzRzEzH(4-2)由(4-1)、(4-2)解得:)(1)()(1)(zHzHzGzD(4-3)首先要使系统的过渡过程在有限拍内结束,显然,这样对系统的闭环脉冲传递函数)(zH提出了较为苛刻的要求,即其极点应位于z平面的坐标原点处。亦即希望系统的脉冲传递函数为101()()kkkFzHzaazazz(4-4)式中:F(z)为H(z)的分子多项式,k为某一整数。式(4-4)表明H(z)的极点都在z平面的原点,系统的脉冲响应在经过了有限数k拍以后就变为零,过渡过程结束。式(4-4)表明了离散系统中,为了使过渡过程较快地结束应符合的条件。K是个有限值,它至少应该是什么数值呢?可以分析一下闭环传递函数H(z)。将式(4-4)代入D(z)表示式,得)]([)()(1)(1)()(1)(zFzzFzGzHzHzGzDk(4-5)如果m和n分别为对象和保持器的组合脉冲传递函数G(z)的分子和分母的阶次,l为式(4-5)中F(z)的阶次,要使D(z)能实现,就应使分母的阶次大于分子的阶次knml(4-6)由式(4-6)可见,当0l时,H(z)的分子0()FzF常数,暂态响应的持续节拍数最少。式中n和m是由对象、保持器决定的,是不可变部分。这时应有knm(4-7)这是过渡过程所能达到的最低极限节拍数,它规定了“最少拍”的极限数。2)无稳态误差的最小拍系统由王勤主编教材P89~P90的理论推导,可以知道,为保证系统稳态误差为零且拍数最少,应取111()(1)()kHzzFz(4-8)其中1()Fz为不包含G(z)的零点和极点的多项式。为式(4-8)表示了无稳态误差的最少拍系统,其1()Hz满足的条件。另外,为了使系统的暂态过程在有限时间内结束,H(z)必须是1z的有限多项式。这两者都要满足,因而应使1()Fz为1z的有限多项式。最简单的情况是1()1Fz,这时(1)对阶跃输入11()1Hzz1()Hzz因而11)(11)(1)(1)()(1)(11zzGzzzGzHzHzGzD(2)对斜坡函数输入121()(1)Hzz或12()2Hzzz从而有22121)1(12)(1)1(2)(1)(zzzGzzzzGzD(3)对加速度函数输入131()(1)Hzz或123()33Hzzzz从而有3231321)1(133)(1)1(33)(1)(zzzzGzzzzzGzD3)无纹波,无稳态误差的最少拍系统用前述方法设计的最少拍控制系统,对于符合原设计的输入信号能很快地跟踪。然而,如果进一步用改进的z变换法来研究所设计的系统,就会发现问题。这种改进的z变换不仅能求出采样时刻的系统输出,而且可以研究采样间隔中,输出的变化情况。用这种z变换将发现用前述方法设计的系统,在采样时刻之间存在着波动。有纹波的系统,在采样时刻之间存在误差,而且功率损耗、振动等也很大,它将加快执行机构等可动部件的磨损。为此,必须改进设计方法,使设计出的系统满足无纹波的条件。(1)最少拍系统产生纹波的原因经分析可知,最少拍系统虽然经过有限拍后能使采样时刻的稳态误差为零,从而使数字控制器的离散输入量E(z)为零。但控制器的输出并没有达到稳态值,仍然是上下波动的。亦即控制器的输出U(z)不能在有限拍内变为零。如果整个系统以U(z)为输出量,设这时的闭环传递函数为()DHz。同样,如果这一闭环传递函数也能表示成极点都在z平面原点的形式,则过渡过程也能在有限拍内结束。(2)无纹波最少拍系统的设计根据王勤主编教材P93的理论推导可知,无纹波最少拍系统的闭环传递函数应分别为0()()()()kkFzPzFzHzzz(4-9)0()()()DkFzQzHzz(4-10)式中:()()()PzGzQz,0()Fz为z的多项式。上述传递函数能保证系统的输出Y(z)和控制器输出U(z)的暂态过程均能在有限拍内结束。式(4-9)说明,无纹波最少拍系统的闭环传递函数H(z)不仅应为1z的多项式,而且应包含G(z)的全部零点。由式(4-5)可得)()()()()(1)()(1)(00zPzFzzQzFzHzHzGzDk在最简单的情况下,0()Fz为常数。为了保证D(z)是可实现的,至少要使k大于或等于Q(z)的阶次,即kn(4-11)将式(4-7)与式(4-11)相比,发现由于要求无纹波,系统的最少拍增加了m拍,响应的暂态过程也延长m拍。4)斜坡输入下最少拍系统设计举例(1)斜坡输入下无稳态误差最少拍系统设计设被控对象为二阶系统,其传递函数为)1()(1sTsKsG对于二阶被控对象加零阶保持器后对象的传递函数为:)1(1)(1sTsKsesGTS选择采样周期T,将上述传递函数离散后得)1)(1()()()(112111111111zezzTeeTTzeTTTKzGTTTTTTTT因为输入是单位斜坡信号,所以选择:21)1()(1zzH212)(zzzH)1)(1()1)(2(])())[(1()1)(2()(1)()(1)()()(11111111111111111BzzKAzezzTeeTTeTTTzKzezzHzHzGzEzUzDTTTTTTTTTT2121)1(1)21(2111BzzBzezeKATTTT其中111TeTTATT,ATeeTTBTTTT1111由此可得斜坡输入下最少拍算法的数字控制器算法为u(k)=(1-B)u(k-1)+Bu(k-2)+)2()1(21)(211//keKAekeKAekeKATTTT(2)斜坡输入下无纹波、无稳态误差最少拍系统设计)1)(1()1()1)(1()()()(11111121111111111zezBzzKAzezzTeeTTzeTTTKzGTTTTTTTTTT①保证系统在斜坡输入下的稳态误差为零,则系统的闭环传递函数应符合1211()(1)()HzzFz②稳定性原则1()Hz应包含G(z)的不稳定极点,其形式为1211()(1)()HzzFz,其中1()Fz为不包含G(z)的零点和极点的多项式。上式和保证稳态误差为零的要求相同。()Hz应包含G(z)的不稳定零点,其形式为12()(1)()HzBzFz,其中2()Fz为不包含G(z)的零点和极点的多项式。③无纹波有限拍暂态过程为了实现无纹波,2()Fz中必须包含G(z)的分子上的另一因子1z。要寻找()Hz、1()Fz和2()Fz的形式,使它们的项数最少(即最小实现)而又满足上述条件。显然应为110()1Fzbz11201()()Fzcczz1111201()(1)()(1)()HzBzFzBzzccz联立求解得122320BBBc,12)12(21BBBc,12)1(20BBBBb所以有)1)(1())(1()(1)()(1)()()(10111011zbzKAzcczezHzHzGzEzUzDTT2010211010)1(1)(111zbzbzeczecccKATTTT由此可得斜坡输入下最少拍无纹波的算法:)2()1()()2()1()1()(11101000keKAeckeKAecckeKAckubkubkuTTTT四、实验步骤1、仔细阅读“PCI-1711数据采集卡驱动函数说明.doc”和“THJK-Server软件使用说明.doc”文档,掌握PCI-1711数据采集卡的数据输入输出方法和THJK-Server软件(及相关函数)的使用方法。2、模拟对象的模拟电路图如图2所示:图2模拟对象电路其中:R1=100K,R2=100K,R3=100K,C1=10uF,C2=10uF按上图连接一个积分环节和一个惯性环节组成的二阶被控对象的模拟电路;3、系统接线图如图3所示:图3系统接线图按照上图接线。4、设计在斜坡输入下的最少拍控制器的控制算法(有纹波、无纹波)。5、设计在单位阶跃输入下的最少拍控制器的控制算法(有纹波、无纹波)。6、打开最少拍实验文件夹下.dsw工程文件,源程序中缺少最少拍数字控制器算法程序,请同学用设计好的控制器算法编写程序。7、源程序编译通过后,先启动“THJK_Server”图形显示软件,再执行程序代码,在显示界面出现的曲线并稳定后(初始化后),把+5V电源打到“开”状态,观测并记录系统的响应曲线。在实验结束后,在键盘上先按下“e”,再按下“Enter(回车键)”键,程序退出。五、实验报告要求1、编程实现在斜坡输入下的最少拍控制器的控制算法(有纹波、无纹波)。答://*********控制器的编程//斜坡输入下无纹波最小拍控制ei=sv-fVoltage;A=100*Ts+Ti*(exp(-100*Ts/Ti))-Ti;B=(Ti-Ti*(exp(-100*Ts/Ti))-100*Ts*(exp(-100*Ts/Ti)))/A;c0=(3*B+2)/(B*B+2*B+1);c1=-(2*B+1)/(B*B+2*B+1);b0=B*(B+1)/(B*B+2*B+1);op=(1-B)*opx+B*opxx+(2*ei)/(k*A)-((1+2*exp(-100*Ts/Ti))/(k*A))*eix+exp(-100*(Ts/Ti))*eixx/(k*A);//op=(1-b0)*opx+b0*opxx+(c0*ei)/(k*A)+(c1-c0*exp(-100*Ts/Ti))*eix/(k*A)-c1*exp(-100*Ts/Ti)*eixx/(k*A);//斜坡输入下有纹波最小拍控制/ep=exp(-100*Ts/Ti);A=100*Ts+Ti*ep-Ti;B=(Ti-Ti*ep-100*Ts*ep)/A;op=(-B)*opx+ei/(k*A)-ep*eixx/(k*A);eixx=eix;eix=ei;opxx=opx;opx=op;2、编程实现在单位阶跃输入下的最少拍控制器的控制算法(有纹波、无纹波)。答://*********控制器的编程ei=sv-fVoltage;//单位阶跃输入下有纹波最小拍控制/*ep=exp(-100*Ts/Ti);A=100*Ts+Ti*ep-Ti;B=(Ti-Ti*ep-100*Ts*ep)/A;op=(-B)*opx+ei/(k*A)-ep*eixx/(k*A);*///单位阶跃输入下无纹波最小拍控制