基于單片機(jī)的模糊控制系統(tǒng)簡(jiǎn)介
本文引用地址:http://m.butianyuan.cn/article/160245.htm
3.2 硬件設(shè)計(jì)
1、ATmega8是采用低功耗CMOS工藝生產(chǎn)的基于AVR RISC結(jié)構(gòu)的8位單片機(jī)。工作電壓4. 5-5.5 V,芯片內(nèi)部集成A/D轉(zhuǎn)換功能。通過(guò)編寫(xiě)程序,可將芯片的PC0至PC6口從普通的I/O口功能用作8位或10位A/D轉(zhuǎn)換,從而省去外圍的A/D轉(zhuǎn)換 電路。ATmega8內(nèi)部有3個(gè)定時(shí)器T0,T1和T2,本系統(tǒng)使用2個(gè),分別用作Ss的溫度數(shù)據(jù)采集和5 NS的LED刷新顯示。
2、 DS18B20支持“一線總線”接口,從而提高了系統(tǒng)的抗干擾性。溫度測(cè)量范圍從-55℃~+ 125℃,在-10℃~+85℃時(shí)測(cè)量精度為0. 5℃。DS18B20采用3腳TO-92封裝。分別為GND電源地,DQ數(shù)據(jù)輸人/輸出端(單線總線),VDD外接供電電源輸人端(3.0~5. 5 V) 。DS18B20內(nèi)部主要由寄生電源、溫度傳感器、64位激光ROM單線接口和配置寄存器等組成。在本系統(tǒng)中,將DQ接ATmega8的PC4口,VDD 與單片機(jī)Vcc同接+5V電源,并在DQ和VDD之間接一個(gè)4. 7 kΩ的上拉電阻,即可完成溫度的采集部分的硬件電路。
DS18 B20規(guī)定了自己的通信協(xié)議,在每一次的溫度采集轉(zhuǎn)換時(shí)必須要經(jīng)過(guò)以下的步驟:每一次讀寫(xiě)之前都要進(jìn)行復(fù)位;復(fù)位后發(fā)送一條ROM指令;發(fā)送RAM指令。 復(fù)位要求ATmega8將數(shù)據(jù)線下拉500μs,然后抬至高電平,DS18B20收到信號(hào)后等待16~60μs后發(fā)出60~240μs的低脈 沖,ATmega8收到此信號(hào)后表示復(fù)位成功。
3、鍵盤(pán)用作上位機(jī)對(duì)下位機(jī)的通信控制。顯示電路采用10位共陰極LED,通過(guò)3片Max595芯片與單片機(jī)相連,同時(shí)顯示當(dāng)前溫度值和設(shè)定值。外圍電路同時(shí)有4個(gè)按鍵,可進(jìn)行溫度逐次加減、功能切換以及保存等功能。
3.3 軟件設(shè)計(jì)
整個(gè)系統(tǒng)的硬件電路設(shè)計(jì)相對(duì)簡(jiǎn)單。在本系統(tǒng)中采用增量型PID控制算法,即:
△u(k)=u(k)-u(k-1)=KP[e(k)一e(k-1)]+Ki(k)+Kd[e(k)一2e(k-1) +e(k-2)]
式中,△u(k)為控制增量;KP為比例參數(shù);Ki為積分參數(shù);Kd為微分參數(shù);e(k)為系統(tǒng)偏差。先根據(jù)KP、 Ki 、Kd的值,計(jì)算出輸出U的初值,再根據(jù)操作人員的給定值得到偏差e和偏差變化率ec,然后通過(guò)模糊規(guī)則表推導(dǎo)出KP'、 Ki' 、Kd'的值,再計(jì)算出△u。
由于增量型的算法不需要累加量,控制增量△u僅僅與最近的采樣次數(shù)有關(guān),所以誤動(dòng)作時(shí)的影響小,而且比較容易通過(guò)加權(quán)處理獲得比較好的控制效果。這也是本系統(tǒng)采用增量型的PID控制算法作為Fuzzy PID控制器中的PID調(diào)節(jié)器部分算法的原因。
模糊控制器的關(guān)鍵是總結(jié)操作人員和技術(shù)人員的實(shí)際操作經(jīng)驗(yàn)和技術(shù)知識(shí),并建立合適的模糊規(guī)則表,并將模糊規(guī)則表通過(guò)程序編寫(xiě)人單片機(jī)ATmega8中的EEPROM中去,在線時(shí)通過(guò)查詢(xún)得到合適的PID參數(shù)。
控 制器的控制范圍為整個(gè)測(cè)量系統(tǒng)的測(cè)量范圍,各個(gè)隸屬函數(shù)的論域范圍既要滿足覆蓋的原則,又不要使規(guī)則過(guò)多。根據(jù)多次實(shí)驗(yàn),在本系統(tǒng)中,偏差e和偏差變化率 ec的變化范圍為{-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6}。其模糊子集為e、ec= {NB,NM,NS,O,PS,PM,PB},分別代表負(fù)大,負(fù)中,負(fù)小,零,正小,正中,正大。在本系統(tǒng)中,所設(shè)定的偏差e和偏差變化率ec以及KP、 Ki 、Kd的各個(gè)子集均采用正態(tài)分布。
圖3 程序設(shè)計(jì)流程圖
應(yīng)用模糊合成推理使在線運(yùn)行的過(guò)程中完成對(duì)PID參數(shù)的自行調(diào)整,具體步驟為:(1)采樣獲取當(dāng)前溫度數(shù)據(jù)。(2)獲 取偏差和偏差變化率:e(k)=R(k)-Y(k);ec(k)=e(k)-e(k-1)。(3) e(k)和ec ( k)模糊化。(4)計(jì)算當(dāng)前KP、 Ki 、Kd。(5)PID控制器輸出。
在編寫(xiě)程序時(shí),考慮到由于溫度系統(tǒng)變化化緩慢,所以采樣周期用軟件和硬件相結(jié)合的方法,即用ATmega8的T1和軟件計(jì)時(shí)相結(jié)合的方法。
在等待采樣周期到達(dá)的期間內(nèi)不斷進(jìn)行掃描和顯示過(guò)程,通過(guò)LED顯示給定溫度和采樣的溫度,通過(guò)ATmega8的T0進(jìn)行5 ms的定時(shí)刷新LED。
模型控制子程序是根據(jù)采樣值和給定值求得溫度的偏差和偏差變化率,將KP、 Ki 、Kd三個(gè)參數(shù)的模糊規(guī)則表寫(xiě)人單片機(jī)的EEPROM中,通過(guò)在線查表獲得控制。具體流程圖如上圖3所示。
4 結(jié)論
本文首先介紹了模糊控制理論的基本原理,在此基礎(chǔ)上將模糊控制理論與常規(guī)PID控制相結(jié)合,在以單片機(jī)ATmega8為系統(tǒng)核心部件對(duì)溫度進(jìn)行控制。相較單 一的PID控制來(lái)說(shuō),模糊PID控制的效果具有動(dòng)態(tài)效果好,上升時(shí)間快,超調(diào)小的優(yōu)越性,在本系統(tǒng)中也取得了很好的控制效果。另外可以發(fā)現(xiàn),傳統(tǒng)控制與模 糊控制是可以協(xié)同工作、相互補(bǔ)充的。
本文作者創(chuàng)新點(diǎn)為:將模糊控制系統(tǒng)應(yīng)用于水溫的監(jiān)控中,打破了傳統(tǒng)的控制思路。另外將單片機(jī)應(yīng)用于控制系統(tǒng)中,使控制系統(tǒng)更加簡(jiǎn)潔,更容易控制,為工業(yè)控制系統(tǒng)提供了另外一條更好的思路。
評(píng)論