MATLAB模糊邏輯工具箱函數_第1頁
MATLAB模糊邏輯工具箱函數_第2頁
MATLAB模糊邏輯工具箱函數_第3頁
MATLAB模糊邏輯工具箱函數_第4頁
MATLAB模糊邏輯工具箱函數_第5頁
已閱讀5頁,還剩99頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1MATLAB模糊邏輯工具箱簡介2利用模糊邏輯工具箱成立模糊推理系統(tǒng)3MATLAB模糊邏輯工具箱的圖形用戶界面4鑒于Simulink的模糊邏輯的系統(tǒng)模塊MATLAB模糊邏輯工具箱函數1針對模糊邏輯特別是模糊控制的快速推行應用,MathWorks公司在其MATLAB版中增加了FuzzyLogic工具箱。該工具箱由長遠從事模糊邏輯和模糊控制研究與開發(fā)工作的有關專家和技術人員編制。MATLABFuzzyLogic工具箱以其功能強盛和方便易用的特點獲取了用戶的寬泛歡迎。模糊邏輯的開創(chuàng)人Zadeh教授夸贊該工具箱“在各方面都給人以深刻的印象,使模糊邏輯成為智能系統(tǒng)的看法與設計的有效工具?!?1.1模糊邏輯工具箱的功能特點1.易于使用模糊邏輯工具箱供應了成立和測試模糊邏輯系統(tǒng)的一整套功能函數,包含定義語言變量及其隸屬度函數、輸入模糊推理規(guī)則、整個模糊推理系統(tǒng)的管理以及交互式地觀察模糊推理的過程和輸出結果。1MATLAB模糊邏輯工具箱簡介32.供應圖形化的系統(tǒng)設計界面在模糊邏輯工具箱中包含五個圖形化的系統(tǒng)設計工具,這五個設計工具是:?模糊推理系統(tǒng)編寫器,該編寫器用于成立模糊邏輯系統(tǒng)的整體框架,包含輸入與輸出數目、去模糊化方法等;?隸屬度函數編寫器,用于經過可視化手段成立語言變量的隸屬度函數;?模糊推理規(guī)則編寫器;?系統(tǒng)輸入輸出特征曲面測覽器;?模糊推理過程閱讀器。43.支持模糊邏輯中的高級技術?自適應神經模糊推理系統(tǒng)(ANFIS,AdaptiveNeuralFuzzyInferenceSystem);?用于模式識其余模糊聚類技術;?模糊推理方法的選擇,用戶可在寬泛采用的Mamdani型推理方法和Sugeno型推理方法二者之間選擇。54.集成的仿真和代碼生成功能模糊邏輯工具箱不僅能夠實現(xiàn)Simulink的無縫連結,并且經過Real-TimeWorkshop能夠生成ANSIC源代碼,從而易于實現(xiàn)模糊系統(tǒng)的及時應用。5.獨立運行的模糊推理機在用戶達成模糊邏輯系統(tǒng)的設計后,能夠將設計結果以ASCII碼文件保存;利用模糊邏輯工具箱供應的模糊推理機,能夠實現(xiàn)模糊邏輯系統(tǒng)的獨立運行或許作為其余應用的一部分運行。65.1.2模糊推理系統(tǒng)的基本種類在模糊系統(tǒng)中,模糊模型的表示主要有兩類:一類是模糊規(guī)則的后件是輸出量的某一模糊會合,如NB,PB等,因為這種表示比較常用,且首次由Mamdani采用,因此稱它為模糊系統(tǒng)的標準模型或Mamdani模型表示;另一類是模糊規(guī)則的后件是輸入語言變量的函數,典型的狀況是輸入變量的線性組合。因為該方法是日本學者高木(Takagi)和關野(Sugeno)第一提出來的,所以平時稱它為模糊系統(tǒng)的Takagi-Sugeno(高木-關野)模型,或簡稱為Sugeno模型。71鑒于標準模型的模糊邏輯系統(tǒng)在標準型模糊邏輯系統(tǒng)中,模糊規(guī)則的前件和后件均為模糊語言值,即擁有以下形式:IFx1isA1andx2isA2and…andxnisAnTHENyisB其中Ai(i=1,2,…,n)是輸入模糊語言值,B是輸出模糊語言值。圖5-1鑒于標準模型的模糊邏輯系統(tǒng)原理圖

