学院:********** 班级:********** 姓名:****** 学号:**********实验三数字PID调节器算法的研究实验项目名称:数字PID调节器算法的研究实验项目性质:普通所属课程名称:计算机控制技术实验计划学时:2学时一、实验目的1.学习并熟悉常规的数字PID控制算法的原理;2.学习并熟悉积分分离PID控制算法的原理;3.掌握具有数字PID调节器控制系统的实验和调节器参数的整定方法。
二、实验内容和要求1.利用本实验平台,设计并构成一个用于混合仿真实验的计算机闭环实时控制系统;2.采用常规的PI和PID调节器,构成计算机闭环系统,并对调节器的参数进行整定,使之具有满意的动态性能;3.对系统采用积分分离PID控制,并整定调节器的参数。
二、实验主要仪器和材料1.THTJ-1型计算机控制技术实验箱2.THVLW-1型USB数据采集卡一块(含37芯通信线、USB电缆线各1根)3.PC机1台(含上位机软件“THTJ-1”)四、实验方法、步骤及结果测试1、实验原理在工业过程控制中,应用最广泛的控制器是PID控制器,它是按偏差的比例(P)、积分(I)、微分(D)组合而成的控制规律。
而数字PID控制器则是由模拟PID控制规律直接变换所得。
在PID控制规律中,引入积分的目的是为了消除静差,提高控制精度,但系统中引入了积分,往往使之产生过大的超调量,这对某些生产过程是不允许的。
因此在工业生产中常用改进的PID算法,如积分分离PID算法,其思想是当被控量与设定值偏差较大时取消积分控制;当控制量接近给定值时才将积分作用投入,以消除静差,提高控制精度。
这样,既保持了积分的作用,又减小了超调量。
2、实验步骤1、实验接线1.1按图1和图2连接一个二阶被控对象闭环控制系统的电路;1.2该电路的输出与数据采集卡的输入端AD1相连,电路的输入与数据采集卡的输出端DA1相连;1.3待检查电路接线无误后,打开实验平台的电源总开关,并将锁零单元的锁零按钮处于“不锁零”状态。
2、脚本程序运行2.1启动计算机,在桌面双击图标THTJ-1,运行实验软件;2.2顺序点击虚拟示波器界面上的“”按钮和工具栏上的“”按钮(脚本编程器);2.3在脚本编辑器窗口的文件菜单下点击“打开”按钮,并在“计算机控制算法VBS\计算机控制技术基础算法\数字PID调器算法”文件夹下选中“位置式PID”脚本程序并打开,阅读、理解该程序,然后点击脚本编辑器窗口的调试菜单下“步长设置”,将脚本算法的运行步长设为100ms;2.4点击脚本编辑器窗口的调试菜单下“启动”;用虚拟示波器观察图4-2输出端的响应曲线;2.5点击脚本编辑器的调试菜单下“停止”,利用扩充响应曲线法(参考本实验七附录4)整定PID控制器的P、I、D及系统采样时间Ts等参数,然后再运行。
在整定过程中注意观察参数的变化对系统动态性能的影响;2.6 参考步骤2.4、2.4和2.5,用同样的方法分别运行增量式PID和积分分离PID脚本程序,并整定PID控制器的P、I、D及系统采样时间Ts等参数,然后观察参数的变化对系统动态性能的影响。
另外在积分分离PID程序运行过程中,注意不同的分离阈值tem对系统动态性能的影响;2.7 实验结束后,关闭脚本编辑器窗口,退出实验软件。
五、实验报告要求1.绘出实验中二阶被控对象在各种不同的PID控制下的响应曲线。
2.编写积分分离PID控制算法的脚本程序。
3.分析常规PID控制算法与积分分离PID控制算法在实验中的控制效果。
数据分析:(1):位置型PID响应曲线:(2):增量型PID响应曲线:超调量:7.293 峰值时间:0.235ms 达到稳态的时间:5.563ms 稳态值:2.0积分分离型PID响应曲线:超调量:6.514 峰值时间:0.277ms 达到稳态的时间:6.435ms 稳态值:2.0六、思考题1. 该实验中被控对象是什么?有什么特点?答:被控对象是一个积分放大电路的输出;其特点是刚上电的瞬间由于电容的充电作用,其输出电压值会有一个瞬时升高的过程,然后随着电容的充电,输出电压会逐渐稳定。
2. 试画出该实验中数字PID控制系统的方框图。
PID控制系统的方框图3. 试叙述带积分分离的PID 控制算法的特点和应用的场合。
答:带积分分离的PID 算法的特点是:偏差e(k)较大时,取消积分作用;当偏差e(k)较小时才将积分作用投入;其应用场合:当有较大的扰动或大幅度改变给定值采用积分分离措施。
4. 位置式PID 算式与增量式算式有何区别?各有什么优缺点?答:位置式算式提供了执行机构的位置u(k),增量式算式则反映了前后位置之差Δu(k);位置式算法的优点是简单明了,但较容易产生较大的累加误差;增量式算式的优点是误差较小,易于控制,但其算法相对复杂。
5. 数字PID 调节器的参数Kp 、Ti 、Td 和采样周期T 对系统响应有何影响?参数的整定使用什么方法?答:Kp 能控制误差,但其加大会造成系统不稳定;Ti 累积输出控制量以消除误差,但作用太强大会造成系统的超调量加大,甚至出到系统振荡;Td 可以减小超调量,提高稳定性,加快系统动态响应速度,减小调整时间,改善动态性能。
参数的整定用简易工程法中的扩充阶跃响应曲线法。
七、附录1.被控对象的模拟与计算机闭环控制系统的构成图1 数-模混合控制系统的方框图图中信号的离散化通过数据采集卡的采样开关来实现。
被控对象的传递函数为:)15.0)(1(5)2)(1(10)(++=++=s s s s S G它的模拟电路图如下图所示图2 被控二阶对象的模拟电路图2.常规PID 控制算法 1)常规PID 控制位置式算法为:})]1()([)()({)(1∑=--++=ki dip k e k e T T i e T Tk e k k u对应的Z 传递函数为:)1(11)()(D(Z)11---+-+==Z K z K K Z E z U d i P式中K p ---比例系数K i =i p T T K 积分系数,T 采样周期K d =TT K dp 微分系数其增量形式为:)]2()1(2)([)()]1()([)1()(-+--++--+-=k e k e k e K k e K k e k e K k u k u d i p3.积分分离PID 控制算法:系统中引入的积分分离算法时,积分分离PID 算法要设置分离阈E 0: 当 │e(kT)│≤│E 0│时,采用PID 控制,以保持系统的控制精度。
当 │e(kT)│>│E 0│时,采用PD 控制,可使δp 减小。
积分分离PID 控制算法为:∑=--++=kj d i e p k e k e K jT e K K k e K k u 0)1()([)()()(式中K e 称为逻辑系数: 当 │e(k)│≤│E0│时, Ke=1 当 │e(k)│>│E0│时, Ke=0对应的控制方框图为图4-3 上位机控制的方框图图中信号的离散化是由数据采集卡的采样开关来实现。
4.数字PID 控制器的参数整定在模拟控制系统中,参数整定的方法较多,常用的实验整定法有:临界比例度法、阶跃响应曲线法、试凑法等。
数字控制器参数的整定也可采用类似的方法,如扩充的临界比例度法、扩充的阶跃响应曲线法、试凑法等。
下面简要介绍扩充阶跃响应曲线法。
扩充阶跃响应曲线法只适合于含多个惯性环节的自平衡系统。
用扩充阶跃响应曲线法整定PID参数的步骤如下:①数字控制器不接入控制系统,让系统处于开环工作状态下,将被调量调节到给定值附近,并使之稳定下来。
②记录被调量在阶跃输入下的整个变化过程,如下图所示。
③在曲线最大斜率处作切线,求得滞后时间τ和被控对象时间常数Tx,以及它们的比值Tx/τ,然后查下表确定控制器的K P、K i、K d及采样周期T。
扩充阶跃响应曲线法通过测取响应曲线的τ、Tx参数获得一个初步的PID控制参数,然后在此基础上通过部分参数的调节(试凑)使系统获得满意的控制性能。
5.位置式PID数字控制器程序的编写与调试示例:5.1参考程序dim pv,sv,ei,K,Ti,Td,q0,q1,q2,mx,pvx,op ‘变量定义sub Initialize(arg) ‘初始化函数WriteData 0 ,1 '给通道一写0mx=0 '给mx赋初值pvx=0 '给pvx赋初值end sub '结束初始化子函数sub TakeOneStep (arg) ‘算法运行函数pv = ReadData(1) 'pv为当前测量值sv=2 ‘sv为给定值K=0.8 ‘比例系数PTi=5 ‘积分时间常数ITd=0 ‘微分时间常数DTs=0.1 ‘采样周期ei=sv-pv 'ei为当前偏差值q0=K*ei ‘比例项if Ti=0 thenmx=0q1=0elsemx=K*Ts*ei/Ti ‘当前积分项end ifq2=K*Td*(pvx-pv)/Ts ‘'微分项q1=q1+mx '当前积分项if q1>4.9 then ‘积分限幅,以防积分饱和q1=4.9end ifif q1<-4.9 thenq1=-4.9end ifpvx=pv '将当前输出值赋给pvx, 为下一时刻做准备op=q0+q1+q2 'op为控制器当前输出值if op<=-4.9 then '输出值限幅,op下限为-4.9op=-4.9end ifif op>=4.9 then 'op上限为4.9op=4.9end ifWriteData op ,1 '通道1写入op的值end sub '结束算法运行子函数sub Finalize (arg) ‘退出函数WriteData 0 ,1 '给通道一写0end sub '结束退出子函数5.2位置式PID (k=0.8,ti=5,td=0);运行步长100ms,超调量为27.5%。
(如图3)图36、积分分离PID控制算法的编程参考示例:6.1程序dim pv,sv,ei,K,Ti,Td,q0,q1,q2,mx,pvx,op,ke,tem '变量定义sub Initialize(arg) '初始化函数WriteData 0 ,1 '给通道一写0mx=0 '给mx赋初值pvx=0 '给pvx赋初值end sub '结束初始化子函数sub TakeOneStep (arg) '算法运行函数pv = ReadData(1) ' pv为当前测量值sv=2 'sv为给定值K=0.8 'K为比例系数Ti=5 'Ti为积分时间常数Td=0 'Td为微分时间常数Ts=0.1 ' Ts为采集周期ei=sv-pv 'ei为当前偏差值tem=abs(ei)if tem>=0.8 then '丨ei丨≥0.8时,ke=0;其中0.8为分离阈值ke=0elseke=1 '丨ei丨<0.8时,ke=1end ifq0=K*ei '比例项if Ti=0 thenmx=0q1=0elsemx=ke*K*Ts*ei/Ti '当前积分项end ifq2=K*Td*(pvx-pv)/Ts '微分项if mx>4.9 then '当前积分限幅,以防积分饱和mx=4.9end ifif mx<-4.9 thenmx=-4.9end ifq1=q1+mx '当前积分项pvx=pv '将当前输出值赋给pvx, 为下一时刻做准备op=q0+q1+q2 '当前输出值'op为控制器当前输出值if op<=-4.9 then '输出值限幅,op下限为-4.9op=-4.9end ifif op>=4.9 thenop=4.9 'op上限为4.9end ifWriteData op ,1 '通道1写入op的值end sub '结束算法运行子函数sub Finalize (arg) '退出函数WriteData 0 ,1 '给通道一写0end sub '结束退出子函数6.2积分分离PID (k=0.8,ti=5,td=0),超调量为15.6%7、增量式PID控制算法的编程参考示例:7.1参考程序dim pv,sv,ei,ex,ey,K,Ti,Td,q0,q1,q2,op '变量定义sub Initialize(arg) '初始化函数WriteData 0 ,1 '给通道一写0end sub '结束初始化子函数sub TakeOneStep (arg) '算法运行函数pv = ReadData(1) ' pv为当前测量值sv=2 'sv为给定值K=0.8 'K为比例系数Ti=5 'Ti为积分时间常数Td=0 'Td为积分时间常数Ts=0.1 ' Ts为采集周期ei=sv-pv 'ei为当前偏差值q0=k*(ei-ex) '比例项if Ti=0 thenq1=0elseq1=K*Ts*ei/Ti '当前积分项end ifq2=k*td*(ei-2*ex+ey) /Ts '微分项ey=ex '赋值,为下一时刻做准备ex=eiif q1>4.9 then '当前积分限幅,以防积分饱和q1=4.9end ifif q1<-4.9 thenq1=-4.9end ifop=op+q0+q1+q2 'op为控制器当前输出值if op<=-4.9 then '输出值限幅,op下限为-4.9 op=-4.9end ifif op>=4.9 then 'op上限为4.9op=4.9end ifWriteData op ,1 '通道1写入op的值end sub '结束算法运行子函数sub Finalize (arg) '退出函数WriteData 0 ,1 '给通道一写0end sub '结束退出子函数7.2增量式PID (k=0.8,ti=5,td=0),超调量为27.3%。