基于ARM電冰箱模糊控制系統(tǒng)的仿真與設(shè)計
1 引 言
模糊控制理論的提出,為我們提供了一種新的控制方法。這種方法以微處理器構(gòu)成的模糊控制器為核心,以模擬人腦的思維方式為基本出發(fā)點(diǎn),不需要我們對控制對象準(zhǔn)確建模,就能很好的解決非線性、大滯后環(huán)節(jié)、變參數(shù)對象的控制問題[1]。依靠操作人員的經(jīng)驗(yàn)來建立合理的模糊控制算法,就能使難控制的系統(tǒng)達(dá)到比較好的控制效果。
在電冰箱的控制中,溫度是主要的控制對象,控制的好就有顯著的節(jié)能效果。影響溫度變化的因素很多,如環(huán)境溫度的高低,冰箱本身的容積,開冰箱門的次數(shù),每次開門的時間,冰箱中食物的多少,以及食物的種類和性質(zhì)等等。所以要想建立電冰箱溫度變化的精確數(shù)學(xué)模型是很困難的。因此可采用模糊控制解決。
在本設(shè)計中,模糊控制器輸入量為系統(tǒng)的誤差E和誤差變化率DE、輸出為系統(tǒng)的控制量U,因此模糊控制器的工作過程可以描述為:首先將模糊控制器的輸入量轉(zhuǎn)化為模糊量供模糊邏輯決策系統(tǒng)用,模糊邏輯決策器根據(jù)規(guī)則決定的模糊關(guān)系R,應(yīng)用模糊邏輯推理算法得出控制器的模糊輸出量。最后經(jīng)精確化計算得到的控制值去控制被控對象。
2 模糊控制系統(tǒng)的設(shè)計
2.1輸入輸出
將傳感器測得的精確溫度在各自的變化區(qū)間上分為幾個檔次,使每檔對應(yīng)一個模糊集。我們設(shè)定電冰箱溫度升降范圍-15℃~+15℃之間變化,而輸入變化范圍為-15℃~+15℃,輸入變化率變化范圍為-6~6之間。將它分為6檔,并和模糊變量負(fù)大,負(fù)小,負(fù)零,正零,正小,正大一一對應(yīng),所以K1=6/15=0.24,K2=6/6=1,K3=15/6=2.5。
在MATLAB環(huán)境下,鍵入Fuzzy命令,進(jìn)入模糊邏輯上具箱[2],在屏幕上出現(xiàn)帶有單輸入、單輸出、模糊規(guī)則的模塊系統(tǒng),用戶雙擊輸入、輸出模塊,可進(jìn)行輸入、輸出變量的論域范圍、各個語臺變量的隸屬函數(shù)形狀等參數(shù)的編輯。并保存為wen.fis本例中3個變量的隸屬函數(shù),它們的語言量值分別為:
E ={NB NS ZR PS PB}、DE={NB NS ZR PS PB}、U ={NB NS ZR PS PB}
輸入偏差E論域:“正大”(PB)多數(shù)取在+6℃附近、“正小”(PS)多數(shù)取在+2℃附近、“正零”(ZR)多數(shù)取在零左右一點(diǎn)附近、“負(fù)小”(BS)多數(shù)取在-2℃附近、“負(fù)大”(NB)多數(shù)取在-6℃附近。輸入變化率DE語言變量值和輸出U的語言變量值同輸入變量E;輸入隸屬度函數(shù)如圖2.1所示 ,輸出隸屬度函數(shù)如圖2.2所示
圖2.4仿真框圖
2.2模糊規(guī)則
本系統(tǒng)采用IF E and DE then U 為模糊規(guī)則。模糊關(guān)系為R=E X DE X U; 模糊推理采用U =(E X DE )o R;
改系統(tǒng)的模糊規(guī)則表如下表1
2.3 解模糊
本系統(tǒng)采用加權(quán)平均法(重心法)[1]來求的輸出的精確量U 的值:
(2.3.1)
其中 則
…. (2.3.2)
其中,Ci為論域?qū)?yīng)值
圖2.3是模糊控制系統(tǒng)輸出曲面觀測器的輸出面。
在MATLAB命令窗口中鍵入simulink 建立一 wen.mdl文件如圖2.4,對模糊控制系統(tǒng)
進(jìn)行仿真,得到曲線如圖2.5。可以看出,仿真輸出曲線超調(diào)量有點(diǎn)大,但系統(tǒng)反應(yīng)較快即調(diào)節(jié)時間短,系統(tǒng)也比較穩(wěn)定。單從仿真來看模糊控制切實(shí)可行。
3 在ARM上實(shí)現(xiàn)模糊控制器
3.1硬件設(shè)計
本文采用的微處理器是PHILIPS公司出品的Lpc2214[3]。這是一款支持實(shí)時仿真、嵌入式跟蹤、在系統(tǒng)編程和在應(yīng)用編程的ARM7TDMI-STMCPU微處理器,ARM7TDMI是目前低端的ARM核。微處理器Lpc2214對代碼規(guī)模有嚴(yán)格的控制,這種可以使用16位Thumb的模式將代碼規(guī)模降低超過30%,而性能的損失卻很??;由于這款微處理器具有很高的代碼處理速度、極低的功耗、多個32 位定時器、8路10位的ADC、PWM輸出以及多達(dá)9個外部中斷等特點(diǎn);微處理器芯片自帶16K字節(jié)的片內(nèi)靜態(tài)RAM和256K字節(jié)的片內(nèi)閃存Flash,都可以用來存儲數(shù)據(jù)或代碼;Lpc2214是144腳封裝,是一款總線開放的微處理器,允許直接連接并行存儲芯片;由于內(nèi)置了串行通信接口,它也適合于通信和各種類型的應(yīng)用。系統(tǒng)框圖如圖3.1所示。
3.2軟件設(shè)計
當(dāng)論域?yàn)殡x散時,經(jīng)過量化后的輸入量的個數(shù)是有限的。因此可以針對輸入的不同組合離線計算出相應(yīng)的控制量,從而組成一張控制表,實(shí)際控制時只要直接查這張控制表即可,在線的運(yùn)算量是很少的。
由于LPC2214內(nèi)存足夠大,無需考慮內(nèi)存之憂。在LPC中如何實(shí)現(xiàn)控制規(guī)則表是整個系統(tǒng)的關(guān)鍵所在,本系統(tǒng)采用二維矩陣形式存儲控制規(guī)則表,假設(shè)二維矩陣為control[13][13]。在LPC2214只能存儲數(shù)字量,故在內(nèi)存中模糊語言用十六進(jìn)制表示:輸入量E,DE量化后分別為x, y,且x,y={-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6},在ARMz中則對應(yīng)a,b={0,1,2,3,4,5,6,7,8,9,10,11,12}。假設(shè)E量化后x=-5, y=2,在ARM中對應(yīng)a=1,b=8查表時只需查control[1][8]則這樣表示無論從數(shù)據(jù)管理還是從查表方便而言,都具有極大的優(yōu)勢。
這種離線計算、在線查表的模糊控制方法比較容易滿足實(shí)時控制的要求。這種離線計算采用MATLAB計算出控制表,然后以二維矩陣形式存儲在ROM中,供在線查表。
另外,本設(shè)計還有一優(yōu)點(diǎn),就是模糊控制結(jié)合傳統(tǒng)控制方法PID控制,其中TP=6,TI=0.001,TD=1;軟件判斷E的大小范圍。
當(dāng)E>+6℃或E<-6℃時,系統(tǒng)自動跳到PID控制程序段,使系統(tǒng)能快速響應(yīng);
當(dāng)-6℃ 在ARM中實(shí)現(xiàn)模糊控制時,模糊化采用單點(diǎn)模糊集合,如果輸入量數(shù)據(jù)x0是準(zhǔn)確的,則通常將其模糊化為單點(diǎn)模糊集合。設(shè)模糊集合用A表示,則有3.2.1 (3.2.1) 模糊集合的隸屬度函數(shù),根據(jù)論域?yàn)殡x散和連續(xù)的不同情況,隸屬度函數(shù)也有離散和連續(xù)兩種方法。本設(shè)計中隸屬度函數(shù)采用離散方法,也就是連續(xù)隸屬度簡單離散化。解模糊用的仍然是重心法,只不過在求模糊控制規(guī)則表時,已用到這一步。控制主程序如圖4.1所示,模糊控制程序如圖4.2所示。 4 結(jié)論 模糊控制方法是一種的解決非線性、大滯后環(huán)節(jié)、變參數(shù)對象控制方法[4],對無法取得數(shù)學(xué)模型或數(shù)學(xué)模糊相對難求的系統(tǒng)可以取得比較滿意的效果。而且借助于MATLAB的模糊工具箱(fuzzy logIC)和simulink仿真可以快速方便地設(shè)計仿真模糊控制系統(tǒng)。尤其是在家用電器的控制中模糊控制取得了越來越來廣泛的應(yīng)用,具有重大的實(shí)用意義。 本文作者創(chuàng)新點(diǎn)為在ARM中用二維矩陣實(shí)現(xiàn)模糊控制表,簡單易行、速度快、足以滿足實(shí)時性要求。 參考文獻(xiàn) [1] 孫增圻等編著. 智能控制理論域技術(shù)[M] 清華大學(xué)出版社. 廣西科學(xué)技術(shù)出版社,.1997 [2] 樓順天,胡昌華,張 偉等. 基于MATLAB的系統(tǒng)分析設(shè)計[M]. 西安電子科技大學(xué)出版社,2001 [3] 周立功等編著. ARM嵌入式系統(tǒng)基礎(chǔ)教程[M]. 北京航空航天大學(xué)出版社,2005 [4] 尹 琦,曲 毅,模糊控制在單片機(jī)空調(diào)室溫調(diào)節(jié)中的應(yīng)用[J],微計算機(jī)信息,2005,第21卷,第7-2期