基于FPGA的智能热水器设计
扫描二维码
随时随地手机看文章
摘要:传统电热水器系统大多采用单片机作为控制核心,仅具有加热和保温功能,水温不可见,水量不易控制,大多热水器在保温时采用开关控制,给电力系统带来巨大冲击。本系统选用现场可编程逻辑器件Actel Fusion系列FPGA作为控制核心,充分利用其內部模数混合的特点实现水温数字可视化、可预约时间等等功能,运用PID算法实现水的加热和保溫,使电力系统受到很小的冲击,且该系统具有安全可靠、节能、高效能、性能稳定、简易操作的特性。
随着社会的进步与发展,家庭生活的标准也在不断提高,人们更加追求家庭生活的高度信息化、智能化。热水器是常见的家用电器,是提供家庭沐浴用水、热水或饮用水的电热家电。目前市场上主要有电热水器、太阳能热水器、燃气热水器等三种。就我国的国情而言,太阳能热水器的使用受天气影响较大,使用范围较窄;燃气热水器使用燃料,不环保;而电热水器具有安全、无污染、使用方便、节能节水等优点,越来越受消费者的青睐。目前市场上的电热水器分为两种,即热式和贮水式,前者用水浪费较少,但由于功率太大,使用成本高,因此实际应用较少;传统的贮水式电热水器控制功能不完善、精度低、可靠性差,仅能实现烧水和保温功能,并且会造成大量能源浪费。
1 系统方案设计
智能电热水器控制系统的主要任务是实现对水温的控制,主要功能有水温测量、用于人工设定参数按键、水温显示、控制电加热管通断电的功率控制单元、漏电报警及安保措施等。系统以ACTEL FUSION系列的AS600为控制核心,外接水温,室温传感器和远程通讯控制设备,系统总体方案设计如图1所示。
其中限流保护电路是为了避免传感器绝缘层破损漏电或热水器漏电对核心芯片造成损害。而整流电路是为了把移动通讯的模拟信号转换为更容易被识别的高电平直流信号。水位传感器为浮球传感器,主要为系统提供5升和8升的水位信号以供确定注水时间。液晶显示器用于显示温度、时间和用户设置信息。四路驱动分别用于驱动加热装置和注水开关。功率放大器放大的模拟信号驱动扩音器发出水量过少的警告。
2 系统设计
本设计主要由模数转换模块、显示及时钟模块、用户信息与加热时间计算模块、水温水位控制模块四个大的模块组成。其结构框图如图2所示。
2.1 模数转换模块
模数转换模块的功能主要是完成模数转换以输出较精确的温度和是否有电话通知烧水的信号,实现对四路驱动的控制,包括ADC模块、ADC配置模块、ADC数据分离模块、温度变送器和远程控制响应判断模块。ADC及其配置模块完成对三路模拟信号的采样,由数据分离模块把各路数据分开,然后由温度变送器传出当前精确的室温和水温,最后由远程控制响应模块判断是否有远程控制通知的信号。模数转换模块采用TLC0831,使用LM358放大模拟信号,模数转换、信号放大原理图如图3所示。
温度传感器测量电热水器水箱的温度变化,通过灵敏电阻将温度变化变换为电信号输送到测量电路,将信号放大到可以处理的信号,然后进行ADC。ADC将连续的模拟量通过取样转换成离散的数字量,将可处理的模拟信号转换为数字信号,信号数字化是对原始信号进行数字近似。模数转换包括采样、量化和编码三个过程。采样是信号在时间上的离散化,按照一定的时间间隔在模拟信号上逐点采取瞬时值;量化是将连续幅度的抽样信号转换成离散时间、离散幅度的数字信号;编码是将量化后的信号编码成二进制代码输出。
编码后二进制代码传输给处理器。处理器对接收到信号与设定信号比较,采用PID控制方式进行控制,以实现对加热量的控制。当设置温度低于水箱内温度,根据温度变化的速率,减少加热量,当设置温度高于水箱内温度,增加加热量。温度传感器将水箱内的温度变化经ADC送到处理器,重新判断下一步如何调节水温。
2.2 显示及时钟模块
显示电路主要用来设定温度、显示温度、显示水位等功能,采用液晶显示键盘驱动芯片来驱动LCD显示和接收键盘输入信号。液晶显示及键盘驱动芯片使用MSM6786驱动芯片。电源由主控板提供,采用三线(DATA、LOAD、CLK)串行通行模式,最大限度地减少了LCD显示、键盘板与主控电路连线的数目。DATA引脚为串口通讯端口,用于输入控制命令和需要显示的数据或者输出键盘信号;LOAD引脚用于输入变换DATE引脚输入/输出状态所需的脉冲信号;CLK引脚用于输入串口通讯的同步时钟信号,数据的输入或输出都必须与时钟型号的上升沿同步。当按键状态改变时,MSM6786自动扫描输入状态,INT引脚的低电平信号变为高电平信号,向处理器请求外部中断。电路图如图4所示。
时间模块功能就是一个数字计时器,它由FPGA通过记录基准频率的次数决定,主要包括时间设置和时间运行计时两个功能。
2.3 用户信息模块
用户信息模块主要完成用户信息得设置、储存和读取并联合时间模块实现时间计算与控制,包括用户信息设置和RAM写操作模块、RAM模块、信息读操作和数据转换模块和时间计算模块。本模块的实现方法为,信息设置模块把用户信息储存在RAM内,信息读取模块在适当的时间读取相应数据,根据数据计算出加热所需要的时间,并在加热时间到来时,输出有有效信号和当前的有用信息给与控制模块。
2.4 水温水位控制模块
水位控制包括]种水位状态,根据不同输出电平信号判断水箱水位,然后根据比较语句判断结果,执行水位状态程序,输出相应的操作控制信号,启动或者暂停执行元件实现水位的自动控制。水位控制流程图如图5所示。
在常规PID的应用中,P、I、D 3个参数往往根据现场设备情况或调试经验人工设定的,通过调试参数以改变控制性能。PID控制是最早发展起来的控制策略之一,由于其算法结构清晰,参数可调,算法简单高效,可在现场根据实际来调节比例、积分、微分3个参数来达到较好的控制效果,在温度控制系统中被广泛采用。PID控制系统原理如图6所示。
完整的模拟PID算法表达式为:
(1)式中,u(t)为控制量,e(t)为偏差,即设定值与反馈值之差,Kp为比例常数,Ti为积分时间常数,Td为微分时间常数。PID算法的原理即调节Kp,Ti,Td3个参数使系统达到稳定。
FPGA对信号处理前,必须将(1)式数字化,当采样周期足够短时,用累加求和替代积分、用向后差分代替微分,于是就得到差分方程:
式(5)即为数字PID算法公式。
Ziegler-Nichols(齐格勒-尼柯尔斯)参数整定它是在实验阶跃响应的基础上,或者是在仅采用比例控制作用的条件下,根据临界稳定性中的Kp值建立起来的。当被控对象的传递函数可以近似为带延迟的一阶系统:
齐格勒-尼柯尔斯给出了用表1中的公式确定kp、Ti、Td的值的方法。
用Ziegler-Nichols法则调整PID控制器,给出下列公式:
由电热水器温度控制系统的传递函数得:K=1.25,T=120秒,τ=122秒。
得Ti=2’=244秒,Td=61秒
根据齐格勒-尼柯尔斯参数调整法则得PID 3个参数为:
Kp=1.2T/τ=1.2 x 120/122=1.180 3
Ki=Kp/Ti=1.180 3/244=0.004 84
Kd=Kpx Td=1.180 3x61=71.998
由于FPGA不好处理浮点数,对离散信号作近似处理后得:
仿真时序如图7:
3 结束语
基于Actel Fuions FPGA的智能热水器控制系统,实现了水温、水位的检测和智能控制,能够适时加热从而达到保温效果,还可以根据水位自动上水,实现热水器的智能控制。该系统也可用在太阳能热水器上用来实现水温显示和液位控制,具有体积小,成本低的特点。本系统不但自身具有很好的稳定性,由于其使用PID算法实现加热保温控制,也使得整个家庭电力系统受其冲击很小。本文的最大创新点在于可以预设时间、可以远程控制烧水、可以自动调节水温和水位,这样可以为家庭甚至国家节约很多能源和水资源。