<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于AT89S52的雙模糊溫度控制器設(shè)計(jì)

          基于AT89S52的雙模糊溫度控制器設(shè)計(jì)

          作者: 時間:2015-05-06 來源:網(wǎng)絡(luò) 收藏

            現(xiàn)代工業(yè)控制中,溫度控制十分重要且日益復(fù)雜化。由于溫度控制具有的非線性、大滯后、時變性、升溫單向性等特點(diǎn),在實(shí)際應(yīng)用中難以建立精確的數(shù)學(xué)模型,無法用經(jīng)典控制理論及現(xiàn)代控制理論來解決實(shí)現(xiàn)溫度控制效果。目前,現(xiàn)代智能控制中不依賴對象數(shù)學(xué)模型、能有效控制時變和非線性系統(tǒng)的模糊控制已普遍應(yīng)用于工業(yè)溫度控制中。通過對溫度的基本模糊控制,可達(dá)到較好的控制效果,但存在一定的穩(wěn)態(tài)誤差,難以達(dá)到較高的控制精度。若根據(jù)系統(tǒng)不同的工作狀態(tài)采用不同的溫度模糊控制,即雙模糊控制,可大幅度改善穩(wěn)態(tài)誤差,提高控制精度,同時利用單片機(jī)作為主控芯片,可有效完成溫度模糊處理及溫度實(shí)時控制且可靠性高。

          本文引用地址:http://www.ex-cimer.com/article/273676.htm

            1 控制器功能及硬件設(shè)計(jì)

            雙模糊主要以單片機(jī)為主控芯片,主要負(fù)責(zé)溫度的模糊化處理、模糊控制算法實(shí)現(xiàn)、輸出溫度的大小控制處理。工業(yè)現(xiàn)場溫度通過溫度傳感器采集,傳感器輸出信號經(jīng)變送器轉(zhuǎn)變?yōu)?~5 V 的標(biāo)準(zhǔn)信號,經(jīng)A/D 轉(zhuǎn)換后與溫度設(shè)定值進(jìn)行比較, 得到溫度誤差信號e 及溫度變化率ec,并在系統(tǒng)初始階段和穩(wěn)態(tài)階段將兩者送入不同的單模糊控制器進(jìn)行模糊處理,得到輸出控制量u,經(jīng)隔離放大后控制功率可控硅改變加熱元件功率,從而完成溫度的調(diào)節(jié)。其溫度控制系統(tǒng)原理框圖如圖1 所示。

            

           

            主控芯片采用ATMEL 公司的 單片機(jī),該單片機(jī)是一種低功耗、高性能CMOS 8 位微控制器,具有8 kB 在系統(tǒng)可編程Flash 存儲器和256B RAM,32 位I/O線,3 個16 位定時器,6 個中斷源以及看門狗定時器等,可滿足的基本設(shè)計(jì)及擴(kuò)展設(shè)計(jì)需求。

            溫度傳感器采用鎳鉻/鎳硅熱電偶,該熱電偶具有線性度好,熱電動勢較大,靈敏度高,穩(wěn)定性和均勻性較好等特點(diǎn),其使用溫度為0~1 300 ℃,對應(yīng)輸出為0~52.37 mV[1]。溫度變送器采用DBW 型, 把熱電偶輸出的毫伏信號轉(zhuǎn)換為0~5 V標(biāo)準(zhǔn)模擬信號。該信號通過A/D 轉(zhuǎn)換器ADC0809 的IN0 通道輸入,從而轉(zhuǎn)換為數(shù)字信號,再由 單片機(jī)利用控制程序從P0 口輸入其內(nèi)部RAM 單元,以便與溫度設(shè)定值進(jìn)行比較[2]。模糊控制器輸出控制量通過P1.0 輸出,通過光電雙向可控硅驅(qū)動器MOC3051 去驅(qū)動功率可控硅, 從而改變加熱元件的加熱功率,以實(shí)現(xiàn)溫度調(diào)節(jié)的目的。

            考慮到系統(tǒng)的人機(jī)互動,利用并行接口芯片8155 進(jìn)行I/O 口擴(kuò)展,以完成鍵盤輸入及顯示器輸出的設(shè)計(jì)。其中鍵盤采用矩陣式鍵盤,負(fù)責(zé)參數(shù)的設(shè)定和一些開關(guān)量的輸入,如:啟動、停止、復(fù)位、溫度設(shè)定、設(shè)定值修改、溫度數(shù)字鍵等;而顯示器采用LED 顯示器,用于同時顯示系統(tǒng)設(shè)定溫度及實(shí)際溫度。

            2 雙模糊控制算法設(shè)計(jì)

            2.1 雙模糊控制器結(jié)構(gòu)設(shè)計(jì)

            本模糊控制器采用雙模糊控制結(jié)構(gòu)以及典型的雙輸入、單輸出方式,如圖2 所示。將溫度設(shè)定值與溫度反饋值之間的誤差e 及變化率ec 作為輸入量,將溫度控制量u 作為輸出量。由于系統(tǒng)在不同的控制狀態(tài)下存在大小不同的誤差,若考慮單模糊控制器設(shè)計(jì),將使系統(tǒng)的快速響應(yīng)及控制精度之間存在矛盾[3],兩者無法兼顧。為此,采用雙模糊控制器設(shè)計(jì),并人為設(shè)置一個誤差臨界值完成雙??刂魄袚Q[4]。在系統(tǒng)初始階段,系統(tǒng)誤差較大,使用系統(tǒng)因子Kec、Ku相對較小(如Kec1、Ku1)的模糊控制器,以實(shí)現(xiàn)快速響應(yīng),消除誤差的目的;在系統(tǒng)穩(wěn)態(tài)階段,系統(tǒng)誤差較小,使用系統(tǒng)因子Kec、Ku適當(dāng)增加(如Kec2、Ku2)的模糊控制器,以改善系統(tǒng)的穩(wěn)態(tài)性能。

            

           

            2.2 雙模糊控制策略

            考慮溫度控制的特點(diǎn), 將誤差e、變化率ec 及輸出量u的論域設(shè)為[-6,6],將其量化為13 個等級,并分別為誤差e、變化率ec、輸出量u 選取7 個語言值,即{NL,NM,NS,ZO,PS,PM,PL}。三者的隸屬度函數(shù)均采用梯形分布[5],如圖3 所示。根據(jù)對工業(yè)過程控制的經(jīng)驗(yàn)總結(jié),制定相應(yīng)的模糊控制規(guī)則表如表1 所示。

            

           

            為提高系統(tǒng)的實(shí)時響應(yīng)速度,事先根據(jù)模糊控制規(guī)則表及語言變量賦值表, 離線計(jì)算出模糊控制總表如表2 所示,該表經(jīng)嚴(yán)格的實(shí)踐檢驗(yàn)和反復(fù)修改后存放在單片機(jī)的程序存儲器中。然后根據(jù)輸入量e 及ec 在不同工作狀態(tài)的實(shí)際變化范圍及其論域,計(jì)算出量化因子Ke1、Kec1和Ke2、Kec2,并確定出比例因子Ku1和Ku2。實(shí)際控制時,模糊控制器把系統(tǒng)在不同工作狀態(tài)下的輸入量e 及ec 分別乘以相應(yīng)的Ke、Kec,并量化到輸入量的語言變量論域中,再根據(jù)量化的結(jié)果與模糊控制總表進(jìn)行比較,通過查表程序得到所需的輸出量U,最后乘以Ku,得到系統(tǒng)在不同工作狀態(tài)下的實(shí)際輸出控制量u。

            3 控制器軟件設(shè)計(jì)

            雙模糊溫度控制器的軟件采用模塊化設(shè)計(jì)思想,主要包括主程序、溫度采集程序、鍵盤/顯示控制程序、模糊控制算法程序等。下面主要給出主程序及模糊控制算法程序流程圖,分別如圖4、圖5 所示[6]。

            4 結(jié)束語

            文中提出的以單片機(jī)為控制核心的雙模糊溫度控制器,是以比例因子自整定模糊控制理論為基礎(chǔ),根據(jù)系統(tǒng)誤差大小利用兩個系統(tǒng)因子不同的模糊控制器分別進(jìn)行溫度控制。結(jié)構(gòu)簡單、易于實(shí)現(xiàn)、適應(yīng)力強(qiáng),可較大提高穩(wěn)態(tài)精度,對于溫度控制可以達(dá)到很好的控制效果,可廣泛應(yīng)用于工業(yè)生產(chǎn)中。

          溫濕度控制器相關(guān)文章:溫濕度控制器原理
          熱電偶相關(guān)文章:熱電偶原理


          關(guān)鍵詞: AT89S52 溫度控制器

          評論


          相關(guān)推薦

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

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();