东南大学自动化学院
实 验 报 告
课程名称: 计算机控制技术基础
第 四 次实验
实验名称: 具有纯滞后系统的大林控制 院 (系): 自动化学院 专 业: 自动化 姓 名: 郭劲廷 学 号: 08011331 实 验 室: 常州楼419 实验组别: 同组人员: 实验时间:2014 年 4 月 28 日 评定成绩: 审阅教师:
实验五 具有纯滞后系统的大林控制
一、实验目的
1.了解大林控制算法的基本原理;
2.掌握用于具有纯滞后对象的大林控制算法及其在控制系统中的应用。
二、实验设备
1.THBDC-1型 控制理论·计算机控制技术实验平台 2.PCI-1711数据采集卡一块
3.PC机1台(安装软件“VC++”及“THJK_Server”)
三、实验原理
在生产过程中,大多数工业对象具有较大的纯滞后时间,对象的纯滞后时间对控制系统的控制性能极为不利,它使系统的稳定性降低,过渡过程特性变坏。当对象的纯滞后时间
与对象的惯性时间常数T1之比,即/T10.5时,采用常规的比例积分微分(PID)控制,
很难获得良好的控制性能。长期以来,人们对纯滞后对象的控制作了大量的研究,比较有代表性的方法有大林算法和纯滞后补偿(Smith预估)控制。 本实验以大林算法为依据进行研究,大林算法的被控对象是带纯滞后的一阶或二阶惯性环节。即
Kes G(s)T1s1Kes或 G(s)
(T1s1)(T2s1)本实验被控对象为带纯滞后的一阶惯性环节。
式中:为纯滞后时间,为方便起见假设为采样周期T的整数倍
NT
大林算法的主要设计目标是系统在单位阶跃输入作用下,整个闭环系统的传递函数相当于一个延迟环节和一个惯性环节相串联。即
esH(s) (5-1)
T0s1要求整个闭环系统的纯滞后时间等于被控对象的纯滞后时间。 与H(s)相对应的闭环系统脉冲传递函数为
1esTeNTsH(z)Z[]
sT0s1
zN1(1z1)Z[ ]s(T1)0szN(1z)1(1eTT0)z1TT0(1eTT0)z(N1)TT0 (5-2)
(1z1)(1ez1)1ez1
将上式代入式D(z)1H(z)中,得 G(z)1H(z)D(z)当对象为一阶惯性环节加纯滞后时
(1eG(z)[1eTT0TT0)z(N1)TT0 (5-3)
z1(1e)z(N1)]1esTKeNTsG(z)Z[]
sT1s1KzN(1z1)Z[1]
s(T1s1)KzN(1z)1(1eTT1)z1TT1
(1z1)(1ez1)Kz(N1)(1e1eTT1)TT1 (5-4)
z1TT0TT1将式(5-4)代入式(5-3)得一阶惯性环节的控制器的D(z)为
D(z)K(1e由上式,控制算法为
(1eTT1)(1ez1)TT0)[1eTT0
z1(1eTT0TT1)z(N1)]TT0TT1u(k)e
TT0u(k1)(1eTT0)u(kN1)1ee(k))(1e)eK(1eK(1eTT1e(k1)
)
四、实验步骤
1、仔细阅读“PCI-1711数据采集卡驱动函数说明.doc”和“THJK-Server软件使用说明.doc”文档,掌握PCI-1711数据采集卡的数据输入输出方法和THJK-Server软件(及相关函数)的使用方法。
2、对象的传递函数为:
Kes G0(s), NT
T1s1上式中,滞后环节es由上位机软件模拟(函数ADinputDelay实现),为滞后时间,
这里取NT,T为采样周期。对象的其它部分由如下电路来模拟:
图5-1 模拟对象电路
3、系统接线图如图5-2所示:
图5-2 系统接线图
按照上图接线。
4、根据此被控对象设计大林控制算法并编程序实现。
5、打开大林算法实验文件夹下.dsw工程文件,源程序中缺少大林控制器算法程序,请同学用设计好的控制器算法编写程序(选取T00.1s,N=1~5)。
6、源程序编译通过后,先启动“THJK_Server”波形显示软件,再执行程序代码,在显示界面出现的曲线并稳定后(初始化后),把+5V电源打到“开”状态,观测并记录系统的响
应曲线。在实验结束后,在键盘上先按下“e”,再按下“Enter(回车键)”键,程序退出。 7、在纯滞后时间较大的情况下(可取N=5~8),试用数字PID算法来控制(效果较差),观察输出曲线,并与采用大林控制算法控制效果相比较并分析。
8、选取T00.01s,N=1时,将看到控制器输出存在振铃现象,采用计算机控制技术教材P99的振铃消除方法来消除振铃现象。
五、实验报告要求
1、编程实现大林控制算法(选取T00.1s,可取N=1~5)。
2、编程实现采用数字PID来控制的算法(可取N=5~8,控制效果较差)。 //PID 算法函数:pid[0]=P;pid[1]=I;pid[2]=D double PID(double ei, double *pid,double Ts) { static double ex=0,ey=0; static double q0=0; static double q1=0; static double q2=0; static double op=0; q0=pid[0]*(ei-ex); //比例项 if (pid[1]==0) q1=0; else q1=pid[0]*Ts*ei/pid[1] ; //当前积分项 q2=pid[0]*pid[2]*(ei-2*ex+ey)/Ts; //微分项 ey=ex; ex=ei;
op=op+q0+q1+q2; return op; }
ei=sv-fVoltage; x1=exp(-Ts/T0); x2=exp(-Ts/T1); a0=(1-x1)/(k*(1-x2)); a1=x2*(1-x1)/(k*(1-x2)); b1=exp(-Ts/T0); b2=1-exp(-Ts/T0);
output[0]=b1*output[1]+b2*output[N+1]+a0*ei-a1*eix; eix=ei;
for(int j=N;j>=0;j--)
{output[j+1]=output[j]; }
3、编程实现消除振铃现象后的大林控制算法(选取T00.01s,N=1)。
4、在纯滞后时间较大的条件下(可取N=5~8),比较采用大林控制与数字PID控制后的响应曲线并分析。
(1) 数字PID控制 N=5时
x1=exp(-Ts/T0); x2=exp(-Ts/T1);
a0=(1-x1)/(k*(1-x2)*(2-x1)); a1=x2*(1-x1)/(k*(1-x2)*(2-x1)); b1=1;
output[0]=b1*output[1]+a0*ei-a1*eix; eix=ei;
for(int j=N;j>=0;j--)
{output[j+1]=output[j]; }
(2)大林控制
a.当N=1,T00.1s时,采用大林算法控制后的响应曲线。
b.当N=5,T00.1s时,采用大林算法控制后的响应曲线。
c.当N=1,T00.01s时,采用大林算法控制后的响应曲线。
d.当N=5,T00.01s时,采用大林算法控制后的响应曲线。
分析:
对具有纯滞后过程的系统,采用大林算法可以很好地控制,以提高系统稳定性,改善过渡过程。增大N的值,即增大了纯滞后时间,系统的响应曲线更加滞后。通过比较,可以发现,当对象的纯滞后时间与对象的惯性时间常数T1之比,即/T10.5时,采用常规的比例积分微分(PID)控制,很难获得良好的控制性能。
e.当N=1,T00.01s时,采用大林算法控制后的响应曲线(存在振铃现象)。
f.当N=1,T00.01s时,采用消除振铃的大林算法控制后的响应曲线。
分析:
振铃现象是指计算机的输出以1/2采样频率大幅度上下摆动的现象。这一摆动将使执行机构的磨损增加而很快损坏。在有耦合作用的多回路控制系统中,振铃现象还可能破坏稳定性,因而必须设法消除。
六.实验总结:
在实验中,我知道了产生振铃现象的根源是计算机控制算法 D(z)含有z=-1点附近的极点,极点愈靠近-1点,振荡愈严重。消除振铃的办法是消除振铃因子。通过本次实验我对振铃现象有了更加深入的理解和感知,对大林算法有了更加深入的理解和认识。而为了不影响稳态值,我们可以使振铃因子中的z=-1。通过比较消除振铃前后的大林控制响应曲线,消除振铃可以提高系统的稳定性。