基于单片机应用于足浴器的自动控温系统的实现原理及方法

足浴器的设计难点在于成本控制和温度控制系统的设计 。近年来 , 开关电源技术的逐渐成熟 , 为小功率电源供电提供了一个高效率且低成本的方案 , 摒弃了传统的变压器降压、整流、三端稳压的低效率供电方式 。而通过软件算法完善 , 例如PID算法的运用 , 可减少部分硬件开销 , 降低成本及系统复杂度 , 提高系统的稳定性 。设计结合以上技术 , 着眼于成本最小化 , 性能最大化 , 实现了LED温度显示 , 双按键目标温度调节 , 高精度温控功能 。由于主控芯片AT89C2051只有两组共16个IO引脚 , 2kB的内存 , 因此需合理运用IO资源 , 程序设计简洁 , 合理分配内存空间 。
1 系统结构设计
系统由供电、采样、按键、显示及单片机部分组成 。
【基于单片机应用于足浴器的自动控温系统的实现原理及方法】传感器负责采集温度值 , 传递给MCU , 目标值由按键设定 , MCU将采样值与目标值进行比较 , 经过时间PID算法处理 , 根据每段时间不同的温差值 , 计算出需要加热的时间 , 接着通过IO口控制继电器闭合与断开 , 使加热板工作 , 同时LED显示实时温度 。
2 子模块的设计
(1)供电模块 。供电部分采用开关电源技术 , 采用开关电源可以解决传统变压器所带来的问题 , 整个设计可变得简洁;供电效率高 , 且稳定;并可减少系统结构体积 。由于传统的基极驱动方式会将普通NPN型开关晶体管的安全工作电压限定在BVceo , 而采用射极驱动的方式 , 可将安全工作电压从Vceo扩大到Vcbo , 由于BVcbo>BVceo , 即可改善NPN型晶体管的安全工作范围 , 对市电为220V的电网电压可用普通的NPN型功率开关管 。该电路接通交流220V经整流桥后 , 形成直流电压 , R2为启动电阻 , 开关管用NPN管 , 输出电流及输出电压信号通过光隔U3反馈至射极驱动芯片U2 , U2根据信号调节控制开关管的占空比 , 使得输出保持稳定 。
(2)采样模块 。采样部分采用DS18B20 , 其为美国Dallas生产的一线可编程数字温度传感器 。它不同于传统的模拟温度传感器 , 其可产生对应温度的数字信号 , 与主控芯片只需单线通信 , 使得系统结构简单可靠 。由于通信线为双向输入输出的OC门 , 因此需外加一个上拉电阻到VCC 。DS18B20与MCU通信的时序要求严格 , 所以在采样过程中有必要关闭MCU的中断功能 , 防止外部干扰导致采集到错误数据 。
(3)控制模块 。控制部分南同态继电器(SSR)实现弱信号对强电的控制 。由于固态继电器内部光耦合器的应用 , 使其控制信号所需的功率较低 , 且所需工作电压与TTL , CMOS等常用电平标准兼容 , 可实现直接连接 。SSR工作时无机械动作 , 其具备了传统的“线圈-簧片触点式”继电器(MER)所没有的优点 , 即工作可靠性高 , 寿命长 , 此外 , SSR还具有可承受比额定电流高约10倍的浪涌电压的特点 。考虑到51系列单片机IO口驱动能力较弱 , 在原理图设计上需要外加PNP开关管 , 如图3所示 。
(4)算法模块 。热电阻丝具有过冲过冷现象 , 采用软件的PID算法可以弥补硬件部分的不足 。PID算法是一种比例、积分、微分并联应用广泛的一种模糊控制算法 。PID算法的数学模型可用下式表示
其中 , Kp为比例系数;Ti为积分系数;Td为微分系数;e(t)为采样值与目标值的偏差 。比例部分由式Kp*e(t)表示 。若Kp越大 , 则过渡过程越快 , 也易产生振荡 。因此Kp选择恰当 , 才能起到快速过渡且又稳定的效果 。积分部分为。从表达式可知 , 只要存在偏差 , 则积分部分的控制作用就会不断增加 , 只有在偏差部分e(t)=0时 , 积分表达式才会为一个常数 。其中积分时间Ti对积分控制的影响较大 。Ti越大时 , 积分效果越弱 , 消除偏差需要的时间也越长 。Ti越小 , 则积分效果较强 , 消除偏差需要时间也越短 , 但是容易在消除过程中产生振荡 。
微分部分表达式为
微分部分的作用为抑制偏差变化 。Td越大 , 则抑制能力较强;Td越小 , 则抑制能力较弱 。显然微分部分对系统的稳定性有较大的作用 。
由于计算机无法像模拟控制那样连续输出控制量 , 进行连续控制 。所以上式需进行离散化处理 。离散化的思路为:以T作为采样周期 , 将连续时间t分为k个采样周期 , 即t=kT , 将t代入式(1)可得到离散PID表达式
采用增量式PID算法的优势在于可减少计算机的计算任务 , 并且增量式算法只取决于目前时刻 , 上一时刻 , 上上时刻的值 , 对起始参数不敏感 。
3个系数的取值取决于实际经验 , 为达到较好的控制效果 , 因此在各温度区域由实验测取了最佳PID控制参数值 。系统PID算法流程如图4所示 。
由图4可知 , 若输出值为x , 则2 s内的需加热时长为x×20 ms , 不加热时长为(2 000-x·20)ms 。
(5)PCB设计 。本着强电和弱点 , 模拟信号与数字信号需要分开的原则 。在PCB设计时采取以下措施:
1)由于采用开关电源供电 , 因此需注意将高频高压部分和低压直流部分隔离开 。
2)系统对噪声较敏感 , 由于数字器件 , 尤其是MCU在开关动作时会引起电流变化 , 从而导致电压噪声 , 因此需在走线上用星型走线的拓扑结构 , 对敏感器件单独供电 。
3)数字地需要进行大面积铺地处理 , 并且每个器件都要单独接一个0.01μF的高频退藕电容 , 在大规模数字器件上(例如MCU) , 需要外加一个47μF的电解电容抑制干扰 。模拟部分和数字部分进行隔离 , 即在合适的地方与数字地单点连接 。
3 试验结果
(1)设计要求 。
1)从室温开始加热至40 ℃要求控制在30 min以内 。
2)开始PID控制以后 , 水温的波动范围需要在目标温度±0.5℃以内 。
(2)实验数据 。
根据设计要求 , 目标温度定为47℃ , 从46.5℃开始根据PID算法控制 , 稳定后水温变化范围应在±0.5℃之内 。
从室温下开始加热 , 水温上升平稳 , 每一分钟约上升0.7 ℃ , 如表1所示 。
到达47℃后 , 水温被控制在46.5~47.5℃之间 , 如表2及图5所示 。
4 结束语
此足浴器采用廉价的AT89C2051 , 并充分运用了其所有资源 , 两组IO引脚的其中11个引脚被用作LED数码管显示温度 。剩下5个引脚分别作为继电器控制引脚、复位按键、DS18B20温度采集接口及两个温度调节按键 。并用PID算法解决了热电阻过冲过冷的问题 , 减少了硬件需求 , 从而降低了成本 。经实验证明 , 此控温系统运行稳定 , 且精度较高 。

    推荐阅读