基于模糊控制的水溫自動調節器
摘要:溫度傳感器及有關電路將溫度轉化為電脈沖的脈寬,單片機將測得的脈沖寬度的值轉化為與之對應的溫度值。與設定的溫度相比較后,以溫度偏差及其變化量為輸入、加熱量為輸出,通過模糊控制算法,就可達到水溫自動調節的目的。對任意溫度對應的脈寬還可進行自動測量,并加以顯示。
本文引用地址:http://www.j9360.com/article/64352.htm關鍵詞:AT89C2051 單片機 模糊控制 溫度 電熱水器
模糊控制比傳統的PID等控制方法,在強時變、大時滯、非線性系統中的控制效果有著明顯的優勢。將模糊控制技術應用于家電產品在國外已是很普遍的現象。單片機是家用電器常用的控制器件,把二者結合起來,可使控制器的性能指標達到最優的目的。基于模糊控制技術的單片機控制的電熱水器,是對傳統的電熱水器開關控制的改造,具有達到設定溫度的時間短、穩態溫度波動小、反應靈敏、抗干擾能力強、節省電能等優點。
1 硬件電路總體設計
電熱水器水溫自動調節器以AT89C2051單片機為核心,由多諧振蕩器電路、溫度設定電路、單片機。設定溫度顯示電路、控制信號隔離輸出電路等幾部分組成,結構框圖如圖1所示。
?、俣嘀C振蕩電路。由G1、G2、G3、G4、Rt、Rs、C組成,具體電路如圖2。其中Rt是具有負溫度系數的熱敏電阻(0~100℃時,阻值在3~1kΩ之間變化),是本電路中的溫度傳感器,用環氧樹膠涂于其外表后置于熱水中。Rs是限流電阻,限值很小,只有100Ω。非門采用TTL門74LS04電路,振蕩周期T≈2.2RtC,脈寬為1.1RtC??梢姡}寬與Rt有一一對應關系,因此,溫度與脈寬也就有一一對應關系。
?、?a class="contentlabel" href="http://www.j9360.com/news/listbylabel/label/AT89C2051">AT89C2051單片機。本控制器的核心,模糊控制就是用它控制軟件來實現的。
?、蹨囟仍O定電路。通過一個按鍵產生脈沖從INT1輸入單片機來調節水溫的設定值。
?、茉O定溫度顯示電路。單片機將設定的溫度值通過動態掃描的方法輸出,數碼管上可直接顯示設定溫度。在自動測定各溫度對應的T0的計數值時,還可用來顯示TL0的值。
?、菘刂菩盘柛綦x輸出電路。通過光耦將加熱強電電路與單片機隔離,防止其干擾單片機的工作。單片機的輸出控制信號控制兩電熱絲的斷通,從而調節水溫。
2 工作原理
INT1先用于各溫度值對應的脈寬計數器值的測量顯示。中斷1的中斷服務程序先固化自動測量、顯示的中斷服務程序如圖3所示。主程序不變,主程序如圖4所示。從INT1輸入的設定溫度用的脈沖將引起中斷,中斷服務程序可對與一定水溫對應的電脈沖寬度的計數值(TL0)進行測量并顯示,記下其數值后便可制定“溫度表”(與一定溫度對應的TL0值并存放于程序存儲器中的表),將“溫度表”固化于程序存儲器中。然后,INT1再用于溫度的設定,將中斷1的服務程序換為預溫溫度的程序,如圖5所示。讓定時器T1定時中斷,配合軟件計數器,每隔5s測量1次溫度的當前值。將測得的脈寬轉化為溫度值是這樣實現的:先讓脈沖從INT0進入單片機,T0在INT0為高電平時開始定時,變為低電平時停止,于是在TL0中得到脈寬對應的定時計數值,查找與“溫度表”中與計數值一一對應關系的溫度。將用的脈沖將引起中斷,中斷服務程序可對與一定水溫對應的電脈沖寬度計數值(TL0)進行測量并顯示,記下其數值后便可制定“溫度”(與一定溫度對應的TL0值并存放于程序存儲器中的表),將“溫度表”固化于程序存儲器中。然后,INT1再用于溫度的設定,將中斷1的服務程序換為預置溫度的程序,如圖5所示。讓定時器T1定時斷,配合軟件計數器,第隔5s測量1次溫度的當前值。將測得的脈寬轉化為溫度值是這樣實現的:先讓脈沖從INT0進入單片,T0在INT0為高電 平時開始定時,變為低電平時停止,于是在TL0中得到脈寬對應的定時計數值,查找與“溫度表”中與計數值一一對的溫度。將溫度的測量值及前次測得的值分別存于一個存儲單元,通過模糊控制程序以決定兩電熱絲的斷情況。初始化程序如下:
MAIN:MOV TMOD,#1AH;T1工作于方式1,定時100ms;(配合軟件計數器定時5s)
??;T0工作于方式2,使用門控位,定時
MOV TM0,#20 ;TM0為設定溫度存儲單元,設定初始溫度為20℃
MOV TH0,#0
MOV TL0,#0
MOV TH1,#3CH ;T1置產生100ms定時的初值(tosc=6MHz)。
MOV TL1,#0B0H
MOV TMER,#50 ;TMER為軟件計數器單元;50
評論