摘 要: 为改善温控系统性能并简化结构,以PID控制算法为基础,通过SoC高性能、C8051F系列单片机设计并实现具有温度实时测量、闭环控制和实时显示等功能的智能温控系统。不仅简化了硬件结构,各电路模块之间相互独立使设计的复用及扩展成为可能,同时提高了系统的抗干扰性和可靠性。实测结果表明,本系统温度响应时间为3 s~5 s,温度控制的误差为1%,在需要恒温控制的场合有一定的推广价值。
关键词: 单片机; 温度控制; 闭环控制; PID; 实时显示
温度是工业生产中最普遍而又最关键的参数之一,其测量精度对产品的质量有直接的影响[1]。传统温控系统虽然温度控制精度较高(误差不超过±0.5 ℃,温度不均匀性不大于1 ℃),但其电路复杂,发生温控故障时维修困难且温度显示不直观。而将智能控制和常规PID控制方法融合在一起从而形成的实时显示智能PID控制器能很好地解决此类问题[2]。
1 温度控制系统框图
温度控制系统框图如图1所示。此系统是一个典型的闭环控制系统,用于控制灯箱内的温度使其保持在恒定的温度设定值。系统通过PT100铂热电阻采集实时温度,通过变送器及输入电路反馈实时温度信号,再与设定值对比确定偏差值;偏差值经过PID算法运算输出,通过驱动电路和SSR控制发热装置控制温箱温度,以克服偏差,促使偏差趋近于零,实现恒温控制[3]。
2系统硬件设计
系统硬件原理图如图2所示,由电源模块、输入、输出模块、主芯片、显示模块等组成。
2.1 电源模块电路
电源模块由整流、滤波等电路以及稳压芯片组成。其中稳压芯片采用National Semiconductor的两款芯片,分别是输出电压为5 V的三端稳压器LM7805CT和500 mA低压差稳压器LM2937。
2.2 主芯片及周边电路
主芯片选用Silicon Laboratories公司出品的C8051Fxxx单片机,它是完全集成的混合信号系统级低功耗芯片(SoC),具有与8051指令集完全兼容的CIP-51内核[4]。大多数C8051F单片机具备控制系统设计所需的模拟及数字外设,包括Watch Dog、ADC、DAC、电压比较器、电压基准输出定时器、PWM、定时器捕捉等;并具备多种总线接口,包括UART、SPI、SMBUS(与C兼容I2C)总等。周边电路包括晶振电路、ADC外部参考电压电路以及复位电路等。
2.3 控制器电流输出分析
电路采用负载共地方式,由MAXIM公司的低失调、低漂移的精密运算放大器OP07,精密电阻R9、R8、R11、R10、R12、R13、R14以及Q1、Q2组成。设Vi为输入电压,即Vi=DAC1;Iout为输出电流;R13为采样反馈电阻;R11、R12为限流电阻;R14为负载电阻,用电位器可以实现阻值的变化。流过R13的采样电流信号以电压的形式加到运算放大器的输入端,而且极性与输入电压信号反相,形成一个电流并联负反馈电路。由于运算放大器的输入阻抗很高,流入运算放大器输入端的电流可以忽略。在R11>>R13且R10>>R13条件下,流经R11、R10的电流与流经Q2射极的电流相比可以忽略,此时Iout=IE。运算放大器正负输入端电位近似相等,设R9=R8=R11=R10,可得:
取R9=100 k?赘, R11=20 k?赘,R14为电位器,当Vi=2.5 V时,Iout=20 mA。为保证足够的V/I变换精度,电阻应当选用精密电阻;输入电压Vi>(R13+R14)×Imax,Imax是Iout的最大值[5]。
3 温控系统软件设计
3.1 温控系统软件主流程图
温控系统软件主流程图如图3所示。
系统经过初始化,进行键盘扫描,等待按键按下。当按键按下则进行参数设置,根据按键次数的不同设置相应的参数,设置完参数后再有按键按下时系统运行。此时,键盘继续扫描等待按键按下以便修改参数。
3.2 温控系统软件子流程图
3.2.1 系统初始化子程序
系统时钟的初始化通过对OSXCN和OSCICN寄存器的设置,选择24 MHz的外部振荡器为SYSCLK源并允许丢失时钟检测器。由于显示模块采用CH452数码管显示驱动和键盘扫描控制芯片,通过输出12 bit的操作命令进行相应的控制。输出12 bit串行数据0x0403使按键低电平中断,低速闪烁,同时启用按键扫描与显示驱动。当寄存器ADCOCN的最高位ADCEN=1时使能A/D转换,当寄存器DAC0CN=0x80(即DAC0EN为1)时使能DAC0[6]。
3.2.2 系统运行子程序
系统运行子程序流程图如图4所示。进入系统运行后,采集PT100铂电阻值,信号经过PT100温度变送器转换成4~20 mA电流信号通过输入电路到达主控芯片,再经过标度变换及A/D转换。在实现温度显示的同时得到温度设定值与实时温度值的差值。进行PID算法处理得到增量值,如果没有超边界值则根据输出量控制SSR来发热装置进而实现温箱温度的调节[7]。
3.3 PID调节
温度控制系统是一个惯性较大的系统,即当给温箱加热之后,并不能立刻观察到温度的明显上升,Pt100铂电阻对温度的检测与实际的温箱温度相比较,也存在一定的时滞特性[8]。为了合理地处理系统响应速度与系统稳定性之间的矛盾,温度控制可以分为两个阶段:
(1) PID调节前阶段
此时,温箱温度距离设定值很远,为了加速加热速度,SSR与发热装置处于满负荷输出状态,只有当温度上升速度超过控制参数“加速速率”,SSR才关闭输出。
(2) PID调节阶段
在这个阶段,PID调节器调节输出,根据偏差值计算输出值,保证偏差趋近于零,即使系统受到外部干扰时,也能使系统回到平衡状态。
PID控制的原理是基于下面算式,其中输出u(t)是比例项、积分项和微分项的函数:
为了能让数字计算机处理这个算式,连续算式必须离散化为周期采样偏差式,才能用来计算输出值。在工业应用中,习惯上将式(3)中各项近似离散为:
通常,计算机输出的控制指令u(k)是直接控制执行机构。但由于累加误差,占用内存较多,并且安全性较差。一旦计算机出现故障,u(k)的大幅度变化引起执行机构的突变,可能造成重大事故,此时可采用增量式算法。它是位置算法的一种改进,如下式:
u(k)=u(k)-u(k-1)=KP[e(k)-e(k-1)]+KIe(k)+
KD[e(k)-2e(k-1)+e(k-2)] (5)
将式(5)进一步整理,可得:
?驻u(k)=u(k)-u(k-1)=KP[(1+T/TI+TD/T)e(k)-
(1+2TD/T)e(k-1)+(TD/T)e(k-2)]
=KP[Ae(k)-Be(k-1)+Ce(k-2)](6)
式中A=1+T/TI+TD/T, B=1+2TD/T,C=TD/T。由式(6)可见,根据误差3个时刻采样值,调整加权值即可获得不同的控制品质和精度[9]。
4 系统调试
由稳压源提供电路所需的±12 V及变送器所需的24 V电压,SSR则由220 V供电,上电后通过按键设置参考温度为33℃,之后系统进入运行状态。实时温度曲线如图5所示,可见达到了预期控制效果,未来可配合更加优化的新型PID控制算法实现对多变量复杂对象的控制[10]。
由于系统选用了功能强大、低功耗的C8051F系列单片机作为核心器件,加之精心设计相互间独立的电路,增加信号处理单元,使其性能指标达到了温度响应时间为3 s~5 s,温度控制的误差为1%,满足了设计的要求,达到预期效果,能在需要恒温装置的场合有很好的应用前景。
参考文献
[1] 欧汉烈.数字式温度测量调节仪的研制 [J].广东工业大学学报,1999,16(3):57-60.
[2] 徐显海.一种电阻炉智能温度控制仪的研制[D].南京:东南大学,2006.
[3] 安宏, 姚彩虹, 蒋兴加.用于电热炉的智能温控仪的设计[J].自动化仪表,2008,29(10):64-66.
[4] 黄真合.基于C8051F单片机的电力系统智能测控装置的设计[J].工业控制计2010,23(7):101-103.
[5] 李孝利.单片机原理及接口技术[M].北京:高等教育出版社, 2010.
[6] 童长飞. C8051F系列单片机开发与C语言编程[M]. 北京:北京航空航天大学出版社, 2005.
[7] 唐洪富,张兴波.基于STC系列单片机的智能温度控制器设计[J].电子技术用,2013,39(5):86-88.
[8] 崔坤林,张翼飞.时滞系统的经典控制与智能控制[J].微计算机信息,2004,20(6):25-26.
[9] 姚栋伟,吴峰,杨志家,等.基于增量式数字PID的汽油怠速控制研究[J]. 浙江大学学报, 2010,44(6):1122-1126.
[10] 王蕾.PID控制[J]. 自动化仪表,2004,25(4):1-5.