摘 要: 介紹了Sugeno型模糊推理算法的基本原理,給出了一種實(shí)現(xiàn)方法,并對(duì)其控制性能進(jìn)行了仿真。
關(guān)鍵詞: 模糊控制器 Sugeno型模糊推理 Mamdani型模糊推理
模糊控制器是模糊控制系統(tǒng)的核心,通常由軟件編程實(shí)現(xiàn),其控制算法的簡(jiǎn)繁直接影響到控制器的實(shí)時(shí)性。Mamdani型和Sugeno型是兩種常用的模糊推理算法模型。在很多情況下,Sugeno型模糊推理算法具有較多的優(yōu)點(diǎn)。
1 模糊控制器的工作過(guò)程
模糊推理過(guò)程就是運(yùn)用模糊邏輯,進(jìn)行從輸入量到輸出量映射的過(guò)程,可以分為以下5個(gè)步驟進(jìn)行:
(1) 輸入量模糊化(Fuzzify Inputs)
根據(jù)對(duì)應(yīng)的隸屬函數(shù),確定輸入量的隸屬程度。輸入量是論域內(nèi)的數(shù)值,輸出量是對(duì)應(yīng)敘詞的隸屬度。模糊化可以通過(guò)查表或函數(shù)計(jì)算等方法實(shí)現(xiàn)。
(2) 模糊邏輯運(yùn)算(Apply Fuzzy Operator)
當(dāng)模糊推理規(guī)則的前件(Antecedent)含有幾個(gè)部分時(shí),就需要對(duì)幾個(gè)輸入量進(jìn)行模糊邏輯運(yùn)算,以得到模糊邏輯推理所需的單一前件。
(3) 模糊蘊(yùn)含(Apply Implication Method)
根據(jù)總結(jié)歸納的模糊規(guī)則,由前件蘊(yùn)含出后件(Consequent)。在過(guò)程中,各條規(guī)則的權(quán)重(Weight)可取不同值。結(jié)果由前件和輸出量隸屬函數(shù)得出,為一系列隸屬函數(shù)表示的模糊集合。
(4) 模糊合成(Aggregate All Outputs)
將各條規(guī)則蘊(yùn)含出的一系列隸屬函數(shù)合成為輸出量隸屬函數(shù)。
(5) 輸出逆模糊化(Defuzzify)
將模糊合成的隸屬函數(shù)數(shù)值化,得出模糊系統(tǒng)的清晰輸出量。
圖1所示為一個(gè)2輸入、2規(guī)則、1輸出的模糊推理過(guò)程示意圖。
2 Sugeno型模糊推理算法
Mamdani型模糊推理算法是最常用的模糊推理算法。Sugeno型模糊推理算法與Mamdani型類似,其中,輸入量模糊化和模糊邏輯運(yùn)算過(guò)程完全相同,主要差別在于輸出隸屬函數(shù)的形式。
典型的零階Sugeno型模糊規(guī)則的形式如下:
If x is A and y is B then z=k
式中x和y為輸入語(yǔ)言變量,A和B為推理前件的模糊集合,z為輸出語(yǔ)言變量, k為常數(shù)。
在Mamdani型模糊推理算法中,輸出隸屬函數(shù)是模糊集合,經(jīng)過(guò)模糊合成處理,即得到一個(gè)需要逆模糊化的輸出變量。當(dāng)采用尖峰脈沖形隸屬函數(shù)替代分布形隸屬函數(shù)時(shí),往往能使模糊推理過(guò)程簡(jiǎn)化而有效,這就是所謂的單元素隸屬函數(shù)。單元素隸屬函數(shù)可以看作已預(yù)逆模糊化處理的模糊集合,由于不需要象Mamdani型模型那樣計(jì)算二維函數(shù)的形心,可以極大地提高逆模糊化處理過(guò)程的效率。Sugeno模型中即采用單元素輸出隸屬函數(shù),其模糊蘊(yùn)含即是簡(jiǎn)單的乘法,模糊合成即是各單元屬輸出隸屬函數(shù)的簡(jiǎn)單包含。
更為一般的一階Sugeno模型規(guī)則的形式為:
if x is A and y is B then z=p×x+q×y+r
式中x和y為輸入語(yǔ)言變量,A和B為推理前件的模糊集合,z為輸出語(yǔ)言變量,p,q,r為常數(shù)。更高階數(shù)的Sugeno模型規(guī)則也可以類似構(gòu)成,但增加了模型的復(fù)雜性,性能卻改善不大,故很少使用。
由于各條規(guī)則與輸入量的線性關(guān)系,使得Sugeno型模型特別適合在動(dòng)態(tài)非線性系統(tǒng)中作為不同工作狀態(tài)下多線性控制器的平滑切換。
3 Sugeno模糊控制器的實(shí)現(xiàn)及應(yīng)用
Sugeno型模糊控制器能廣泛地用于各種工業(yè)控制系統(tǒng)。下面以二維通用模糊控制器在嵌入式工業(yè)控制機(jī)上的實(shí)現(xiàn)為例說(shuō)明Sugeno型模糊控制器的編程方法。
二維模糊控制器的輸入量取為偏差E和偏差變化率Ec,輸出量為控制量變化量ΔU。偏差E的語(yǔ)言詞集取8個(gè),為{負(fù)大NB,負(fù)中NM,負(fù)小NS,負(fù)零NZ,正零PZ,正小PS,正中PM,正大PB};偏差變化率Ec的語(yǔ)言詞集取7個(gè),為{負(fù)大NB,負(fù)中NM,負(fù)小NS,零Z,正小PS,正中PM,正大PB};輸出量變化量ΔU的語(yǔ)言詞集也取7個(gè),為{負(fù)大NB,負(fù)中NM,負(fù)小NS,零Z,正小PS,正中PM,正大PB}。輸入量E和Ec的隸屬函數(shù)形式取為常用的高斯形(Gauss-type),其形狀如圖2所示。如輸出量變化量ΔU的隸屬函數(shù)形式也取為高斯形,就是Mamdani型模糊推理算法的模糊控制器。為構(gòu)成Sugeno型模糊控制器,我們?nèi)≥敵隽繛閱卧獙匐`屬函數(shù),具體為{負(fù)大NB=-1,負(fù)中NM=-0.667,負(fù)小NS=-0.333,零Z=0,正小PS=0.333,正中PM=0.667,正大PB=1}。模糊推理規(guī)則共56條,詳見表1模糊控制規(guī)則表,其表面圖形示意圖見圖3。
控制器模糊運(yùn)算方法及逆模糊化方法分別取為:
模糊AND運(yùn)算為:prod(x,y)=x×y
模糊OR運(yùn)算為:probor(x,y)=x+y-x×y
逆模糊化運(yùn)算為加權(quán)平均法:ΔU=
經(jīng)過(guò)上述各項(xiàng)定義,Sugeno型模糊控制器的模型已經(jīng)完全確定。為方便起見,可以選MATLAB軟件作為編程平臺(tái)。首先,利用MATLAB的可視化模糊邏輯工具FUZZY命令建立文件名為SUGENO.FIS的模糊算法模型,由于MATLAB的FUZZY工具支持多種隸屬函數(shù)、模糊運(yùn)算、模糊推理及逆模糊化算法,上述Sugeno模型可以很快建立,而且在可視化環(huán)境中完成。下一步是利用MATLAB環(huán)境中提供的C/C++編譯工具COMPILER V2.0進(jìn)行編譯。SUGENO.FIS的模糊算法模型中使用了FUZZY工具中較多的M文件,如evalfis.m、guessmf.m等,須一并編譯。在MATLAB環(huán)境下,用mcc命令即可編譯得到SUGENO.C和SUGENO.H。該C/C++源程序代碼完全支持ANSIC,可以作為程序模塊應(yīng)用于嵌入式或其它工業(yè)控制機(jī)系統(tǒng)中(須MATLAB C/C++庫(kù)支持)。至此,基于Sugeno模糊推理算法的二維模糊控制器已經(jīng)實(shí)現(xiàn)。
為驗(yàn)證Sugeno型模糊控制器的性能,在MATLAB的SIMLINK環(huán)境中,構(gòu)造了一個(gè)控制系統(tǒng),對(duì)工業(yè)控制系統(tǒng)中常見的大滯后、大慣性被控對(duì)象:
進(jìn)行了仿真。為比較不同控制算法的差異,還同時(shí)對(duì)Mamdani型模糊推理算法和Ziegler-Nichols型PID控制算法進(jìn)行了仿真。仿真結(jié)果如圖4所示。可以看出,Sugeno型模糊推理算法除了具有模型簡(jiǎn)單、實(shí)時(shí)計(jì)算快的優(yōu)點(diǎn)外,其控制性能也比較優(yōu)異。
Mamdani型模糊推理算法具有直觀、已普遍被人們接受和比較適合于人類輸入的控制系統(tǒng)等優(yōu)點(diǎn)。由于采用了單元屬隸屬函數(shù)以及輸出與輸入的線性關(guān)系,Sugeno型模糊推理算法則具有下列優(yōu)點(diǎn):
(1)具有較高的計(jì)算效率,適用于實(shí)時(shí)性要求高的系統(tǒng);
(2)能與線性系統(tǒng)、優(yōu)化控制和自適應(yīng)控制系統(tǒng)很好地結(jié)合;
(3)能保證控制器輸出的平滑性;
(4)比較適合于具有精確數(shù)學(xué)分析的控制系統(tǒng),特別是多線性模型的平滑切換。
參考文獻(xiàn)
1 馮冬青.模糊智能控制.北京:化學(xué)工業(yè)出版社,1998
2 魏克新.MATLAB語(yǔ)言與自動(dòng)控制系統(tǒng)設(shè)計(jì).北京:機(jī)械工業(yè)出版社,1997
3 王順晃.智能控制系統(tǒng)機(jī)器應(yīng)用.北京:機(jī)械工業(yè)出版社,1998
4 陶永華.新型PID控制及其應(yīng)用.北京:機(jī)械工業(yè)出版社,1998
5 The MathWorks Inc.Fuzzy Logic Toolbox User′s Guide(Version 2).1999