目前在国内外很多温度控制系统都采用ARM 作为处理器,PID 作为温度控制方式[1]。该控制方式对大多数控制对象均可达到满意的控制效果,但对于有特殊要求或具有复杂对象特性的系统,采用数字PID控制一般难以达到目的。基于温度变化的非线性与模糊控制鲁棒性强、干扰和参数变化对控制效果的影响较小,尤其适合于非线性、时变及纯滞后系统的控制,将PID与模糊控制相结合来实现对温度的控制。
因此,本文以热水器为对象,运用系统控制理论,以模糊控制与数字PID控制相结合方式进行温度控制系统的设计。
1 整体方案设计
系统采用晶控电子的STC系列单片机进行下位机温度控制,同时采用PC机进行上位机控制。上位机首先给下位机发出命令,下位机再根据此命令解释成相应时序信号直接控制相应设备。下位机不时读取设备状态数据,转化成数字信号反馈给上位机。下位机实现现场实时控制,上位机实现远程实时监控。
系统的实现采用模块化设计思想,分别从硬件、软件来设计并综合应用。硬件分为温度检测模块、输入输出模块、串口通信模块及加热模块几个部分;软件由上下位机同时控制,包括温度采集子程序、液晶显示子程序、键盘输入子程序、模糊PID控制子程序、串口通信子程序等。设计主要针对控制算法来实现,系统总体设计方案如图1所示。
2 硬件电路设计
2.1温度检测模块
DS18B20是DALLAS公司生产的数字温度传感器,温度测量范围为-55℃~+125℃,测温分辨率可达0.062 5 ℃,它集温度测量与A/D转换于一体,直接输出数字量,传输距离远,可以实现多点检测,硬件结构简单,避免了传统热电偶、热电阻模拟信号到数字信号转换、硬件结构复杂、成本高的缺点,其电路连接如图2所示。
2.2 串口通信模块
接口RS232是用正负电压来表示逻辑状态的,而单片机采用正逻辑TTL电平,因此必须在此分立元件实现电平和逻辑关系的变换。通信电路中,下位机串口使用查询法接收和发送资料,上位机发出指定字符,下位机收到后返回给上位机原字符,其电路连接如图3所示。
2.4 加热模块
系统的加热过程通过单片机控制继电器的开关来实现,当检测温度与设定温度有差距时继电器处于接通状态,加热器持续加热,当检测温度与设定温度一致时,继电器处于断开状态,加热器停止加热。继电器电路连接如图5所示[2]。
3 软件设计
3.1模糊PID控制算法
模糊PID控制是找出Kp、Ki、Kd与E、Ec之间的模糊关系,通过不断检测E和Ec,根据模糊推理对Kp、Ki、Kd进行在线修改,满足了不断变化的E、Ec对控制参数的要求,从而使被控对象具有良好的动、静态性能。模糊PID结构图如图6所示。模糊PID控制器的调整规则是[3]:
(1)当E较大时,为加快系统响应速度,应取较大的Kp和较小的Kd,由于积分太强会使系统超调加大,因而要对积分作用加以限制,通常取Ki=0或者较小值;
(2)当E和Ec中等大小时,为减少系统超调并保证一定的响应速度,Kp应适当取小些,同时Kd的取值对系统影响很大,也应取小些,Ki的取值要适当;
(3)当E较小时,为减小稳态误差,Kp与Ki应取得大些,而Kd的取值要适当,取值不当会引起系统震荡。其原则是:当Ec较小时,Kd取大些,当Ec较大时,Kd取较小的值,通常Kd为中等大小。
3.2 下位机程序流程图
下位机采用keil软件,C语言进行程序的编写,采用STC-ISP进行软件烧写,程序流程图如图7所示。
3.3 上位机界面显示
上位机采用VB6.0对温度监控界面进行编写,通过界面可以选择不同的串口进行通信,在不同时间可以通过多个温度检测器对不同热水器进行温度检测并自行设定温度,界面可以实时显示温度变化曲线如图9所示。
本系统将单片机与模糊PID控制相结合,不仅单片机控制效果显著而且易于操作,还实现了智能控制与常规PID控制两者的优点:它具备自学习、自适应、自组织的能力,能够自动识别被控过程参数,自动整定控制参数,能够适应被控过程参数的变化;它又具备常规PID控制器结构简单、鲁棒性强、可靠性高、为现场设计人员所熟悉等特点,较易应用与推广。