- 相關(guān)推薦
基于模糊控制的水溫自動調(diào)節(jié)器
摘要:溫度傳感器及有關(guān)電路將溫度轉(zhuǎn)化為電脈沖的脈寬,單片機將測得的脈沖寬度的值轉(zhuǎn)化為與之對應(yīng)的溫度值。與設(shè)定的溫度相比較后,以溫度偏差及其變化量為輸入、加熱量為輸出,通過模糊控制算法,就可達到水溫自動調(diào)節(jié)的目的。對任意溫度對應(yīng)的脈寬還可進行自動測量,并加以顯示。關(guān)鍵詞:AT89C2051 單片機 模糊控制 溫度 電熱水器
模糊控制比傳統(tǒng)的PID等控制方法,在強時變、大時滯、非線性系統(tǒng)中的控制效果有著明顯的優(yōu)勢。將模糊控制技術(shù)應(yīng)用于家電產(chǎn)品在國外已是很普遍的現(xiàn)象。單片機是家用電器常用的控制器件,把二者結(jié)合起來,可使控制器的性能指標達到最優(yōu)的目的。基于模糊控制技術(shù)的單片機控制的電熱水器,是對傳統(tǒng)的電熱水器開關(guān)控制的改造,具有達到設(shè)定溫度的時間短、穩(wěn)態(tài)溫度波動小、反應(yīng)靈敏、抗干擾能力強、節(jié)省電能等優(yōu)點。
1 硬件電路總體設(shè)計
電熱水器水溫自動調(diào)節(jié)器以AT89C2051單片機為核心,由多諧振蕩器電路、溫度設(shè)定電路、單片機。設(shè)定溫度顯示電路、控制信號隔離輸出電路等幾部分組成,結(jié)構(gòu)框圖如圖1所示。
①多諧振蕩電路。由G1、G2、G3、G4、Rt、Rs、C組成,具體電路如圖2。其中Rt是具有負溫度系數(shù)的熱敏電阻(0~100℃時,阻值在3~1kΩ之間變化),是本電路中的溫度傳感器,用環(huán)氧樹膠涂于其外表后置于熱水中。Rs是限流電阻,限值很小,只有100Ω。非門采用TTL門74LS04電路,振蕩周期T≈2.2RtC,脈寬為1.1RtC?梢,脈寬與Rt有一一對應(yīng)關(guān)系,因此,溫度與脈寬也就有一一對應(yīng)關(guān)系。
②AT89C2051單片機。本控制器的核心,模糊控制就是用它控制軟件來實現(xiàn)的。
③溫度設(shè)定電路。通過一個按鍵產(chǎn)生脈沖從INT1輸入單片機來調(diào)節(jié)水溫的設(shè)定值。
④設(shè)定溫度顯示電路。單片機將設(shè)定的溫度值通過動態(tài)掃描的方法輸出,數(shù)碼管上可直接顯示設(shè)定溫度。在自動測定各溫度對應(yīng)的T0的計數(shù)值時,還可用來顯示TL0的值。
⑤控制信號隔離輸出電路。通過光耦將加熱強電電路與單片機隔離,防止其干擾單片機的工作。單片機的輸出控制信號控制兩電熱絲的斷通,從而調(diào)節(jié)水溫。
2 工作原理
INT1先用于各溫度值對應(yīng)的脈寬計數(shù)器值的測量顯示。中斷1的中斷服務(wù)程序先固化自動測量、顯示的中斷服務(wù)程序如圖3所示。主程序不變,主程序如圖4所示。從INT1輸入的設(shè)定溫度用的脈沖將引起中斷,中斷服務(wù)程序可對與一定水溫對應(yīng)的電脈沖寬度的計數(shù)值(TL0)進行測量并顯示,記下其數(shù)值后便可制定“溫度表”(與一定溫度對應(yīng)的TL0值并存放于程序存儲器中的表),將“溫度表”固化于程序存儲器中。然后,INT1再用于溫度的設(shè)定,將中斷1的服務(wù)程序換為預(yù)溫溫度的程序,如圖5所示。讓定時器T1定時中斷,配合軟件計數(shù)器,每隔5s測量1次溫度的當前值。將測得的脈寬轉(zhuǎn)化為溫度值是這樣實現(xiàn)的:先讓脈沖從INT0進入單片機,T0在INT0為高電平時開始定時,變?yōu)榈碗娖綍r停止,于是在TL0中得到脈寬對應(yīng)的定時計數(shù)值,查找與“溫度表”中與計數(shù)值一一對應(yīng)關(guān)系的溫度。將用的脈沖將引起中斷,中斷服務(wù)程序可對與一定水溫對應(yīng)的電脈沖寬度計數(shù)值(TL0)進行測量并顯示,記下其數(shù)值后便可制定“溫度”(與一定溫度對應(yīng)的TL0值并存放于程序存儲器中的表),將“溫度表”固化于程序存儲器中。然后,INT1再用于溫度的設(shè)定,將中斷1的服務(wù)程序換為預(yù)置溫度的程序,如圖5所示。讓定時器T1定時斷,配合軟件計數(shù)器,第隔5s測量1次溫度的當前值。將測得的脈寬轉(zhuǎn)化為溫度值是這樣實現(xiàn)的:先讓脈沖從INT0進入單片,T0在INT0為高電 平時開始定時,變?yōu)榈碗娖綍r停止,于是在TL0中得到脈寬對應(yīng)的定時計數(shù)值,查找與“溫度表”中與計數(shù)值一一對的溫度。將溫度的測量值及前次測得的值分別存于一個存儲單元,通過模糊控制程序以決定兩電熱絲的斷情況。初始化程序如下:
MAIN:MOV TMOD,#1AH;T1工作于方式1,定時100ms;(配合軟件計數(shù)器定時5s)
;T0工作于方式2,使用門控位,定時
MOV TM0,#20 ;TM0為設(shè)定溫度存儲單元,設(shè)定初始溫度為20℃
MOV TH0,#0
MOV TL0,#0
MOV TH1,#3CH ;T1置產(chǎn)生100ms定時的初值(tosc=6MHz)。
MOV TL1,#0B0H
MOV TMER,#50 ;TMER為軟件計數(shù)器單元;50×100ms=5s
SETB TR1 ;啟動定時器T1
SETB EA ;開CPU中斷
SETB EX1 ;開外部中斷1
SETB IT1 ;設(shè)定為邊沿觸發(fā)。
SETB PX1 ;設(shè)定溫度的中斷優(yōu)先級為高級中斷。
SETB ET1 ;開T1中斷
SETB P3.7 ;不加熱
SETB P1.7
……
3 模糊控制的原理
模糊控制器的輸入為測得溫度與設(shè)定溫度的偏差E(E=t0-t;t0為設(shè)定的水溫,t為測得的水溫。)以及偏差的變化量ΔE(ΔE=t本-t前,其中t前為前次測得的溫度,t本為本次測得的溫度),輸出為電熱絲加熱量U。將E分為四個模糊子集B(大)、M(中)、S(。(負),對應(yīng)溫度的偏差為:t0-t>TM1℃、TM2℃<t0-t<TM1℃、0℃<t0-t<TM2℃、t0-t<0℃(TM1>TM2>0)。ΔE分為三個模糊子集P(正)、Z(零)、N(負),對應(yīng)的偏差變化量為:t本-t前>A0、-A0<t本-t前<A0、t本-t前<-A0(A0>0);電熱絲加熱量分為四個模糊子集B(大)、M(中)、S(小)、Z(零),對應(yīng)于二極電熱絲的四種狀態(tài)的組合:電熱絲1電熱絲2都加熱、電熱絲1加熱、電熱絲2加熱、電熱絲1電熱絲2都不加熱(其中電熱絲1的功率大于電熱絲2的功率)。模糊控制規(guī)則如表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 模糊控制程序
由單片機對溫度進行測量,將本次測得的溫度與設(shè)定的溫度值相減得到溫度的偏差E,并存儲到存儲單元TMS;將本次測得的溫度減前次測量的溫度,得到溫度的偏差變化量ΔE并存入存儲單元TMCB;根據(jù)溫度的偏差及偏差的變化量由模糊控制表決定電熱絲的斷閉。如果將E的四個模糊子集N、S、M、B分別用數(shù)字-1、1、3、6表示,ΔE的四個模糊子集N、Z、P分別用數(shù)字-1、0、1表示,則根據(jù)模糊控制規(guī)則表1,可得到如表2所示的E+ΔE。將表2與表1對照可以看出:當E+ΔE≤0時,加熱量為Z;當1≤E+ΔE<3時,加熱量為S;當3≤E+ΔE<5時,加熱量為M;當E+ΔE≥5時,加熱量為B。故可編制所求的模糊控制程序。
該溫度控制器已應(yīng)用于筆者家中自制的電熱水器中,經(jīng)幾個月的使用證明非常實用,且性能穩(wěn)定。
【基于模糊控制的水溫自動調(diào)節(jié)器】相關(guān)文章:
基于模糊控制的遲早門同步器及其FPGA實現(xiàn)08-06
基于MATLAB 的自動控制原理實驗仿真系統(tǒng)的設(shè)計04-10
基于DSP的自動對焦系統(tǒng)08-06
基于雙環(huán)控制和重復(fù)控制的逆變器研究08-06
基于DDS技術(shù)的自適應(yīng)米波雷達自動頻率控制系統(tǒng)08-06
基于MDB/ICP協(xié)議的自動售賣系統(tǒng)的主控制器實現(xiàn)08-06
基于多級模糊評價模型的學生評教方法研究08-05
MWC計算機模糊控制系統(tǒng)08-06