基于DSl8820的温控系统冷热调节设计
PID算法由积分分离PID算法实现,采用积分分离的方法,在被控量开始监控时取消积分作用,在温度值接近目标值时才产生积分作用,有效降低系统启、停次数频繁给系统带来的振荡。积分分离PID算法为:
![](http://m.amcfsurvey.com/editerupload/fetch/20130823/163010_3_0.jpg)
式中,Y(K)为温度的目标设定值,C(K)为经数字滤波后的温度测量值,△Y为设定的最大允许偏差值。根据此算法思想可用汇编语言编程实现积分分离PID算法。
DSl8820控制子程序按照DSl8820的通信协议编制,包括DSl8820初始化,DSl8820读、写控制子程序,分别按照相应的规则说明进行编程实现。
3.3 功能实现模块
功能实现模块包括温度值设置、温度显示、固态继电器通断控制以及系统运行状态显示等子程序,其中在温度显示子程序中要完成各个位置段码的调用、数码管的选通以及数据总线的稳定(一般采用延时几ms实现)。
4 系统调试
系统调试主要进行PID参数的整定和温度值的系统误差校正。PID参数及系统其它参数的整定首先采用经验值,再逐个细调,以满足控制精度要求。根据表3的实验数据,利用MATLAB进行一维曲线拟合,校正系统误差,从而得到更准确的测量数据。本文引用地址://m.amcfsurvey.com/article/163010.htm
MATLAB拟合过程和结果如图5所示。图5中“O”表示(检测值,标准值),“*”表示(检测值,拟合值),一维曲线拟合方程为:y=0.994 8x-O.399 6,经数字滤波后的采样值再采用此方程处理便可得到更为精确的测量值。
5 结束语
本文从应用角度出发,给出了温控系统冷热调节详细的硬件和软件设计,充分利用DSl8820单总线测温的准确性和便捷性,并使用限速滤波、积分分离PID算法、MATLAB一维曲线拟合等方法来提高系统的可靠性和测量值的精确性。但信号传输线的抗干扰、键盘按键消抖等方面还不够完善,而且采用MATLAB进行处理的实验数据采样不够充分,未考虑在测量过高或过低温度时的温度漂移情况,因此系统的设计有待进一步的深入与完善。
评论