实验二数字PID控制一、实验原理及算法说明:计算机控制是一种采样控制,它只能根据采样时刻的偏差值计算控制量。因此连续PID控制算法不能直接使用,需要采用离散化方法。在计算机PID控制中,使用的是数字PID控制器。按模拟PID控制算法,以一系列的采样时刻点kT代表连续时间t,以矩形法数值积分近似代替积分,以一阶后向差分近似代替微分,可得离散PID位置式表达式:kjdipkjDIpTkekekTjekkekkekeTTjeTTkekku00)1()()()())1()(()()()(式中,DpdIpiTkkTkk,,e为误差信号,u为控制信号。二、实验内容:1、连续系统的数字PID控制仿真连续系统的数字PID控制可实现D/A及A/D的功能,符合数字实时控制的真实情况,计算机及DSP的实时PID控制都属于这种情况。设被控对象为一个电机模型传递函数BsJssG21)(,式中J=0.0067,B=0.1。输入信号为)2sin(5.0t,采用PD控制,其中5.0,20dpkk。采用ODE45方法求解连续被控对象方程。因为BsJssUsYsG21)()()(,所以udtdyBdtydJ22,另yyyy2,1,则/J)*u((B/J)yyyy12221经过编程实现的结果如下:00.20.40.60.811.21.41.61.82-0.8-0.6-0.4-0.200.20.40.6time(s)rin,yout00.20.40.60.811.21.41.61.82-0.02-0.0100.010.020.030.04time(s)error2、被控对象是一个三阶传递函数sss1047035.8752350023,采用Simulink与m文件相结合的形式,利用ODE45方法求解连续对象方程,主程序由Simulink模块实现,控制器由m文件实现。输入信号为一个采样周期1ms的正弦信号。采用PID方法设计控制器,其中05.0,2,5.1dipkkk。仿真结果如下所示:3、离散系统的数字PID控制仿真:设被控对象为ssssG1047035.87523500)(23,采样时间为1ms,对其进行离散化。针对离散系统的阶跃信号、正弦信号和方波信号的位置响应,设计离散PID控制器。其中S为信号选择变量,S=1时是阶跃跟踪,S=2时为方波跟踪,S=3时为正弦跟踪。求出G(s)对应的离散形式)()()(zUzYzG,其中Y(z)和U(z)是关于z的多项式,则可以得到其对应的差分表达式)3()4()2()3()1()2()3()4()2()3()1()2()(kunumkunumkunumkydenkydenkydenkyout仿真结果如下所示:00.511.500.20.40.60.811.21.4time(s)rin,yout00.511.5-1-0.8-0.6-0.4-0.200.20.40.60.81time(s)rin,yout00.511.5-0.8-0.6-0.4-0.200.20.40.6time(s)rin,yout针对于以上被控对象所对应的离散系统,设计针对三角波、锯齿波和随机信号的位置式响应。程序中当S=1时为三角波,S=2时为锯齿波,S=3时为随机信号。如果D=1,则通过pause命令实现动态演示仿真。仿真结果如下所示:00.511.522.53-0.8-0.6-0.4-0.200.20.40.6time(s)rin,yout00.511.522.53-0.200.20.40.60.811.2time(s)rin,yout00.511.522.5300.10.20.30.40.50.60.70.8time(s)rin,yout4、采用Simulink实现PID控制器的设计,如图2-2所示,其中离散PID控制的子系统如图2-3所示,其封装界面如图2-4所示。图2-2离散PID控制的Simulink主程序图2-3离散PID控制的Simulink控制器程序图2-4离散PID控制的封装界面仿真结果如下所示:5、增量式PID控制算法及仿真:、当执行机构需要的是控制量的增量(例如驱动步进电机)时,应采用增量式PID控制,根据递推原理可得增量式PID控制算法为)2()1(2)()()1()()1()()(kekekekkekkekekkukukudip设被控对象sssG50400)(2,采用增量式控制算法,PID控制参数10,1.0,8dipkkk。仿真结果如下所示:00.10.20.30.40.50.60.70.80.9100.10.20.30.40.50.60.70.80.91time(s)rin,yout四、实验结果与结论:本次试验学习并了解了pid算法和动手实验了一些典型的pid算法,从整体上了解了pid的设计方法,并从仿真结果中了解到了pid算法的优点。PID控制器参数的在各种调节系统中数据可以调整:比如先把微分作用取消掉,只保留PI,先调比例,再调积分,最后加上微分再调.如果振荡过快,加大P.如果振荡后过很久才稳定,减小P.减少积分时间.如果振荡的周期太长,加大积分时间.如果对调节对象变化反应过慢,增大D.最后把波形调到只有一两个振荡就平稳了,就是最好的效果.实验三PID控制的改进算法一、实验原理及算法说明:在计算机控制系统中,PID控制是通过计算机程序实现的,因此灵活性很大。一些原来在模拟PID控制器中无法实现的问题,在引入计算机以后,就可以得到解决,于是产生了一系列的改进算法,形成非标准的控制算法,以改善系统品质,满足不同控制系统的需要。二、实验内容:1、积分分离PID控制算法在普通PID控制中,积分的目的是为了消除金叉,提高精度,但在过程的启动、结束或大幅度增减设定是,短时间内系统输出有很大偏差,会造成PID运算的积分积累,致使控制量超过执行机构可能允许的最大动作范围对应的极限控制量,引起系统较大的超调,甚至引起系统较大的振荡,这在生产中是绝对不允许的。积分分离控制基本思路是,当被控量与设定值偏差较大时,取消积分作用,以免由于积分作用使系统稳定性降低,超调量增大;当被控量接近给定值时,引入积分控制,以便消除静差,提高控制精度。其具体实现步骤是:1)根据实际情况,人为设定阈值ε0;2)当)(ke时,采用PD控制,可避免产生过大的超调,又使系统有较快的响应;3)当)(ke时,采用PID控制,以保证系统的控制精度。积分分离算法可表示为:kjdipTkekekTjekkekku0)1()()()()(式中,T为采样时间,β为积分项的开关系数,|)(|0|)(|1keke设备控对象为一个延迟对象160)(80sesGs,采样周期为20s,延迟时间为4个采样周期,即80s。输入信号r(k)=40,控制器输出限制在[-110,110]。3,005.0,8.0dipkkk被控对象离散化为)5()2()1()2()(kunumkydenky仿真结果如下所示:050010001500200025003000350040000510152025303540time(s)rin,yout0500100015002000250030003500400031323334353637383940time(s)u050010001500200025003000350040000510152025303540time(s)rin,yout0500100015002000250030003500400025303540455055time(s)u采用Simulink仿真的实验结果如下:2、抗积分饱和PID控制算法所谓积分饱和是指若系统存在一个方向的偏差,PID控制器的输出由于积分作用的不断累加而加大,从而导致执行机构达到极限位置Xmax,若控制器输出u(k)继续增大,阀门开度不可能在增大,此时就称计算机输出控制超出正常运行范围而进入了饱和区。一旦系统出现反向偏差,u(k)逐渐从饱和区推出。进入饱和区越深,则退出饱和区所需时间越长。在这段时间内,执行机构仍停留在极限位置而不能随偏差反向立即作出相应的改变,这时系统就像失去控制一样,造成控制性能恶化。这种现象称为积分饱和现象或积分失控现象。抗积分饱和的思路是,在计算u(k)时,首先判断上一时刻的控制量u(k-1)是否已超出限制范围。若u(k-1)umax,则只累加负偏差;若u(k-1)umin,则只累加正偏差。这种算法可以避免控制量长时间停留在饱和区。设被控对象为ssssG1047035.87523500)(23,采样周期1ms。输入r(k)=30,0,9,85.0dipkkk仿真结果如下所示:00.10.20.30.40.50.60.70.802040time(s)Positiontracking00.10.20.30.40.50.60.70.8-10010time(s)Controlleroutput00.10.20.30.40.50.60.70.800.050.1time(s)Integration00.10.20.30.40.50.60.70.8050time(s)Positiontracking00.10.20.30.40.50.60.70.8-10010time(s)Controlleroutput00.10.20.30.40.50.60.70.8012time(s)Integration3、不完全微分PID控制算法在PID控制中,微分信号的引入可改善系统的动态特性,但也易引入高频干扰,在误差扰动突变时尤其显出微分项的不足。若在控制算法中加入低通滤波器,则可使系统性能得到改善。具体做法就是在PID算法中加入一个一阶惯性环节(低通滤波器)sTf11,Tf为滤波器系数。可得此时的微分项输出为)1()1()()1()1()()1()(kukekeKkekeTTTkkuTTTkuDDfsDpDfsfD,其中)1(kuTTTDfsf,sDpDTTkK,Ts为采样时间,TD为微分时间常数。被控对象为时滞系统传递函数160)(80sesGs,在对象的输出端加幅值为0.01的随机信号。采样周期为20ms。采用不完全微分算法,140,0055.0,3.0DipTkk。所加的低通滤波器为11801)(ssQ仿真结果如下所示:-30-25-20-15-10-50Magnitude(dB)10-410-310-210-1-90-450Phase(deg)BodeDiagramFrequency(rad/sec)02004006008001000120014001600180020000.650.70.750.80.850.90.9511.05time(s)u0200400600800100012001400160018002000-0.200.20.40.60.811.2time(s)error0200400600800100012001400160018002000-0.200.20.40.60.811.2time(s)rin,yout0200400600800100012001400160018002000-1-0.500.511.522.53time(s)u0200400600800100012001400160018002000-0.200.20.40.60.811.2time(s)error-30-25-20-15-10-50Magnitude(dB)10-410-310-210-1-90-450Phase(deg)BodeDiagramFrequency(rad/sec)4、微分线性PID控制算法微分线性的PID控制结构如图3-2所示,其特点是只对输出量y(k)进行微分,而对给定值r(