基于單片機(jī)的模糊控制系統(tǒng)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
1 引言
模糊控制(Fuzzy Control)是目前自動(dòng)控制研究中活躍而富有成果的領(lǐng)域之一,模糊理論是當(dāng)前能用來對(duì)信息進(jìn)行軟處理的最新技術(shù),可以將人的定性思維和判斷方法定量化 為適合計(jì)算機(jī)處理的過程,使計(jì)算機(jī)能判斷像“大概”、“輕”這樣的模糊信息。采用傳統(tǒng)控制理論,不管是用經(jīng)典控制理論還是用現(xiàn)代控制理論來設(shè)計(jì)一個(gè)控制系 統(tǒng),都需要事先知道被控對(duì)象的精確數(shù)學(xué)模型。然而,在許多情況下被控對(duì)象(或生產(chǎn)過程)的精確數(shù)學(xué)模型很難建立;像建材工業(yè)生產(chǎn)中的水泥窯、玻璃窯,化學(xué) 生產(chǎn)中的化學(xué)反應(yīng)過程,食品生產(chǎn)中的發(fā)酵過程,還有眾多爐類的熱處理過程。諸如此類過程具有變量多,各種參數(shù)存在不同程度的時(shí)變性;且過程具有非線性,強(qiáng) 耦合,較大的隨機(jī)干擾、過程機(jī)理錯(cuò)終復(fù)雜、存在各種不確定性以及現(xiàn)場(chǎng)測(cè)量手段不完善等特點(diǎn)。這些特點(diǎn)使得建立這一類過程的精確數(shù)學(xué)模型的難度很大,或甚至 根本辦不到。
模糊控制是基于規(guī)則的智能控制方式,它不依賴于被控對(duì)象的精確數(shù)學(xué)模型,特別適合對(duì)具有多輸入一多輸出的強(qiáng)耦合性、參數(shù)的時(shí)變性、嚴(yán) 重非線性與不確定性的復(fù)雜系統(tǒng)或過程的控制,且控制方法簡單,魯棒性好[1][2]。將模糊控制技術(shù)應(yīng)用于一般的電子產(chǎn)品在國外已是很普遍的現(xiàn)象,單片機(jī) 常用的控制器件,把二者結(jié)合起來,可使控制器的性能指標(biāo)達(dá)到最優(yōu)的目的。本文就是通過利用單片機(jī)作為平臺(tái),圍繞模糊控制規(guī)則,以模糊推理算法作為控制系統(tǒng) 核心,開發(fā)出具有自校正能力的通用的模糊控制器。最后以一個(gè)溫度監(jiān)控系統(tǒng)為實(shí)例介紹了系統(tǒng)的軟硬件設(shè)計(jì)。
2 模糊控制系統(tǒng)的組成及原理
2.1模糊控制系統(tǒng)的基本組成與原理
圖1 模糊控制器原理圖
如圖1所示,模糊控制器是模糊控制系統(tǒng)的核心部分,也是和其它控制器最大區(qū)別環(huán)節(jié)。模糊控制器有四個(gè)基本部分組成:
(1)模糊化。把輸入信號(hào)映射到相應(yīng)域上的一個(gè)點(diǎn)后,將其轉(zhuǎn)化為該論域上的一個(gè)模糊子集,即把輸入的精確量轉(zhuǎn)化為模糊量。
(2)知識(shí)庫。知識(shí)庫包含了具體應(yīng)用領(lǐng)域中的知識(shí)和要求的目標(biāo),通常由數(shù)據(jù)庫和模糊規(guī)則庫兩部分組成。數(shù)據(jù)庫主要包含各語言變量的隸屬函數(shù),尺度變換因子和模糊空間的分級(jí)數(shù)等;規(guī)則庫包含了用模糊語言變量表示的一系列控制規(guī)則,他們反映了控制專家的知識(shí)和經(jīng)驗(yàn)。
(3)模糊推理。模糊推理是模糊控制的核心,它具有模擬人的模糊推理的能力。該推理過程是基于模糊邏輯中的蘊(yùn)含關(guān)系及推理規(guī)則來進(jìn)行的。
(4)清晰化。清晰化又稱為解模糊化,作用是將模糊推理得到的控制量(模糊量)變換為實(shí)際的可用于被控對(duì)象的精確量。它包括兩部分的內(nèi)容:一是將模糊的控制量經(jīng)解模糊化變換變成表示在論域范圍的精確量;二是將表示在論域范圍的精確量轉(zhuǎn)換成實(shí)際的控制量。
2.2 模糊控制系統(tǒng)的基本工作原理
模糊控制系統(tǒng)通常由計(jì)算機(jī)實(shí)現(xiàn)(包括PC機(jī)、單片機(jī)、單板機(jī)以及DSP等),一般設(shè)計(jì)思想是:
1.以誤差e和誤差變化率ec作為模糊控制器輸入量,u為輸出控制量。定義誤差e和誤差變化率ec及輸出變量u的模糊集及論域。
例如:
e和ec的模糊集為{NB,NM,NS,O,PS,PM,PB}
u的模糊集為{NB,NM,NS,NO,O,PO,PS,PM,PB}
e的論域{-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6}
ec的論域{-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6}
u的論域{-7,-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6,7}
其中:NB,NM,NS,NO,O,PO,PS,PM,PB分別代表負(fù)大,負(fù)中,負(fù)小,負(fù)零,零,正零,正小,正中, 正大這樣的模糊語言變量。
2.確定模糊規(guī)則R(模糊關(guān)系)。
例如:
if e=NB or NM and △e=NB or NM,then u=PB
or
if e=NB or NM and △e=NS or O, then u=PB
3.模糊語言變量確定隸屬函數(shù),即對(duì)模糊變量進(jìn)行賦值。
4.計(jì)算機(jī)經(jīng)過采樣和A/D轉(zhuǎn)換獲得被控量的精確值,然后將此量與給定值比較得到誤差信號(hào)e和ec。把e和ec模糊量化,得到e和ec的模糊子集(實(shí)際是模糊向量e和ec)。
5.根據(jù)模糊向量e、ec和模糊控制規(guī)則R,按推理合成規(guī)則進(jìn)行模
糊決策,得到控制量(模糊向量u)。
3 基于單片機(jī)的溫控系統(tǒng)
3.1 系統(tǒng)原理
本系統(tǒng)有溫度傳感器DS18B20 , ATmega8單片機(jī)、執(zhí)行機(jī)構(gòu),外圍電路包括鍵盤,LED顯示以及保護(hù)電路構(gòu)成的閉環(huán)控制回路,控制對(duì)象為水溫。系統(tǒng)的原理框圖如圖1所示。
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)換功能。通過編寫程序,可將芯片的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)過以下的步驟:每一次讀寫之前都要進(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、鍵盤用作上位機(jī)對(duì)下位機(jī)的通信控制。顯示電路采用10位共陰極LED,通過3片Max595芯片與單片機(jī)相連,同時(shí)顯示當(dāng)前溫度值和設(shè)定值。外圍電路同時(shí)有4個(gè)按鍵,可進(jìn)行溫度逐次加減、功能切換以及保存等功能。
3.3 軟件設(shè)計(jì)
整個(gè)系統(tǒng)的硬件電路設(shè)計(jì)相對(duì)簡單。在本系統(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ī)則表推導(dǎo)出KP'、 Ki' 、Kd'的值,再計(jì)算出△u。
由于增量型的算法不需要累加量,控制增量△u僅僅與最近的采樣次數(shù)有關(guān),所以誤動(dòng)作時(shí)的影響小,而且比較容易通過加權(quán)處理獲得比較好的控制效果。這也是本系統(tǒng)采用增量型的PID控制算法作為Fuzzy PID控制器中的PID調(diào)節(jié)器部分算法的原因。
模糊控制器的關(guān)鍵是總結(jié)操作人員和技術(shù)人員的實(shí)際操作經(jīng)驗(yàn)和技術(shù)知識(shí),并建立合適的模糊規(guī)則表,并將模糊規(guī)則表通過程序編寫人單片機(jī)ATmega8中的EEPROM中去,在線時(shí)通過查詢得到合適的PID參數(shù)。
控 制器的控制范圍為整個(gè)測(cè)量系統(tǒng)的測(cè)量范圍,各個(gè)隸屬函數(shù)的論域范圍既要滿足覆蓋的原則,又不要使規(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)行的過程中完成對(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控制器輸出。
在編寫程序時(shí),考慮到由于溫度系統(tǒng)變化化緩慢,所以采樣周期用軟件和硬件相結(jié)合的方法,即用ATmega8的T1和軟件計(jì)時(shí)相結(jié)合的方法。
在等待采樣周期到達(dá)的期間內(nèi)不斷進(jìn)行掃描和顯示過程,通過LED顯示給定溫度和采樣的溫度,通過ATmega8的T0進(jìn)行5 ms的定時(shí)刷新LED。
模型控制子程序是根據(jù)采樣值和給定值求得溫度的偏差和偏差變化率,將KP、 Ki 、Kd三個(gè)參數(shù)的模糊規(guī)則表寫人單片機(jī)的EEPROM中,通過在線查表獲得控制。具體流程圖如上圖3所示。
4 結(jié)論
本文首先介紹了模糊控制理論的基本原理,在此基礎(chǔ)上將模糊控制理論與常規(guī)PID控制相結(jié)合,在以單片機(jī)ATmega8為系統(tǒng)核心部件對(duì)溫度進(jìn)行控制。相較單 一的PID控制來說,模糊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)更加簡潔,更容易控制,為工業(yè)控制系統(tǒng)提供了另外一條更好的思路。