基于模糊控制的水温自动调节器
SETB TR1 ;启动定时器T1
SETB EA ;开CPU中断
SETB EX1 ;开外部中断1
SETB IT1 ;设定为边沿触发。
SETB PX1 ;设定温度的中断优先级为高级中断。
SETB ET1 ;开T1中断
SETB P3.7 ;不加热
SETB P1.7
……
3 模糊控制的原理
模糊控制器的输入为测得温度与设定温度的偏差E(E=t0-t;t0为设定的水温,t为测得的水温。)以及偏差的变化量ΔE(ΔE=t本-t前,其中t前为前次测得的温度,t本为本次测得的温度),输出为电热丝加热量U。将E分为四个模糊子集B(大)、M(中)、S(小)、N(负),对应温度的偏差为:t0-t>TM1℃、TM2℃<t0-t<TM1℃、0℃<t0-t<TM2℃、t0-t<0℃(TM1>TM2>0)。ΔE分为三个模糊子集P(正)、Z(零)、N(负),对应的偏差变化量为:t本-t前>A0、-A0<t本-t前<A0、t本-t前<-A0(A0>0);电热丝加热量分为四个模糊子集B(大)、M(中)、S(小)、Z(零),对应于二极电热丝的四种状态的组合:电热丝1电热丝2都加热、电热丝1加热、电热丝2加热、电热丝1电热丝2都不加热(其中电热丝1的功率大于电热丝2的功率)。模糊控制规则如表1所列。
表1
E P Z N B B B B M M M S S S S Z N Z Z Z
表2
E+ΔEE ΔE
1
0
-1 6 7 6 5 3 4 3 2 1 2 1 0 -1 0 -1 -2
4 模糊控制程序
由单片机对温度进行测量,将本次测得的温度与设定的温度值相减得到温度的偏差E,并存储到存储单元TMS;将本次测得的温度减前次测量的温度,得到温度的偏差变化量ΔE并存入存储单元TMCB;根据温度的偏差及偏差的变化量由模糊控制表决定电热丝的断闭。如果将E的四个模糊子集N、S、M、B分别用数字-1、1、3、6表示,ΔE的四个模糊子集N、Z、P分别用数字-1、0、1表示,则根据模糊控制规则表1,可得到如表2所示的E+ΔE。将表2与表1对照可以看出:当E+ΔE≤0时,加热量为Z;当1≤E+ΔE<3时,加热量为S;当3≤E+ΔE<5时,加热量为M;当E+ΔE≥5时,加热量为B。故可编制所求的模糊控制程序。
该温度控制器已应用于笔者家中自制的电热水器中,经几个月的使用证明非常实用,且性能稳定。
《基于模糊控制的水温自动调节器(第2页)》