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