实验三 数字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. 该实验中被控对象是什么?有什么特点?
2. 试画出该实验中数字PID控制系统的方框图。
3. 试叙述带积分分离的PID控制算法的特点和应用的场合。
4. 位置式PID算式与增量式算式有何区别?各有什么优缺点?
5. 数字PID调节器的参数Kp 、Ti 、Td和采样周期T对系统响应有何影响?参数的整定使用什么方法?
七、附录
1.被控对象的模拟与计算机闭环控制系统的构成
图1 数-模混合控制系统的方框图
图中信号的离散化通过数据采集卡的采样开关来实现。
被控对象的传递函数为:
它的模拟电路图如下图所示
图2 被控二阶对象的模拟电路图
2.常规PID控制算法
1)常规PID控制位置式算法为:
对应的Z传递函数为:
式中Kp---比例系数
Ki=积分系数,T采样周期
Kd=微分系数
其增量形式为:
3.积分分离PID控制算法:
系统中引入的积分分离算法时,积分分离PID算法要设置分离阈E0:
当 │e(kT)│≤│E0│时,采用PID控制,以保持系统的控制精度。
当 │e(kT)│>│E0│时,采用PD控制,可使δp减小。积分分离PID控制算法为:
式中Ke称为逻辑系数:
当 │e(k)│≤│E0│时, Ke=1
当 │e(k)│>│E0│时, Ke=0
对应的控制方框图为
图4-3 上位机控制的方框图
图中信号的离散化是由数据采集卡的采样开关来实现。
4.数字PID控制器的参数整定
在模拟控制系统中,参数整定的方法较多,常用的实验整定法有:临界比例度法、阶跃响应曲线法、试凑法等。数字控制器参数的整定也可采用类似的方法,如扩充的临界比例度法、扩充的阶跃响应曲线法、试凑法等。下面简要介绍扩充阶跃响应曲线法。
扩充阶跃响应曲线法只适合于含多个惯性环节的自平衡系统。用扩充阶跃响应曲线法整定PID参数的步骤如下:
① 数字控制器不接入控制系统,让系统处于开环工作状态下,将被调量调节到给定值附近,并使之稳定下来。
② 记录被调量在阶跃输入下的整个变化过程,如下图所示。
③ 在曲线最大斜率处作切线,求得滞后时间τ和被控对象时间常数Tx,以及它们的比值Tx/τ,然后查下表确定控制器的KP、Ki、Kd及采样周期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 '给通道一写0
mx=0 '给mx赋初值
pvx=0 '给pvx赋初值
end sub '结束初始化子函数
sub TakeOneStep (arg) ‘算法运行函数
pv = ReadData(1) 'pv为当前测量值
sv=2 ‘sv为给定值
K=0.8 ‘比例系数P
Ti=5 ‘积分时间常数I
Td=0 ‘微分时间常数D
Ts=0.1 ‘采样周期
ei=sv-pv 'ei为当前偏差值
q0=K*ei ‘比例项
if Ti=0 then
mx=0
q1=0
else
mx=K*Ts*ei/Ti ‘当前积分项
end if
q2=K*Td*(pvx-pv)/Ts ‘'微分项
q1=q1+mx '当前积分项
if q1>4.9 then ‘积分限幅,以防积分饱和
q1=4.9
end if
if q1<-4.9 then
q1=-4.9
end if
pvx=pv '将当前输出值赋给pvx, 为下一时刻做准备
op=q0+q1+q2 'op为控制器当前输出值
if op<=-4.9 then '输出值限幅,op下限为-4.9
op=-4.9
end if
if op>=4.9 then 'op上限为4.9
op=4.9
end if
WriteData op ,1 '通道1写入op的值
end sub '结束算法运行子函数
sub Finalize (arg) ‘退出函数
WriteData 0 ,1 '给通道一写0
end sub '结束退出子函数
5.2位置式PID (k=0.8,ti=5,td=0);运行步长100ms,超调量为27.5%。(如图3)
图3
6、积分分离PID控制算法的编程参考示例:
6.1程序
dim pv,sv,ei,K,Ti,Td,q0,q1,q2,mx,pvx,op,ke,tem '变量定义
sub Initialize(arg) '初始化函数
WriteData 0 ,1 '给通道一写0
mx=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=0
else
ke=1 '丨ei丨<0.8时,ke=1
end if
q0=K*ei '比例项
if Ti=0 then
mx=0
q1=0
else
mx=ke*K*Ts*ei/Ti '当前积分项
end if
q2=K*Td*(pvx-pv)/Ts '微分项
if mx>4.9 then '当前积分限幅,以防积分饱和
mx=4.9
end if
if mx<-4.9 then
mx=-4.9
end if
q1=q1+mx '当前积分项
pvx=pv '将当前输出值赋给pvx, 为下一时刻做准备
op=q0+q1+q2 '当前输出值'op为控制器当前输出值
if op<=-4.9 then '输出值限幅,op下限为-4.9
op=-4.9
end if
if op>=4.9 then
op=4.9 'op上限为4.9
end if
WriteData op ,1 '通道1写入op的值
end sub '结束算法运行子函数
sub Finalize (arg) '退出函数
WriteData 0 ,1 '给通道一写0
end 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 '给通道一写0
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为当前偏差值
q0=k*(ei-ex) '比例项
if Ti=0 then
q1=0
else
q1=K*Ts*ei/Ti '当前积分项
end if
q2=k*td*(ei-2*ex+ey) /Ts '微分项
ey=ex '赋值,为下一时刻做准备
ex=ei
if q1>4.9 then '当前积分限幅,以防积分饱和
q1=4.9
end if
if q1<-4.9 then
q1=-4.9
end if
op=op+q0+q1+q2 'op为控制器当前输出值
if op<=-4.9 then '输出值限幅,op下限为-4.9
op=-4.9
end if
if op>=4.9 then 'op上限为4.9
op=4.9
end if
WriteData op ,1 '通道1写入op的值
end sub '结束算法运行子函数
sub Finalize (arg) '退出函数
WriteData 0 ,1 '给通道一写0
end sub '结束退出子函数
7.2增量式PID (k=0.8,ti=5,td=0),超调量为27.3%。