新聞中心

EEPW首頁 > 物聯(lián)網(wǎng)與傳感器 > 學(xué)習(xí)方法與實(shí)踐 > 基于模糊控制的水溫自動(dòng)調(diào)節(jié)器

基于模糊控制的水溫自動(dòng)調(diào)節(jié)器

——
作者:雷建龍 時(shí)間:2007-08-24 來源:單片機(jī)及嵌入式系統(tǒng)應(yīng)用 收藏

  摘要:傳感器及有關(guān)電路將轉(zhuǎn)化為電脈沖的脈寬,將測得的脈沖寬度的值轉(zhuǎn)化為與之對應(yīng)的值。與設(shè)定的溫度相比較后,以溫度偏差及其變化量為輸入、加熱量為輸出,通過算法,就可達(dá)到水溫自動(dòng)調(diào)節(jié)的目的。對任意溫度對應(yīng)的脈寬還可進(jìn)行自動(dòng)測量,并加以顯示。

本文引用地址:http://butianyuan.cn/article/64352.htm

    關(guān)鍵詞: 溫度

  比傳統(tǒng)的PID等控制方法,在強(qiáng)時(shí)變、大時(shí)滯、非線性系統(tǒng)中的控制效果有著明顯的優(yōu)勢。將模糊控制技術(shù)應(yīng)用于家電產(chǎn)品在國外已是很普遍的現(xiàn)象。是家用電器常用的控制器件,把二者結(jié)合起來,可使控制器的性能指標(biāo)達(dá)到最優(yōu)的目的?;谀:刂萍夹g(shù)的單片機(jī)控制的,是對傳統(tǒng)的開關(guān)控制的改造,具有達(dá)到設(shè)定溫度的時(shí)間短、穩(wěn)態(tài)溫度波動(dòng)小、反應(yīng)靈敏、抗干擾能力強(qiáng)、節(jié)省電能等優(yōu)點(diǎn)。

1 硬件電路總體設(shè)計(jì)

  電熱水器水溫自動(dòng)調(diào)節(jié)器以單片機(jī)為核心,由多諧振蕩器電路、溫度設(shè)定電路、單片機(jī)。設(shè)定溫度顯示電路、控制信號(hào)隔離輸出電路等幾部分組成,結(jié)構(gòu)框圖如圖1所示。

 ?、俣嘀C振蕩電路。由G1、G2、G3、G4、Rt、Rs、C組成,具體電路如圖2。其中Rt是具有負(fù)溫度系數(shù)的熱敏電阻(0~100℃時(shí),阻值在3~1kΩ之間變化),是本電路中的溫度傳感器,用環(huán)氧樹膠涂于其外表后置于熱水中。Rs是限流電阻,限值很小,只有100Ω。非門采用TTL門74LS04電路,振蕩周期T≈2.2RtC,脈寬為1.1RtC。可見,脈寬與Rt有一一對應(yīng)關(guān)系,因此,溫度與脈寬也就有一一對應(yīng)關(guān)系。

 ?、?a class="contentlabel" href="http://butianyuan.cn/news/listbylabel/label/AT89C2051">AT89C2051單片機(jī)。本控制器的核心,模糊控制就是用它控制軟件來實(shí)現(xiàn)的。

  ③溫度設(shè)定電路。通過一個(gè)按鍵產(chǎn)生脈沖從INT1輸入單片機(jī)來調(diào)節(jié)水溫的設(shè)定值。

  ④設(shè)定溫度顯示電路。單片機(jī)將設(shè)定的溫度值通過動(dòng)態(tài)掃描的方法輸出,數(shù)碼管上可直接顯示設(shè)定溫度。在自動(dòng)測定各溫度對應(yīng)的T0的計(jì)數(shù)值時(shí),還可用來顯示TL0的值。

  ⑤控制信號(hào)隔離輸出電路。通過光耦將加熱強(qiáng)電電路與單片機(jī)隔離,防止其干擾單片機(jī)的工作。單片機(jī)的輸出控制信號(hào)控制兩電熱絲的斷通,從而調(diào)節(jié)水溫。

2 工作原理

  INT1先用于各溫度值對應(yīng)的脈寬計(jì)數(shù)器值的測量顯示。中斷1的中斷服務(wù)程序先固化自動(dòng)測量、顯示的中斷服務(wù)程序如圖3所示。主程序不變,主程序如圖4所示。從INT1輸入的設(shè)定溫度用的脈沖將引起中斷,中斷服務(wù)程序可對與一定水溫對應(yīng)的電脈沖寬度的計(jì)數(shù)值(TL0)進(jìn)行測量并顯示,記下其數(shù)值后便可制定“溫度表”(與一定溫度對應(yīng)的TL0值并存放于程序存儲(chǔ)器中的表),將“溫度表”固化于程序存儲(chǔ)器中。然后,INT1再用于溫度的設(shè)定,將中斷1的服務(wù)程序換為預(yù)溫溫度的程序,如圖5所示。讓定時(shí)器T1定時(shí)中斷,配合軟件計(jì)數(shù)器,每隔5s測量1次溫度的當(dāng)前值。將測得的脈寬轉(zhuǎn)化為溫度值是這樣實(shí)現(xiàn)的:先讓脈沖從INT0進(jìn)入單片機(jī),T0在INT0為高電平時(shí)開始定時(shí),變?yōu)榈碗娖綍r(shí)停止,于是在TL0中得到脈寬對應(yīng)的定時(shí)計(jì)數(shù)值,查找與“溫度表”中與計(jì)數(shù)值一一對應(yīng)關(guān)系的溫度。將用的脈沖將引起中斷,中斷服務(wù)程序可對與一定水溫對應(yīng)的電脈沖寬度計(jì)數(shù)值(TL0)進(jìn)行測量并顯示,記下其數(shù)值后便可制定“溫度”(與一定溫度對應(yīng)的TL0值并存放于程序存儲(chǔ)器中的表),將“溫度表”固化于程序存儲(chǔ)器中。然后,INT1再用于溫度的設(shè)定,將中斷1的服務(wù)程序換為預(yù)置溫度的程序,如圖5所示。讓定時(shí)器T1定時(shí)斷,配合軟件計(jì)數(shù)器,第隔5s測量1次溫度的當(dāng)前值。將測得的脈寬轉(zhuǎn)化為溫度值是這樣實(shí)現(xiàn)的:先讓脈沖從INT0進(jìn)入單片,T0在INT0為高電 平時(shí)開始定時(shí),變?yōu)榈碗娖綍r(shí)停止,于是在TL0中得到脈寬對應(yīng)的定時(shí)計(jì)數(shù)值,查找與“溫度表”中與計(jì)數(shù)值一一對的溫度。將溫度的測量值及前次測得的值分別存于一個(gè)存儲(chǔ)單元,通過模糊控制程序以決定兩電熱絲的斷情況。初始化程序如下:

  MAIN:MOV TMOD,#1AH;T1工作于方式1,定時(shí)100ms;(配合軟件計(jì)數(shù)器定時(shí)5s)

 ?。籘0工作于方式2,使用門控位,定時(shí)

  MOV TM0,#20 ;TM0為設(shè)定溫度存儲(chǔ)單元,設(shè)定初始溫度為20℃

  MOV TH0,#0

  MOV TL0,#0

  MOV TH1,#3CH ;T1置產(chǎn)生100ms定時(shí)的初值(tosc=6MHz)。

  MOV TL1,#0B0H

  MOV TMER,#50 ;TMER為軟件計(jì)數(shù)器單元;50



評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