鑒于標準模型的模糊邏輯系統(tǒng)的框圖如圖5-1。圖中的模糊規(guī)則庫由若干“IF——THEN”規(guī)則構成。模糊推理機在模糊推理系統(tǒng)中起著核心作用,它將輸入模糊會合依照模糊規(guī)則映照成輸出模糊會合。它供應了一種量化專家語言信息和在模糊邏輯原則下系統(tǒng)地利用這種語言信息的一般化模式。82鑒于高木——關野(Takagi——Sugeno)模型的模糊邏輯系統(tǒng)高木——關野模糊邏輯系統(tǒng)是一類較為特別的模糊邏輯系統(tǒng),其模糊規(guī)則不同于一般的模糊規(guī)則形式。在高木——關野模糊邏輯系統(tǒng)中,采用以下形式的模糊規(guī)則:IFx1isA1andx2isA2and…andxnisAnTHEN其中Ai(i=1,2,…,n)是輸入模糊語言值,ci(i=1,2,…,n)是真值參數。9能夠看出,高木-關野模糊邏輯系統(tǒng)的輸出量是精確值。這種模糊邏輯系統(tǒng)的優(yōu)點是輸出量可用輸入值的線性組合來表示,因此能夠利用參數估計方法來確定系統(tǒng)的參數ci(i=1,2,…,n);同時,能夠應用線性控制系統(tǒng)的分析方法來近似分析和設計模糊邏輯系統(tǒng)。其弊端是規(guī)則的輸出部分不擁有模糊語言值的形式,所以不可以充分利用專家的控制知識,模糊邏輯的各種不同原則在這種模糊邏輯系統(tǒng)中應用的自由度也遇到限制。105.1.3模糊邏輯系統(tǒng)的構成前面談論了模糊邏輯系統(tǒng)的基本種類,標準型模糊邏輯系統(tǒng)應用最為寬泛。在MATLAB模糊邏輯工具箱中主要針對這一種類的模糊邏輯系統(tǒng)供應了分析和設計手段,但同時對高木一關野模糊邏輯系統(tǒng)也供應了一些有關函數。下面將以標準型模糊邏輯系統(tǒng)作為主要談論對象。11結構一個模糊邏輯系統(tǒng),第一一定明確其主要構成部分。一個典型的模糊邏輯系統(tǒng)主要由以下幾個部分構成:(1)輸入與輸出語言變量,包含語言值及其隸屬度函數;(2)模糊規(guī)則;(3)輸入量的模糊化方法和輸出變量的去模糊化方法;(4)模糊推理算法。12針對模糊邏輯系統(tǒng)的以上主要構成,在MATLAB模糊邏輯工具箱中結構一個模糊推理系統(tǒng)有以下步驟:(1)模糊推理系統(tǒng)對應的數據文件,此后綴為.fis,用于對該模糊系統(tǒng)進行儲存、改正和管理;(2)確定輸入、輸出語言變量及其語言值;(3)確定各語言值的隸屬度函數,包含隸屬度函數的種類與參數;(4)確定模糊規(guī)則;(5)確定各種模糊運算方法,包含模糊推理方法、模糊化方法、去模糊化方法等。135.2利用模糊邏輯工具箱成立模糊推理系統(tǒng)5.2.1模糊推理系統(tǒng)的成立、改正與儲存管理前面談論了模糊推理系統(tǒng)的主要構成部分,即一個模糊推理系統(tǒng)由輸入、輸出語言變量及其隸屬度函數、模糊規(guī)則、模糊推理機和去模糊化方法等各部分構成,在MATLAB模糊邏輯工具箱中,把模糊推理系統(tǒng)的各部分作為一個整體,并以文件形式對模糊推理系統(tǒng)進行成立、改正和儲存等管理功能。表5-1所示為該工具箱供應的有關模糊推理系統(tǒng)管理的函數及其功能。14表2-7模糊推理系統(tǒng)的管理函數函數名功能newfis()創(chuàng)建新的模糊推理系統(tǒng)readfis()從磁盤讀出存儲的模糊推理系統(tǒng)getfis()獲得模糊推理系統(tǒng)的特性數據writefis()保存模糊推理系統(tǒng)showfis()顯示添加注釋了的模糊推理系統(tǒng)setfis()設置模糊推理系統(tǒng)的特性plotfis()圖形顯示模糊推理系統(tǒng)的輸入—輸出特性表5-1模糊推理系統(tǒng)的管理函數151.創(chuàng)立新的模糊推理系統(tǒng)函數newfis( )該函數用于創(chuàng)立一個新的模糊推理系統(tǒng),模糊推理系統(tǒng)的特征可由函數的參數指定,其參數個數可達7個。調用格式為fisMat=newfis(‘fisName’,fisType,andMethod,orMethod,impMethod,aggMethod,defuzzMethod)16例:>>fisMat=newfis(‘mysys’);getfis(fisMat)顯示:Name=mysysType=mamdaniNumInputs=0InLabels=NumOutputs=0OutLabels=NumRules=0AndMethod=minOrMethod=maxImpMethod=minAggMethod=maxDefuzzMethod=centroid172.從磁盤中加載模糊推理系統(tǒng)函數readfis( )調用格式fisMat=readfis(‘filemame’)18比如利用以下命令可加載一個MATLAB自帶的對于“小費”問題的模糊推理系統(tǒng)tipper.fis。>>fisMat=readfis('tipper');getfis(fisMat);結果顯示:Name=tipperType=mamdaniNumInputs=2InLabels=servicefoodNumOutputs=1OutLabels=tipNumRules=3AndMethod=minOrMethod=maxImpMethod=minAggMethod=maxDefuzzMethod=centroid193.獲取模糊推理系統(tǒng)的屬性函數getfis( )利用getfis( )可獲取模糊推理系統(tǒng)的部分或所有特征,格式為getfis(fisMat)getfis(fisMat,’fisPropname’)getfis(fisMat,’varType’,varIndex,’varPropname’);getfis(fisMat,’varType’,varIndex,’mf’,mfIndex)getfis(fisMat,’varType’,varIndex,’mf’,mfIndex,’mfPropname’);20例>>fisMat=readfis('tipper')或>>fisMat=readfis('tipper');getfis(fisMat,'type')>>fisMat=readfis('tipper');getfis(fisMat,'input',1);>>fisMat=readfis('tipper');getfis(fisMat,'input',1,'name')>>fisMat=readfis('tipper');getfis(fisMat,'input',1,'mf',2);>>fisMat=readfis('tipper');getfis(fisMat,'input',1,'mf',2,'name')214.將模糊推理系統(tǒng)以矩陣形式保存在內存中的數據寫入磁盤文件函數writefis( )模糊推理系統(tǒng)在內存中的數據是以矩陣形式儲存的,其對應的矩陣名為fisMat。當需要將模糊推理系統(tǒng)的數據寫入磁盤文件時,即可利用writefis( )函數。其調用格式為writefis(fisMat)writefis(fisMat,’filename’)writefis(fisMat,’filename’,’dialog’)例:>>fisMat=newfis(’tipper’);writefis(fisMat,’my_file’)225.以分行的形式顯示模糊推理系統(tǒng)矩陣的所有屬性函數showfis( )調用格式showfis(fisMat)其中fisMat為模糊推理系統(tǒng)在內存中的矩陣表示。例:>>fisMat=readfis(’tipper’);showfis(fisMat)6.設置模糊推理系統(tǒng)的屬性函數setfis( )調用格式fisMat=setfis(fisMat,’propname’,newprop)fisMat=setfis(fisMat,vartype,varindex,’propname’,newprop)fisMat=setfis(fisMat,vartype,varindex,’mf’,mfindex,’propname’,nemeprop);23該函數能夠有3個、5個或7個輸入參數。例>>fisMat=readfis('tipper');fisMat=setfis(fisMat,'name','eating')或>>fisMat=readfis('tipper');fisMat=setfis(fisMat,'input',1,'name','help')>>fisMat=readfis('tipper');fisMat=setfis(fisMat,'input',1,'mf',2,'name','wretched')247.繪圖表示模糊推理系統(tǒng)的函數plotfis( )該函數的調用格式為plotfis(fisMat)其中,fisMat為模糊推理系統(tǒng)對應的矩陣名稱。例:>>fisMat=readfis('tipper');plotfis(fisMat)8.將Mamdani型模糊推理系統(tǒng)變換成Sugeno型模糊推理系統(tǒng)的函數mam2sug( )函數mam2sug( )可將Mamdani型模糊推理系統(tǒng)變換成零階的Sugeno型模糊推理系統(tǒng)。獲取的Sugeno型模糊推理系統(tǒng)擁有常數隸屬度函數,其常數值由本來Mamdani型系統(tǒng)獲取的隸屬度函數的質心確定,并且其前件不變,該函數的調用格式為sug_fisMat=mam2sug(mam_fisMat)例:>>mam_fisMat=readfis('tipper');sug_fisMat=mam2sug(mam_fisMat)255.2.2模糊語言變量及其語言值在模糊推理系統(tǒng)中,專家的控制知識以模糊規(guī)則形式表示。為直接反應人類自然語言的模糊性特點,模糊規(guī)則的前件和后件中引入語言變量和語言值的看法。語言變量分為輸入語言變量和輸出語言變量,輸入語言變量是對模糊推理系統(tǒng)輸入變量的模糊化描述,平時位于模糊規(guī)則的前件中,輸出語言變量是對模糊推理系統(tǒng)輸出變量的模糊化描述,平時位于模糊規(guī)則的后件中。26語言變量擁有多個語言值,每個語言值對應一個隸屬度函數。語言變量的語言值構成了對輸入和輸出空間的模糊切割,模糊切割的個數即語言值的個數以及語言值對應的隸屬度函數決定了模糊切割的精美化程度。模糊切割的個數也決定了模糊規(guī)則的個數,模糊切割數越多,控制規(guī)則數也越多。所以在設計模糊推理系統(tǒng)時,應在模糊切割的精美程度與控制規(guī)則的復雜性之間獲得折衷。27在MATLAB模糊邏輯工具箱中,供應了向模糊推理系統(tǒng)增加或刪除模糊語言變量及其語言值的函數,如表5-2所示。表5-2增加或刪除模糊語言變量函數函數名功能addvar()添加模糊語言變量rmvar()刪除模糊語言變量281.向模糊推理系統(tǒng)增加語言變量函數addvar( )調用格式fisMat2=addvar(fisMat1,’varType’,’varName’,varBounds)例>>fisMat=newfis('mysys');fisMat=addvar(fisMat,'input','service',[010])292.從模糊推理系統(tǒng)中刪除語言變量rmvar( )調用格式fisMat2=rmvar(fisMat1,'varType',varIndex)當一個模糊語言變量正在被目前的模糊規(guī)則集使用時,則不可以刪除該變量。在一個模糊語言變量被刪除后,MATLAB模糊邏輯工具箱將會自動地對模糊規(guī)則集進行改正,以保證一致性。例>>fisMat=newfis('mysys');fisMat=addvar(fisMat,'input','temperature',[0100]);>>fisMat1=rmvar(fisMat,'input',1)305.2.3模糊語言變量的隸屬度函數每個模糊語言變量擁有多個模糊語言值。模糊語言值的名稱平時擁有必定的含義,如NB(負大)、NM(負中)、NS(負?。E(零)、PS(正小)、PM(正中)、PB(正大)等。每個語言值都對應一個隸屬度函數。隸屬度函數可有兩種描述方式,即數值描述方式和函數描述方式。數值描述方式合用于語言變量的論域為失散的情況,此時隸屬度函數可用向量或表格的形式來表示;對于論域為連續(xù)的狀況,隸屬度函數則采用函數描述方式。31在MATLAB模糊邏輯工具箱中支持的隸屬度函數種類有以下幾種:高斯型、三角型、梯形、鐘型、Sigmoid型、л型以及Z型。利用工具箱中供應的函數能夠成立和計算上述各種種類隸屬度函數。隸屬度函數曲線的形狀決定了對輸入、輸出空間的模糊切割,對模糊推理系統(tǒng)的性能有重要的影響。在MATLAB模糊邏輯工具箱中供應了豐富的隸屬度函數種類的支持,利用工具箱的有關函數能夠方便地對各種隸屬度函數進行成立、改正和刪除等操作,函數如表5-3所示。32表5-3語言變量的隸屬度的函數函數名功能plotmf()繪制隸屬度函數曲線addmf()添加模糊語言變量的隸屬度函數rmmf()刪除隸屬度函數gaussmf()建立高斯型隸屬度函數gauss2mf()建立雙邊高斯型隸屬度函數gbellmf()建立一般的鐘型隸屬度函數pimf()建立型隸屬度函數sigmf()建立sigmiod型的隸屬度函數trapmf()建立梯形隸屬度函數trimf()建立三角型隸屬度函數zmf()建立Z型隸屬度函數mf2mf()隸屬度函數間的參數轉換psigmf()計算兩個sigmiod隸屬度函數之積dsigmf()計算兩個sigmiod隸屬度函數之和331.繪制語言變量的隸屬度曲線函數plotmf( )調用格式[x,mf]=plotmf(fisMat,’varType’,varIndex)2.向模糊推理系統(tǒng)的語言變量增加隸屬度函數addmf( )函數addmf( )只能給模糊推理系統(tǒng)中存在的某一語言變量增加隸屬度函數,而不可以增加到一個不存在的語言變量中。某個語言變量的隸屬度函數(即語言值)依照增加的次序加以編號,第一個增加的隸屬度函數被編為1號,此后挨次遞加。該函數調用格式為fisMat2=addmf(fisMat1,’varType’,varIndex,’mfName’,’mfType’,mfParams)34比如利用以下命令,可得如圖5-2所示的隸屬度函數曲線。>>fisMat=newfis('mysys');>>fisMat=addvar(fisMat,'input','service',[010]);>>fisMat=addmf(fisMat,'input',1,'poor','gaussmf',[1.50]);>>fisMat=addmf(fisMat,'input',1,'good','gaussmf',[1.55]);>>fisMat=addmf(fisMat,'input',1,'excellent','gaussmf',[1.510]);>>plotmf(fisMat,'input',1)353.從模糊推理系統(tǒng)中刪除一個語言變量的某一隸屬度函數rmmf( )當一個隸屬度函數正在被目前模糊推理規(guī)則使用時,則不可以刪除。調用格式為fisMat2=rmmf(fisMat1,’varType’,varIndex,’mf’,mfIndex)

364.成立高斯型隸屬度函數gaussmf( )調用格式y(tǒng)=gaussmf(x,params)y=gaussmf(x,[sigc])其中c決定了函數的中心點,sig決定了函數曲線的寬度σ。高斯型函數的形狀由sig和c兩個參數決定,高斯函數的表達式以下:參數x用于指定變量的論域。例利用以下命令,可成立如圖5-3所示的高斯型隸屬度函數曲線。>>x=0:0.1:10>>y=gaussmf(x,[25]);>>plot(x,y)>>xlabel(‘gaussmf,p=[25]’)375.成立雙邊高斯型隸屬度函數gauss2mf( )調用格式y(tǒng)=gauss2mf(x,params)y=gauss2mf(x,[sig1c1sig2c2])雙邊高斯型函數的曲線由兩其中心點相同的高斯型函數的左、右半邊曲線組合而成,其表達式以下式所示。參數sigl,c1,sig2,c2分別對應左、右半邊高斯函數的寬度與中心點,c2>c1。例利用以下命令,可成立如圖5-4所示的雙邊高斯型隸屬度函數。>>x=0:0.1:10;>>y=gauss2mf(x,[1334]);>>plot(x,y),>>xlabel('gauss2mf,p=[1334]')386.成立一般的鐘形隸屬度函數gbellmf( )調用格式y(tǒng)=gbellmf(x,params)y=gbellmf(x,[abc])其中參數x指定變量的論域范圍,[abc]指定鐘形函數的形狀,鐘形函數的表達式以下:例利用以下命令,可成立如圖5-5所示的鐘形隸屬度函數曲線。>>x=0:0.1:10>>y=gbellmf(x,[246]);>>plot(x,y)>>xlabel(‘gbellmf,p=[246]’)397.成立型隸屬度函數pimf( )型函數是一種鑒于樣條的函數,因為其形狀近似字母而得名。該函數調用格式為:y=pimf(x,params)y=pimf(x,[abcd])其中參數x指定函數的自變量范圍,[abcd]決定函數的形狀,a,b分別對應曲線下部的左右兩個拐點,b和c分別對應曲線上部的左右兩個拐點。例利用以下命令,可成立如圖5-6所示的型隸屬度函數曲線>>x=0:0.1:10;y=pimf(x,[14510]);>>plot(x,y),xlabel(‘pimf,p=[14510]’)408.成立Sigmoid型隸屬度函數sigmf( )調用格式y(tǒng)=sigmf(x,params)y=sigmf(x,[ac])其中參數x用于指定變量的論域范圍,[ac]決定了Sigmoid型函數的形狀,其表達式以下:Sigmoid型函數曲線擁有半開的形狀,因此適于作為“極大”、“極小”等語言值的隸屬度函數。例利用以下命令,可成立如圖5-7所示的sigmoid型隸屬度函數曲線。>>x=0:0.1:10;y=sigmf(x,[24]);>>plot(x,y),xlabel(‘sigmf,p=[24]’)419.成立梯形隸屬度函數trapmf( )調用格式y(tǒng)=trapmf(x,params)y=trapmf(x,[a,b,c,d])其中參數x指定變量的論域范圍,參數a、b、c和d指定梯形隸屬度函數的形狀,其對應的表達式以下:例利用以下命令,可成立如圖5-8所示的梯形隸屬度函數曲線。>>x=0:0.1:10;y=trapmf(x,[1578]);>>plot(x,y),xlabel(‘trapmf,p=[1578]’)4210.成立三角形隸屬度函數trimf( )調用格式y(tǒng)=trimf(x,params)y=trimf(x,[a,b,c])其中參數x指定變量的論域范圍,參數a、b和c指定三角形函數的形狀,其表達式以下:例利用以下命令,可成立如圖5-9所示的三角形隸屬度函數并繪制曲線。>>x=0:0.1:10;y=trimf(x,[368]);>>plot(x,y),xlabel(‘trimf,p=[368]’)4311.成立Z形隸屬度函數曲線函數zmf( )調用格式y(tǒng)=zmf(x,params)y=zmf(x,[a,b,c])Z形函數是一種鑒于樣條插值的函數,兩個參數a和b分別定義樣條插值的起點和終點;參數x指定變量的論域范圍。例利用以下命令,可成立如圖5-10所示的Z形隸屬度函數曲線。>>x=0:0.1:10;>>y=zmf(x,[368]);>>plot(x,y),>>xlabel('trimf,p=[368]')4412.經過兩個Sigmoid型函數的乘積來結構新的隸屬度函數psigmf( )為了獲取更吻合人們習慣的隸屬度函數形狀,能夠利用兩個sigmoid型函數之和或乘積來結構新的隸屬度函數種類,模糊邏輯工具箱中供應了相應的函數,拜見psigmf( )和dsigmf( )。調用格式y(tǒng)=psigmf(x,params)y=psigmf(x,[a1c1a2c2])其中參數al,c1和a2,c2分別用于指定兩個Sigmoid型函數的形狀,參數x指定變量的利用范圍。新的函數表達式以下:45例利用以下命令,由兩個sigmoid型函數的乘積來結構新的隸屬度函數,如圖5-11所示。>>x=0:0.1:10;y=psigmf(x,[23–58]);>>plot(x,y)>>xlabel(‘psigmf,p=[23-58]’)4613.經過計算兩個sigmoid型函數之和來結構新的隸屬度函數dsigmf( )調用格式y(tǒng)=dsigmf(x,params)y=dsigmf(x,[a1,c1,a2,c2])本函數的用法與函數psigmf( )近似,參數a1、c1和a2、c2分別用于指定兩個Sigmoid型函數的形狀,結構獲取的新的隸屬度函數表達式為:例利用以下命令,繪制兩個sigmoid型函數之和的隸屬度函數曲線,如圖5-12所示。>>x=0:0.1:10>>y=dsigmf(x,[5257]);>>plot(x,y)>>xlabel(‘dsigmf,p=[5257]’)4714.進行不同種類隸屬度函數之間的參數變換函數mf2mf( )調用格式outParams=mf2mf(inParams,inType,outType)其中inParams為變換前的隸屬度函數的參數;outParams為變換后的隸屬度函數的參數;inType為變換前的隸屬度函數的種類;outType為變換后的隸屬度函數的種類。該函數將盡量保持兩種種類的隸屬度函數曲線在形狀上的近似,特別是保持隸屬度等于0.5處的點的重合。但不可防止地會拋棄一些信息。所以當再次使用該函數進行反向變換時將無法獲取與本來函數相同的參數。48例利用以下命令,實現(xiàn)鐘型隸屬度函數向三角形隸屬度函數的變換,如圖5-13所示。>>x=0:0.1:5;mfp1=[123];>>mfp2=mf2mf(mfp1,'gbellmf','trimf');>>plot(x,gbellmf(x,mfp1),x,trimf(x,mfp2))4915.隸屬度函數的計算函數fuzarith( )調用格式C=fuzarith(x,A,B,’operator’)其中,x為要計算的隸屬度函數的論域;A,B為隸屬度函數的值;operator為模糊運算符,能夠是sum(加)、sub(減)、prod(乘)和div(除)四種運算中的任一種;C為A,B模糊運算后的隸屬度函數值。例>>x=0:0.1:10;A=trapmf(x,[1368]);B=trimf(x,[479]);>>C=fuzarith(x,A,B,'sum');plot(x,A,'--',x,B,'-',x,C,'x')5016.計算隸屬度函數的值evalmf( )調用格式y(tǒng)=evalmf(x,myParams,’myType’)其中,x為要計算的隸屬度函數的論域;myParams為隸屬度函數的參數值;myType為隸屬度函數的種類;y為隸屬度函數的值。例利用以下命令,可得鐘型隸屬度函數的計算結果曲線,如圖5-14所示。>>x=0:0.1:10;myParams=[246];>>y=evalmf(x,myParams,'gbellmf');>>plot(x,y);xlabel('gbellmf,x=[246]')515.2.4模糊規(guī)則的成立與改正在模糊推理系統(tǒng)中,模糊規(guī)則以模糊語言的形式描述人類的經驗和知識,規(guī)則能否正確地反應人類專家的經驗和知識,能否反對付象的特征,直接決定模糊推理系統(tǒng)的性能。平時模糊規(guī)則的形式是“IF前件THEN后件”,前件由對模糊語言變量的語言值描述構成,如“溫度較高,壓力較低”。在一般的模糊推理系統(tǒng)中,后件由對輸出模糊語言變量的語言值描述構成,但在高木——關野模糊推理系統(tǒng)中,后件將輸出變量表示成輸入量的精確值的組合。模糊規(guī)則的這種形式化表示是吻合人們經過自然語言對很多知識的描述和記憶習慣的。52模糊規(guī)則的成立是結構模糊推理系統(tǒng)的重點。在實質應用中,初步成立的模糊規(guī)則常常難以到達優(yōu)異的成效,一定不斷加以修正和試湊。在模糊規(guī)則的成立修正和試湊過程中,應盡量保證模糊規(guī)則的齊備性和相容性。在MATLAB模糊邏輯工具箱中,供應了有關對模糊規(guī)則成立和操作的函數,如表5-4所示。表5-4模糊規(guī)則成立和改正函數函數名功能addrule()向模糊推理系統(tǒng)添加模糊規(guī)則函數parsrule()解析模糊規(guī)則函數showrule()顯示模糊規(guī)則函數531.向模糊推理系統(tǒng)增加模糊規(guī)則函數addrule( )調用格式fisMat2=addrule(fisMat1,rulelist)其中,參數fisMat1/2為填加規(guī)則前后模糊推理系統(tǒng)對應的矩陣名稱;rulelist以向量的形式給出需要增加的模糊規(guī)則,該向量的格式有嚴格的要求,假如模糊推理系統(tǒng)有m個輸入語言變量和n個輸出語言變量,則向量rulelist的列數一定為m+n+2,而行數任意。在rulelist的每一行中,前m個數字表示各輸入變量對應的隸屬度函數的編號,此后的n個數字表示輸出變量對應的隸屬度函數的編號,第m+n+1個數字是該規(guī)則合用的權重,權重的值在0到1之間,一般設定為l;第m+n+2個數字為0或1兩個值之一,假如為1則表示模糊規(guī)則前件的各語言變量之間是“與”的關系,假如是0則表示是“或”的關系。54比如系統(tǒng)fisMat有兩個輸入和一個輸出,其中兩條模糊規(guī)則分別為:IFxisX1andyisY1THENzisZ1IFxisX1andyisY2THENzisZ2則可采用以下的MATLAB命令來實現(xiàn)以上兩條模糊規(guī)則。>>rulelist=[11111;12211];>>fisMat=addrule(fisMat,rulelist)55例5-1假定一單輸入單輸出系統(tǒng),輸入為表征飯店侍從服務利害的值(010),輸出為客人付給的小費(030)。其中規(guī)則有以下三條:IF服務差THEN小費低IF服務好THEN小費中等IF服務很好THEN小費高適當選擇服務和小費的隸屬度函數后,設計一鑒于Mamdani模型的模糊推理系統(tǒng),并繪制輸入/輸出曲線。解利用以下程序,可得如圖5-15所示的隸屬度函數的設定與輸入/輸出曲線。%ex5_1.m56由圖5-15可見,因為隸屬度函數的適合選擇,模糊系統(tǒng)的輸出是輸入的嚴格遞加函數,也就是說,付給客人的小費是跟著服務質量的提高而增加。當隸屬度函數的選用不可以保證相鄰模糊量的交點大于0.5時(如將以上程序中服務隸屬度函數的參數1.8改正為1.0),輸出將不是輸入的嚴格遞加函數,這時小費有時可能會跟著服務質量的提高而減少。57例5-2假定一單輸入單輸出系統(tǒng),輸入x[0,15]模糊化成三級:小、中和大;輸出y[0,15]由以下三條規(guī)則確定:IFxis小THENy=xIFxis中THENy=-0.5x+9IFxis大THENy=2x-18.設計一鑒于Sugeno模型的模糊推理系統(tǒng),并繪制輸入/輸出曲線。解在利用MATLAB設計Sugeno模糊系統(tǒng)時,其步驟仍舊與成立Mamdani模糊系統(tǒng)相像,不過輸出變量值的隸屬度的看法被模糊規(guī)則中的線性函數或是常數取代了,所以推理的過程就省略蘊涵運算以及不同模糊規(guī)則之間結果的合成運算,以致在后邊介紹的基本模糊推理系統(tǒng)編寫器(fuzzy)環(huán)境里的“Implication”和“Aggregation”算法選擇項都不可以使用。58但是這里對于輸出仍舊會用到“隸屬度函數”的提法,不過對于Sugeno型系統(tǒng)輸出變量的“隸屬度函數”不是平時模糊邏輯意義中的隸屬度函數,而是輸出變量取值對于輸入變量的線性或是常值函數(暫時將它們看作單點模糊集,所以也可將系統(tǒng)的輸出看作模糊量,其隸屬度函數分別采用constant和linear)。這樣也就使的輸出變量的范圍無法直接確定(論域不可以起初確定),因此在MATLAB中對于Sugeno型系統(tǒng)輸出變量的范圍(Rang)指定是沒有作用的。利用以下MATLAB程序,可得如圖5-16所示的輸入隸屬度函數的設定與輸入/輸出曲線。%ex5_2.m59由圖5-16可見,因為隸屬度函數的適合選擇,模糊系統(tǒng)的輸出曲線是圓滑的。從以上的輸入輸出關系圖上能夠清楚地看到,經過Sugeno方法運算后,輸入輸出的關系由本來給定的三個線性函數內插為一條圓滑的輸入輸出曲線,這也說了然Sugeno系統(tǒng)是一種將線性方法用于非線性系統(tǒng)的簡單有效的手段。這一點正是它被寬泛使用在諸如系統(tǒng)控制、系統(tǒng)建模等領域的一個重要原因。602.分析模糊規(guī)則函數parsrule( )函數parsrule( )對給定的模糊語言規(guī)則進行分析并增加到模糊推理系統(tǒng)矩陣中,其調用格式fisMat2=parsrule(fisMat1,txtRuleList,ruleFormat,lang)例:>>fisMat1=readfis('tipper');ruleTxt='ifserviceispoorthentipisgenerous';>>fisMat2=parsrule(fisMat1,ruleTxt,'verbose');showrule(fisMat2)613.顯示模糊規(guī)則函數showrule( )調用格式:showrule(fisMat,indexList,format,lang)本函數用于顯示指定的模糊推理系統(tǒng)的模糊規(guī)則,模糊規(guī)則能夠按三種方式顯示,即:詳述方式(verbose)、符號方式(symbolic)和隸屬度函數編號方式(membershipfunctionindexreferencing)。第一個參數是模糊推理系統(tǒng)矩陣的名稱,第二個參數是規(guī)則編號,第三個參數是規(guī)則顯示方式。規(guī)則編號能夠以向量形式指定多個規(guī)則。例>>fisMat=readfis('tipper');showrule(fisMat,1)>>fisMat=readfis('tipper');showrule(fisMat,2)>>fisMat=readfis('tipper');showrule(fisMat,[31],'symbolic')>>fisMat=readfis('tipper');showrule(fisMat,1:3,'indexed')625.2.5模糊推理計算與去模糊化在成立好模糊語言變量及其隸屬度的值,并結構達成模糊規(guī)則以后,即可執(zhí)行模糊推理計算了。模糊推理的執(zhí)行結果與模糊包含操作的定義、推理合成規(guī)則、模糊規(guī)則前件部分的連結詞“and”的操作定義等有關,因此有多種不同的算法。目前常用的模糊推理合成規(guī)則是“極大一極小”合成規(guī)則,設R表示規(guī)則:“X為AY為B”表達的模糊關系,則當X為A’時,依照“極大一極小”規(guī)則進行模糊推理的結論B’計算以下:63鑒于模糊包含操作的不同定義,人們提出了多種模糊推理算法,其中較為常用的是Mamdani模糊推理算法和Larsen模糊推理算法。此外,對于輸出為精確量的一類特別模糊邏輯系統(tǒng)——Takagi-Sugeno型模糊推理系統(tǒng),采用了將模糊推理與去模糊化聯(lián)合的運算操作。與其余種類的模糊推理方法不同,Takagi——Sugeno型模糊推理將去模糊化也聯(lián)合到模糊推理中,其輸出為精確量。這是由Takagi——Sugeno型模糊規(guī)則的形式所決定的,在Sugeno型模糊規(guī)則的后件部分將輸出量表示為輸入量的線性組合,零階Sugeno型模糊規(guī)則擁有以下形式。IFx為A且y為BTHENz=k其中,k為常數。64而一階Sugeno型模糊規(guī)則的形式以下:IFx為A且y為BTHENz=p*x+q*y+r式中p,q,r均為常數。對于一個由n條規(guī)則構成的Sugeno型模糊推理系統(tǒng),設每條規(guī)則擁有下面的形式:Ri:IFx為Ai且y為BiTHENz=zi(i=1,2,…,n)則系統(tǒng)總的輸出用下式計算:65在MATLAB模糊邏輯工具箱中供應了有關對模糊推理計算與去模糊化的函數,如表5-5所示。表5-5模糊推理計算與去模糊化的函數函數名功能evalfis()執(zhí)行模糊推理計算函數defuzz()執(zhí)行輸出去模糊化函數gensurf()生成模糊推理系統(tǒng)的輸出曲面并顯示函數661.執(zhí)行模糊推理計算函數evalfis( )該函數用于計算已知模糊系統(tǒng)在給定輸入變量時的輸出值,其調用格式output=evalfis(input,fisMat)67例5-3某一工業(yè)過程要依據測量的溫度和壓力來確定閥門開啟的角度。假定輸入溫度[0,30]]模糊化成兩級:冷和熱;壓力[0,3]模糊化成兩級:高和正常;輸出閥門開啟角度的增量[-10,10]模糊化成三級:正、負和零。模糊規(guī)則為:IF溫度is冷and壓力is高THEN閥門角度的增量is正IF溫度is熱and壓力is高THEN閥門角度的增量is負IF壓力is正常THEN閥門角度的增量is零適當選擇隸屬度函數后,設計一鑒于Mamdani模型的模糊推理系統(tǒng),計算當溫度和壓力分別為5和1.5以及11和2時閥門開啟的角度的增量,并繪制輸入/輸出曲面圖。解利用以下MATLAB程序,可得以下結果和如圖5-17所示的系統(tǒng)輸入/輸出曲面圖。%ex5_3.m68執(zhí)行結果:out=2.50003.3921由以上結果可知,當溫度和壓力分別為5和1.5時,閥門開啟角度的增量為2.5;溫度和壓力分別為11和2時,角度的增量為3.3921。692.執(zhí)行輸出去模糊化函數defuzz( )調用格式:out=defuzz(x,mf,type)其中,參數x是變量的論域范圍;mf為待去模糊化的模糊會合;type是去模糊化的方法,去模糊化的方法包含5種,即centroid(面積中心法)、bisector(面積均分法)、mom(均勻最大隸屬度方法)、som(最大隸屬度中的取最小值方法)、lom(最大隸屬度中的取最大值方法)。例:>>x=-10:0.1:10;mf=trapmf(x,[-10-8-47]);xx=defuzz(x,mf,’centroid’)輸出結果:xx=-3.2857703.生成模糊推理系統(tǒng)的輸出曲面并顯示函數gensurf( )調用格式gensurf(fisMat)gensurf(fisMat,inputs,outputs)gensurf(fisMat,inputs,outputs,grids,refinput)其中,參數fisMat為模糊推理系統(tǒng)對應的矩陣;inputs為模糊推理系統(tǒng)的一個或兩個輸入語言變量的編號;output為模糊系統(tǒng)的輸出語言變量的編號;參數grids用干指定x和y坐標方向的網絡數目;當系統(tǒng)輸入變量多于兩個時,參數refinput用于指定保持不變的輸入變量。71因為gensurf( )函數只能繪制二維平面圖或三維曲面圖,當系統(tǒng)的輸入參數多于兩個時,函數gensurf(fisMat)(僅有一個參數fisMat)生成由模糊推理系統(tǒng)的前兩個輸入和第一個輸出構成的三維曲面,不然應指明繪制哪兩個輸入和哪一個輸出的三維曲面。例針對兩輸入單輸出的模糊推理系統(tǒng)tipper,函數gensurf( )有以下幾種使用方法:>>fisMat=readfis('tipper');gensurf(fisMat)或>>fisMat=readfis('tipper');gensurf(fisMat,[12],1)>>fisMat=readfis('tipper');gensurf(fisMat,1,1)>>fisMat=readfis('tipper');gensurf(fisMat,2,1)725.3MATLAB模糊邏輯工具箱的圖形用戶界面前面介紹了模糊邏輯工具箱中有關結構模糊推理系統(tǒng)的函數,這些函數都是直接在MATLAB命令行窗口執(zhí)行并顯示結果的。為了進一步方便用戶,模糊邏輯工具箱供了一套用于結構模糊推理系統(tǒng)的圖形用戶界面,它擁有以下五大功能。735.3.1基本模糊推理系統(tǒng)編寫器(Fuzzy)基本模糊推理系統(tǒng)編寫器供應了利用圖形界面(GUI)對模糊系統(tǒng)的高層屬性的編寫、改正功能,這些屬性包含輸入、輸出語言變量的個數和去模糊化方法等。用戶在基本模糊編寫器中能夠經過菜單項選擇擇激活其余幾個圖形界面編寫器,如隸屬度函數編寫器(mfedit)、模糊規(guī)則編寫器(ruleedit)等。74在MATLAB命令窗口中,能夠用以下兩種方法啟動基本模糊推理系統(tǒng)編寫器FISEditer:1)在MATLAB的命令窗口中直接鍵入fuzzy命令;2)第一利用MATLAB左下角的StartToolboxesFuzzyLogic命令,打開模糊邏輯系統(tǒng)工具箱菜單窗口。而后利用鼠標雙擊模糊邏輯系統(tǒng)(FuzzyLogic)中的FISEditorViewer項。75在以上兩種方式啟動下,基本模糊推理系統(tǒng)編寫器的圖形界面如圖5-18所示。圖5-18基本模糊推理系統(tǒng)編寫器圖形界面76從圖5-18中能夠看到,在窗口上半部以圖形框的形式列出了模糊推理系統(tǒng)的基本構成部分,即輸入模糊變量(input1)、模糊規(guī)則(Mamdani型或Sugeno型)和輸出模糊變量(output1)。經過鼠標雙擊上述圖形框,能夠激活隸屬度函數編寫器和模糊規(guī)則編寫器等相應的編寫窗口。在窗口下半部分的右邊,列出了目前選定的模糊語言變量(CurrentVariable)的名稱、種類及其論域范圍。窗口的下半部分的左邊列出了模糊推理系統(tǒng)的名稱(FISName)、種類(FISType)和一些基本屬性,包含“與”運算(Andmethod)、“或”運算(Ormethed)、包含運算(Implication)、模糊規(guī)則的綜合運算(Aggregation)以及去模糊化(Defuzzification)等。77用戶只需用鼠標即可設定相應的屬性。其中“與”運算(Andmethod)可為其選擇min(最小)、prod(乘積)或custom(自定義)運算;“或”運算(Ormethed)可為其選擇max(最大)、probor(概率方法)或custom運算;包含運算(Implication)可為其選擇min、prod或custom運算,但不合用于Sugeno型的模糊推理;模糊規(guī)則的綜合運算(Aggregation)可為其選擇max、sum(乞降)、probor或custom運算,但不合用于Sugeno型的模糊推理;去模糊化(Defuzzification)對Mamdani型模糊推理系統(tǒng),可為其選擇centroid(地區(qū)重心法)、bisector(地區(qū)均分法)、mom(極大均勻法)、som(極大最小法)、lom(極大最大法)或custom;對于Sugeno型模糊推理系統(tǒng),可為其選擇wtaver(加權均勻)或wtsum(加權乞降)。78在圖5-18中,模糊推理系統(tǒng)的基本屬性默認設定為:“與”運算采用極小運算(min),“或”運算采用極大運算(max),模糊包含采用極小運算(min),模糊規(guī)則綜合采用極大運算(max),去模糊化采用重心法(centroid)。791.文件(FIIe)菜單文件菜單的主要功能包含:·NewMamdaniFIS——新建Mamdani型模糊推理系統(tǒng);·NewSugenoFIS——新建Sugeno型模糊推理系統(tǒng);·ImportFromWorkspace——從工作空間加載一個模糊推理系統(tǒng);·ImportFromFile——從磁盤文件加載一個模糊推理系統(tǒng);·ExporttoWorkspace—將目前的模糊推理系統(tǒng)保存到工作空間;·ExporttoFile——將目前的模糊推理系統(tǒng)保存到磁盤文件;·Print——打印模糊推理系統(tǒng)的信息;·CloseWindow——封閉窗口。802.編寫(Edit)菜單編寫菜單的功能包含:·Undot——撤消近來的操作;·AddVariable...Input——增加輸入語言變量;·AddVariable...Output—一增加輸出語言變量;·RemoveSelectedVariable——刪除所選語言變量;·AddMFs——在目前變量中增加系統(tǒng)所供應的隸屬度函數;·AddCustomMF—一在目前變量中增加用戶自定義的隸屬度函數(.m文件);·RemoveSelectedMF——刪除所選隸屬度函數;·RemoveAllMFs——刪除目前變量的所有隸屬度函數;·MembershipFunctions——打開隸屬度函數編寫器(Mfedit);·Rules——打開模糊規(guī)則編寫器(Ruleedit);·FISProperties——打開模糊推理系統(tǒng)編寫器(Fuzzy)。813.視圖(View)菜單視圖菜單的功能包含:·Rules——打開模糊規(guī)則閱讀器(Ruleview);·Surface——打開模糊系統(tǒng)輸入輸出曲面視圖(Surfview)。825.3.2隸屬度函數編寫器(Mfedit)在MATLAB命令窗口鍵入mfedit或在基本模糊推理系統(tǒng)編寫器中選擇編寫隸屬度函數菜單(Edit/MembershipFunctions),都可激活隸屬度函數編寫器。在該編寫器中,供應了對輸入輸出語言變量各語言值的隸屬度函數種類、參數進行編寫、改正的圖形界面工具,其界面如圖5-19所示。83在該圖形界面中,窗口上半部分為隸屬度函數的圖形顯示,下半部分為隸屬度函數的參數設定界面,包含語言變量的名稱、論域和隸屬度函數的名稱、種類和參數。在菜單部分,文件菜單和視圖菜單的功能與模糊推理系統(tǒng)編寫器的文件功能近似。編寫菜單的功能包含增加隸屬度函數、增加定制的隸屬度函數以及刪除隸屬度函數等。845.3.3模糊規(guī)則編寫器(Ruleedit)在MATLAB命令窗口鍵入ruleedit或在基本模糊推理系統(tǒng)編寫器中選擇編寫模糊規(guī)則菜單(Edit/Rules),均可激活模糊規(guī)則編寫器。在模糊規(guī)則編寫器中,供應了增加、改正和刪除模糊規(guī)則的圖形界面,如圖5-20所示。85在模糊規(guī)則編寫器中供應了一個文本編寫窗口,用于規(guī)則的輸入和改正。模糊規(guī)則的形式可有三種,即語言型(Verbose)、符號型(Simbolic)以及索引型(Indexed)。在窗口的下部有一個下拉列表框,供用戶選擇某一規(guī)則種類。為利用規(guī)則編寫器成立規(guī)則,第一應定義該編寫器使用的所有輸入和輸出變量(系統(tǒng)自動地將在該編寫器中定義的輸入/輸出變量顯示在窗口的左下部),而后在窗口上選擇相應的輸入/輸出變量(以及能否加否定詞not)和不同輸入變量之間的連結關系(or或則and)以及權重weight的值(默認值為1),最后單擊[Addrule]按鈕,即可將此規(guī)則顯示在編寫器的顯示地區(qū)中。模糊

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論