智能控制講義第六章Matlab在模糊控制中的應(yīng)用_第1頁
智能控制講義第六章Matlab在模糊控制中的應(yīng)用_第2頁
智能控制講義第六章Matlab在模糊控制中的應(yīng)用_第3頁
智能控制講義第六章Matlab在模糊控制中的應(yīng)用_第4頁
智能控制講義第六章Matlab在模糊控制中的應(yīng)用_第5頁
已閱讀5頁,還剩41頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、第6章 Matlab在模糊控制中的應(yīng)用Matlab(是“Matrix Laboratory”的縮寫)是由美國Mathworks公司于1984年正式推出的一套高性能的科學(xué)計(jì)算軟件。針對模糊邏輯尤其是模糊控制的迅速推廣應(yīng)用,MathWork公司在其MATLAB版中添加了Fuzzy Logic工具箱。該工具箱由長期從事模糊邏輯和模糊控制研究與開發(fā)工作的有關(guān)專家和技術(shù)人員編制。MATLAB Fuzzy Logic 工具箱以其功能強(qiáng)大和方便易用的特點(diǎn)得到了用戶的廣泛歡迎。模糊邏輯的創(chuàng)始人Zadeh教授稱贊該工具箱“在各方面都給人以深刻的印象,使模糊邏輯成為智能系統(tǒng)的概念與設(shè)計(jì)的有效工具”。在本章中,以M

2、atlab6.5為開發(fā)環(huán)境,基于模糊控制工具箱(Fuzzy Logic Toolbox),通過一些簡單直觀的例子,對模糊控制系統(tǒng)進(jìn)行分析、設(shè)計(jì)與研究,并通過對部分例子的詳細(xì)說明,使讀者能夠初步掌握模糊邏輯工具箱的使用。6.1 模糊邏輯工具箱函數(shù)一、模糊邏輯工具箱函數(shù)簡介Matlab的模糊邏輯工具箱函數(shù)為模糊控制系統(tǒng)的分析與設(shè)計(jì)提供了許多工具箱函數(shù),它們可按主題分為如下幾大類:GUI(圖形用戶界面)工具、隸屬度函數(shù)、FIS(模糊推理系統(tǒng))數(shù)據(jù)結(jié)構(gòu)管理、先進(jìn)技術(shù)、Simulink仿真模塊、模糊系統(tǒng)演示程序、其它函數(shù)。以函數(shù)名稱與對應(yīng)的功能格式分別用表6-16-7表示。表6-1 GUI(圖形用戶界面

3、)工具 函 數(shù)功 能 函 數(shù)功 能anfiseditfuzzymfedit打開ANFIS編輯器的GUI調(diào)用基本的FIS編輯器隸屬度函數(shù)編輯器ruleeditruleviewsurfview規(guī)則編輯器和解析器規(guī)則觀察器和模糊推理方框圖輸出曲面觀察器表6-2 隸屬度函數(shù) 函 數(shù) 功 能 函 數(shù) 功 能dsigmfgauss2mfgaussmfgbellmfpimf 由兩個(gè)Sigmoid型隸屬度函數(shù)之差構(gòu)成的隸屬度函數(shù) 聯(lián)合高斯型隸屬度函數(shù) 高斯型隸屬度函數(shù) 廣義鐘型隸屬度函數(shù) 型隸屬度函數(shù)psigmfsigmfsmftrapmftrimfzmf 由兩個(gè)Sigmoid型隸屬度函數(shù)的積構(gòu)成的隸屬度函數(shù)

4、 Sigmoid型隸屬度函數(shù) S 型隸屬度函數(shù) 梯型隸屬度函數(shù) 三角形型隸屬度函數(shù) Z型隸屬度函數(shù)表6-3 先進(jìn)技術(shù) 函 數(shù)功 能 函 數(shù)功 能anfisfcmgenfis1Sugeno型FIS的訓(xùn)練程序模糊C均值聚類不使用數(shù)據(jù)聚類的方法從數(shù)據(jù)中生成FIS結(jié)構(gòu)genfis2subclust使用減法聚類的方法從數(shù)據(jù)中生成FIS結(jié)構(gòu)用減法聚類的方法尋找聚類中心表6-4 FIS數(shù)據(jù)結(jié)構(gòu)管理 函 數(shù) 功 能 函 數(shù) 功 能addmfaddruleaddvardefuzzevalfisevalmfgensurfgetfismf2mfnewfis1 在FIS中添加隸屬度函數(shù) 在FIS中添加規(guī)則 在FIS中

5、添加變量 對隸屬度函數(shù)進(jìn)行反模糊化 完成模糊推理計(jì)算 通用隸屬度函數(shù)的計(jì)算 生成FIS輸出曲面 獲取模糊系統(tǒng)的特性 在兩個(gè)隸屬度函數(shù)之間進(jìn)行參數(shù)轉(zhuǎn)換 建立新的FISparsruleplotfispiotmfreadfisrmmfrevarsetfisshowfisshoerulewritefis模糊規(guī)則解析繪圖表示FIS繪制給定變量的所有隸屬度函數(shù)從磁盤中裝入FIS從FIS中刪除某一變量的某一隸屬度函數(shù)從FIS中刪除某一變量設(shè)置模糊系統(tǒng)的屬性以分行的形式顯示FIS結(jié)構(gòu)的所有屬性顯示FIS的規(guī)則將FIS保存到磁盤中表6-5 Simulink仿真模塊 函 數(shù)功 能 函 數(shù)功 能fuzblockSi

6、mulink模糊邏輯控制器庫sffis用于Simulink的模糊推理S-函數(shù)表6-6 其它函數(shù) 函 數(shù)功 能 函 數(shù)功 能convertfisfindclusterfuzarithFIS結(jié)構(gòu)的版本變換模糊C均值和減法聚類交換GUI完成模糊算術(shù)運(yùn)算mam2sugfuzdemos將Mamdanni型的FIS變換成Sugeno型的FIS 模糊邏輯工具箱演示程序列表表6-7 模糊系統(tǒng)演示程序 函 數(shù)功 能 函 數(shù)功 能defuzzdmfcdemogasdemojugglerinvkineirsfcm去模糊方法FCM聚類方法演示(二維)使用減法聚類的ANFIS演示魔球演示機(jī)械臂的倒置FCM聚類演示(四維

7、)noiedmslbbslcpsltanksltankrulesltbu自適應(yīng)噪聲消除棒球控制倒立擺控制水位控制帶觀測器的水位控制卡車倒車控制下面主要介紹GUI(圖形用戶界面)工具、隸屬度函數(shù)、FIS數(shù)據(jù)結(jié)構(gòu)管理這三類模糊邏輯工具箱的一些函數(shù)。二、有關(guān)GUI(圖形用戶界面)的工具箱函數(shù) 1. anfisedit 功能:打開ANFIS編輯器的GUI。 格式:anfisedit(a) anfisedit(a) anfisedit 界面:anfisedit函數(shù)打開ANFIS編輯器的GUI如圖6-1所示。圖6-1 ANFIS編輯器的GUI 說明:利用anfisedit函數(shù)打開ANFIS編輯器的GUI,

8、從中可裝入數(shù)據(jù)集合并訓(xùn)練ANFIS。利用anfisedit('a')可從磁盤中裝入名為a.fis的FIS結(jié)構(gòu)文件,并打開ANFIS編輯器的GUI。利用anfisedit(a)可按同樣方式打開FIS結(jié)構(gòu)變量a(只是此時(shí)的a保存在工作空間中)。 菜單項(xiàng):(1)File菜單下各子菜單 NEW FIS:建立新的FIS系統(tǒng),可選擇為Mamdani型的或者是Sugeno型的FIS系統(tǒng)。此時(shí)默認(rèn)的文件名為Untitled。Import from workspace:從工作空間中裝入制定的FIS結(jié)構(gòu)變量。Import from disk:從磁盤中將指定的 .fis文件裝入系統(tǒng)。Export t

9、o workspace:將系統(tǒng)保存到工作空間指定的FIS結(jié)構(gòu)變量中。Export to disk:將當(dāng)前系統(tǒng)以自己指定的命名保存到磁盤中。Print:打印指定的系統(tǒng)內(nèi)容。Close:關(guān)閉GUI窗口。(2)Edit菜單項(xiàng)下各子菜單 Undo:撤銷最近的操作。 FIS properties:打開FIS編輯器。 Membership functions:打開隸屬度函數(shù)編輯器。 Rules:打開規(guī)則編輯器。(3)View菜單下各子菜單 Rules:打開規(guī)則編輯器。 Surface:打開曲面觀測器。 2. fuzzy 功能:調(diào)用基本的FIS編輯器。 格式:fuzzy fuzzy(fismat) 界面:f

10、uzzy函數(shù)打開FIS編輯器的GUI如圖6-2所示。 圖6-2 基本的FIS編輯器說明:FIS編輯器可讓用戶方便的創(chuàng)建或修改FIS(模糊推理系統(tǒng))的高級特性,如輸入、輸出變量的個(gè)數(shù)、反模糊化方法等。FIS編輯器是FIS的高級顯示,它允許用戶調(diào)用各種其他的編輯器來進(jìn)行FIS操作,這種接口為訪問更高級的編輯器提供了方便。FIS編輯器主要包括如下幾大部分:圖表:包括輸入、輸出和中心模糊規(guī)則處理器三大部分。點(diǎn)擊輸入、輸出變量框時(shí)所選框?yàn)楫?dāng)前變量,當(dāng)前變量所對應(yīng)的框?yàn)橐粋€(gè)紅色加亮的框,此時(shí)可在相應(yīng)的Name文本編輯欄中對變量進(jìn)行命名或?qū)ψ儍擅M(jìn)行修改。還可以通過Edit菜單下的Add Variable來

11、增加輸入或輸出變量,對于所選得當(dāng)前變量,可以用鍵盤上的Delete鍵直接刪除,也可以用Edit菜單下的Remove Selected Variable進(jìn)行刪除。雙擊其中的1個(gè)變量,可進(jìn)入隸屬度函數(shù)編輯器。雙擊模糊規(guī)則處理器(輸入、輸出變量框之間的那個(gè)方框)可進(jìn)入規(guī)則編輯器。當(dāng)規(guī)則框中沒有規(guī)則時(shí),輸入、輸出變量框與規(guī)則處理器框之間相連的線為虛線,有規(guī)則后變?yōu)閷?shí)線。推理方法下拉式菜單由5個(gè)下拉式菜單可用于改變模糊推理過程的5種基本推理方法:(1) And method(與方法):可為其選擇min(最小)、prod(乘積)或Custom(自定義)運(yùn)算。(2) Or method(或方法):可以選擇m

12、ax(最大)、probor(概率方法)或Custom運(yùn)算。(3)Implication(蘊(yùn)含):可以選擇min、prod或Custom運(yùn)算,此方法不適應(yīng)于Sugeno型的模糊推理。(4)Aggregation(集結(jié)):可以選擇max、sum、probor或Custom運(yùn)算,此方法不適應(yīng)于Sugeno型的模糊推理。(5)Defuzzication(反模糊化):對Mamdani型模糊推理,可以選擇centroid(區(qū)域重心法)、bisector(區(qū)域等分法)、mom(極大平均法)、som(極大最小法)、lom(極大最大法)或Custom;對Sugeno型的模糊推理,可以選擇wtaver(加權(quán)平均)

13、或stsum(加權(quán)求和)。 菜單項(xiàng): (1) File菜單下的子菜單:與ANFIS編輯器中File菜單相同. (2) Edit菜單下的子菜單: Undo:撤銷最近的操作。 Add Input Variable:在當(dāng)前系統(tǒng)中增加1個(gè)輸入變量。 Add Output Variable:在當(dāng)前系統(tǒng)中增加1個(gè)輸出變量。 Remove Selected Variable:刪除選中的變量。 Membership functions:打開隸屬度函數(shù)編輯器。 Rules:打開規(guī)則編輯器。 3. mfedit 功能:隸屬度函數(shù)編輯器。 格式:mfedit mfedit('a') mfedit(a

14、)界面:mfedit函數(shù)打開MF編輯器的GUI如圖6-3所示。圖6-3 隸屬度函數(shù)編輯器說明:mfedit可用于打開隸屬度函數(shù)編輯器;mfedit(a)可打開隸屬度函數(shù)編輯器,其中包含文件a.fis的隸屬度函數(shù),通過編輯器可對其進(jìn)行修改;mfedit(a)可打開保存在工作空間變量a中的FIS結(jié)構(gòu)。對于每個(gè)隸屬度函數(shù),我們可修改其名稱、類型及其參數(shù)。在隸屬度函數(shù)編輯器中有11種內(nèi)部的隸屬度函數(shù)可供選擇,當(dāng)然也可以建立用戶自定義的隸屬度函數(shù)。隸屬度函數(shù)編輯器主要包括以下內(nèi)容:圖表:在窗口左上角的FIS Variables標(biāo)題下選擇變量圖標(biāo),此時(shí)在圖形區(qū)域顯示出相應(yīng)的隸屬度函數(shù),點(diǎn)擊圖形區(qū)域中的曲線

15、可選擇隸屬度函數(shù)。隸屬度函數(shù)種類下拉式菜單:右下角組合框中Type標(biāo)簽的右面有一個(gè)下拉式菜單,其中有11種內(nèi)部的隸屬度函數(shù)可供選擇。系統(tǒng)也提供了安裝用戶自定義隸屬度函數(shù)的選項(xiàng)。菜單項(xiàng):(1)File 菜單下的子菜單:與ANFIS編輯器中File菜單相同。(2)Edit菜單下的子菜單: Undo:撤銷最近的操作。 Add Mfs:在當(dāng)前變量中添加隸屬度函數(shù)。 Add Custom Mfs:在當(dāng)前變量中添加自定義的隸屬度函數(shù)。 Remove Selected Mf:刪除選中的隸屬度函數(shù)。 Remove All Mfs:刪除當(dāng)前變量的所有隸屬度函數(shù)。 FIS Prolperties:打開FIS編輯器

16、。 Rules:打開規(guī)則編輯器。 (3)View菜單下的子菜單:與ANFIS編輯器中的View菜單項(xiàng)相同。 4. ruleedit 功能:規(guī)則編輯器和解析器。 格式:ruleedit(a) ruleedit(a) 界面:ruleedit函數(shù)打開規(guī)則編輯器的GUI如圖6-4所示。圖6-4 規(guī)則編輯器和解析器說明:利用ruleedit(a)可打開規(guī)則編輯器,從中可以查看或修改文件a.fis所對應(yīng)的FIS結(jié)構(gòu)中的規(guī)則。Ruleedit(a)格式可用來打開在工作空間中已存在的名為a的FIS結(jié)構(gòu)所對應(yīng)的規(guī)則編輯器。利用規(guī)則編輯器建立規(guī)則,首先應(yīng)定義FIS使用的所有輸入和輸出變量,然后利用輸入和輸出變量的

17、列表框和復(fù)選框進(jìn)行選擇,最后選擇相應(yīng)的聯(lián)結(jié)方式及權(quán)值。菜單項(xiàng): (1) File菜單下的子菜單與ANFIS編輯器中File菜單相同。 (2) Edit菜單下的子菜單 Undo: 撤銷最近的操作。 FIS Properties: 打開FIS編輯器。 Membership functions: 打開隸屬度函數(shù)編輯器。 (3) View菜單下的子菜單與ANFIS 編輯器中的View菜單項(xiàng)相同。 (4) Options菜單下的子菜單 Language: 可選擇不同的語言,有English(英語)、Deutsch(德語)和Francais(法語)3種。 Format: 格式選擇: Verbose(詳細(xì))

18、:使用單詞“if”、“then”、“and”或“or”等建立句子表達(dá)。例如,規(guī)則“if A and B then C”。 Symbolic(符號):利用邏輯推理符號表達(dá)。例如下面的規(guī)則可表達(dá)為:“AB>C”。 Indexed(編號):用編號和模糊推理框圖。 格式: ruleview(a) ruleview(a)界面: ruleview函數(shù)打開規(guī)則觀測器的GUI如圖6-5所示。說明: 利用ruleview(a)可打開文件a.fis規(guī)則善的規(guī)則觀測器,從中可對a.fis文件的FIS結(jié)構(gòu)畫出模糊推理框圖,通常可顯示整個(gè)推理框圖,這時(shí)改變各變量的輸入值,可以立即得到系統(tǒng)重新調(diào)整后的情況,并計(jì)算出

19、新的輸出。ruleview(a)用于打開工作空間中已存在的變量a規(guī)則觀測器。圖6-5 規(guī)則觀測器和模糊推理框圖菜單項(xiàng):(1) File菜單下的子菜單與ANFIS編輯器中File菜單相同。(2) Edit菜單下的子菜單 Undo:撤銷最近的操作。 FIS Properties:打開FIS編輯器。 Membership functions:打開隸屬度函數(shù)編輯器。 Rules:打開規(guī)則編輯器。(3) View菜單下的子菜單 Surfview:打開曲面觀測器。6. srufview 功能:輸出曲面觀測器。 格式: surfview(a) 界面:surfview函數(shù)打開曲面觀測器的GUI如圖6-6所示。

20、圖6-6 輸出曲面觀測器 說明:利用surfview(a)可打開輸出曲面觀測器,從中可查看保存在文件a.fis中的單輸入或雙輸入FIS結(jié)構(gòu)的輸出曲面。由于它不會(huì)改變推理系統(tǒng)及相應(yīng)的FIS結(jié)構(gòu)。因此它是一個(gè)只讀編輯器。利用X、Y、Z軸對應(yīng)的3個(gè)下拉式菜單,可以選擇輸入、輸出坐標(biāo)軸的變量。選擇Evaluate按鈕可完成計(jì)算并繪制出輸出曲面。(1) File菜單下的子菜單與ANFIS編輯器中File菜單相同。(2) Edit菜單下的子菜單 Undo: 撤銷最近的操作。 FIS Properties:打開FIS編輯器。 Membership functions:打開隸屬度函數(shù)編輯器。 Rules:打開

21、規(guī)則編輯器。(3) View菜單下的子菜單 Ruleview:打開規(guī)則觀測器。(4) Options菜單下的子菜單 Plot:它下面有8種繪圖格式可供選擇。 Color Map:用于選擇不同的顏色方案。Always evaluate:選中該項(xiàng)時(shí),一旦對系統(tǒng)進(jìn)行了修改,就自動(dòng)進(jìn)行計(jì)算并繪制出新的曲面。再選一次可使它無效。三、隸屬度函數(shù)在Matlab的模糊邏輯工具箱內(nèi)部本身有11種隸屬度函數(shù)可供用戶選擇,由于篇幅所限,在此不做詳細(xì)介紹。四、FIS數(shù)據(jù)結(jié)構(gòu)管理函數(shù)1addmf功能:將隸屬度函數(shù)加到FIS(模糊推理系統(tǒng))。格式:a=addmf(a,varType,varIndex,mfName,mfT

22、ype,mfParams)。說明:隸屬度函數(shù)只能添加到MATLAB工作空間中已經(jīng)建立的FIS結(jié)構(gòu)中。按隸屬度函數(shù)添加的順序?qū)⑵渚幪枺@樣給變量添加的第一個(gè)隸屬度函數(shù)稱為該變量的1號隸屬度函數(shù),如果系統(tǒng)中只有1個(gè)輸入變量,則不能給第2個(gè)變量添加隸屬度函數(shù)。addmf函數(shù)有6個(gè)輸入變量:(1) a:工作空間中的FIS結(jié)構(gòu)變量名;(2) varType:要添加的隸屬度函數(shù)的變量類型(input或output);(3) varIndex:要添加的隸屬度函數(shù)的變量編號;(4) mfName:新添加的隸屬度函數(shù)名;(5) mfType:新隸屬度函數(shù)的類型;(6) mfParams:指定隸屬度函數(shù)的參數(shù)變量

23、。示例: a=newfis(Simple); %建立新的FIS系統(tǒng) a=addvar(a,input,e,-6,6); %給FIS添加新的輸入變量“e” a=addmf(a,input,1,NL,trapmf,-6,-6,-5,-3); a=addmf(a,input,1,NS,trapmf,-5,-3,-2,0); a=addmf(a,input,1,ZR,trimf,-2,0,2)。2addrule功能:在FIS中添加規(guī)則。格式:a=addrule(a,ruleList)說明:addrule函數(shù)有2個(gè)變量,第1個(gè)變量a為FIS的變量名,第2個(gè)變量ruleList表示規(guī)則矩陣。規(guī)則列表矩陣的

24、格式有嚴(yán)格的要求:當(dāng)模糊系統(tǒng)由m個(gè)輸入,n個(gè)輸出時(shí),規(guī)則列表矩陣有m+n+2列,前m列表示系統(tǒng)的輸入,每列數(shù)值表示輸入變量隸屬度函數(shù)的編號;接著的n列表示系統(tǒng)的輸出,每列的數(shù)值表示輸出變量隸屬度函數(shù)的編號;第m+n+1列的內(nèi)容為該條規(guī)則的權(quán)值:0到1之間的值,通常設(shè)定為1;第m+n+2列的值決定模糊操作符的類型:1(當(dāng)模糊操作符為and時(shí))或2(當(dāng)模糊操作符為or時(shí))。示例: ruleList=1 1 1 1 1;1 2 2 1 1; a=addrule(a, ruleList);如果系統(tǒng)a有2個(gè)輸入(X和Y)和1個(gè)輸出(Z),則上述定義的第1條規(guī)則為If X is x1 and Y is y

25、1 then Z is z1。3addvar 功能:在FIS中添加變量。 格式:a=addvar (a, varType, varName,varBounds) 說明:addvar函數(shù)有4個(gè)輸入變量。(1) a:工作空間中FIS的變量名;(2) varType:要添加的變量類型(input或output);(3) varName:要添加的變量名;(4) varBounds:變量的取值范圍。添加的變量按其添加的順序進(jìn)行編號,這樣添加到系統(tǒng)的第1個(gè)變量總是稱為系統(tǒng)的輸入變量1,輸入與輸出變量分開編號。示例: a=newfis(Simple); %建立新的FIS系統(tǒng) a=addvar(a,input

26、,e,-6,6); %給FIS添加新的輸入變量“e” 4defuzz 功能:對模糊隸屬度函數(shù)進(jìn)行反模糊化。 格式:out=defuzz(x,mf,type) 說明:defuzz(x,mf,type)可得到輸入為x時(shí)隸屬度函數(shù)mf的反模糊化值,其反模糊化的策略由type指定。變量type可?。?1) centroid:區(qū)域重心法;(2) bisector:區(qū)分等分法;(3) mom:極大平均法;(4) som:極大最小值法;(5) lom:極大最大值法;如果type不取上述各種方法,則默認(rèn)為用戶自定義的方法,x和mf通過這一函數(shù)可以產(chǎn)生反模糊化的結(jié)果。示例: x=10:0:10; mf=trap

27、mf(x,-10 -8 -4 7); xx=defuzz(x,mf,centroid)。 5evalfis 功能:完成模糊推理計(jì)算。 格式:out= evalfis(input,fismat) out= evalfis(input,fismat,numPts) output,IRR,ORR,ARR= evalfis(input,fismat) output,IRR,ORR,ARR= evalfis(input,fismat, numPts)說明:evalfis函數(shù)具有下列參數(shù)。(1) input:指定輸入的數(shù)值或矩陣。如果輸入為矩陣時(shí)(n為輸入變量維數(shù)),則evalfis將輸入的每一行看作輸入

28、變量,并在輸出變量output中產(chǎn)生矩陣,其中每一行為輸出向量,1為輸出變量數(shù)。(2) fismat:要計(jì)算的FIS結(jié)構(gòu)。(3) numPts:計(jì)算輸入和輸出隸屬度函數(shù)時(shí)采用的取樣點(diǎn)數(shù),如果缺省,則采用缺 省值101。(4) output:evalfis函數(shù)的輸出變量矩陣,其中m表示輸入變量數(shù),1表示輸出變量數(shù)。(5) IRR:輸入值通過隸屬度函數(shù)后的結(jié)果,這是numRules矩陣,其中numrules為規(guī)則數(shù),n為輸入變量數(shù)。(6) ORR:輸出值通過隸屬度函數(shù)后的結(jié)果,這是,其中numRules為規(guī)則數(shù),1為輸出變量數(shù)。這個(gè)矩陣的前numRules列對應(yīng)于第1個(gè)輸出,接下來的numRule

29、s列對應(yīng)于第2個(gè)輸出,如此等等。(7) ARR:沿著每個(gè)輸出的取值范圍已numPts取樣得到的矩陣。只有當(dāng)輸入變量為行向量時(shí),evalfis才計(jì)算可選的輸出變量值。當(dāng)只有1個(gè)輸出變量引用evalfis函數(shù)時(shí),可計(jì)算出由結(jié)構(gòu)fismat指定的FIS和由input指定的輸出向量output。6evalmf 功能:普通隸屬度函數(shù)的計(jì)算。 格式:y= evalmf(x,mfParams,mfType) 說明:evalmf函數(shù)可計(jì)算任意的隸屬度函數(shù),其中x為要計(jì)算的隸屬度函數(shù)取值,mfType為工具箱中存在的一只能夠隸屬度函數(shù),mfParams為該函數(shù)的相應(yīng)參數(shù)。如果建立了自己的隸屬度函數(shù),evalmf

30、函數(shù)也能很好的工作,這是因?yàn)閑valmf只計(jì)算隸屬度函數(shù),并不對其名字進(jìn)行識別。 7gensurf 功能:產(chǎn)生FIS輸出曲面。 格式:gensurf(fis) gensurf(fis,input,output) gensurf(fis,input,output,grids,refinput) 說明:gensurf(fis)函數(shù)針對給定FIS的前兩個(gè)輸入和第一個(gè)輸出繪制出曲面。gensurf(fis,input,output)可在繪制輸出曲面時(shí)用input和output指定的輸入和輸出。gensurf(fis,input,output,grids,refinput)中g(shù)rids指定X和Y方向的柵

31、格數(shù),refinput指定系統(tǒng)不變的輸入。 8getfis 功能:獲取模糊系統(tǒng)的特性。 格式:getfis(a) getfis(a,fisprop) getfis(a,varType,varIndex ,fisprop) getfis(a,varType,varIndex ,mf,mfIndex) getfis(a,varType,varIndex ,mf,mfIndex,mfProp) 說明:這是C的基本訪問函數(shù),利用這一函數(shù)獲取FIS的每個(gè)部分。Getfis函數(shù)的輸入變量的含義說明如下。(1) a:FIS結(jié)構(gòu)的變量名。(2) varType:變量類型的字符串,可取input或output。

32、(3) varIndex:變量序號。(4) mf:要搜索的隸屬度函數(shù)信息的字符串。(5) mfIndex:要搜索信息的隸屬度函數(shù)的序號。 9mf2mf 功能:在隸屬度函數(shù)之間進(jìn)行參數(shù)交換。格式:outParams=mf2mf(inParams,inType,outType)說明:mf2mf函數(shù)可根據(jù)隸屬度函數(shù)的參數(shù)集,將一種隸屬度函數(shù)變換成另一種,原則上,mf2mf函數(shù)在新舊隸屬度函數(shù)的對稱點(diǎn)上進(jìn)行匹配。這種變換偶爾也會(huì)導(dǎo)致信息的丟失,因此如果再將其變換回原來的隸屬度函數(shù)類型時(shí),則可能會(huì)與原隸屬度函數(shù)不一致。mf2mf的輸入變量有:(1) inParams:要變換的隸屬度函數(shù)的參數(shù)。(2) i

33、nType:要變換的隸屬度函數(shù)的字符串。(3) outType:要變換的隸屬度函數(shù)類型的字符串。 示例:mfp1=1 2 3;mfp2=mf2mf (mfp1,gbellmf,trimf);mfp1代表 gbellmf的參數(shù),mfp2 代表變換為trimf后對應(yīng)的參數(shù)。10newfis功能:建立新的FIS。格式:a=newfis(fisName,fisType,andMethod,orMethod,impMethod,aggMethod,defuzzMethod)說明:這一函數(shù)可建立新的FIS結(jié)構(gòu),newfis函數(shù)最多可有7個(gè)輸入變量,其輸出變量為FIS結(jié)構(gòu)。newfis函數(shù)7個(gè)輸入變量為:(

34、1) fisName:FIS結(jié)構(gòu)名,其后綴默認(rèn)為.fis。(2) fisType:FIS類型。(3) andMethod,orMethod,impMethod,aggMethod,defuzzMethod分別表示與,或,蘊(yùn)含,結(jié)集和反模糊化方法。 11parsrule 功能:模糊規(guī)則解析。 格式:fis2=parsrule(fis,txtRuleList) fis2=parsrule(fis,txtRuleList,ruleFormat) fis2=parsrule(fis,txtRuleList,ruleFormat,lang) 說明:這一函數(shù)可對MATLAB工作空間中FIS變量定義的規(guī)則進(jìn)

35、行解析,如果原來的FIS結(jié)構(gòu)具有初始的規(guī)則,則它們將在新的結(jié)構(gòu)中被取代,這里可通過ruleFormat指定3種格式:verbose,symbolic和indexd,其缺省格式為verbose。當(dāng)對lang選項(xiàng)進(jìn)行設(shè)定時(shí),規(guī)則按verbose模式解析,lang可設(shè)定為English、Deutsh或Francais、English為默認(rèn)設(shè)置。12plotfis 功能:繪圖表示FIS。 格式:plotfis(fismat) 說明:plotfis函數(shù)可繪制出FIS結(jié)構(gòu)的框圖,圖中包含輸入及其隸屬度函數(shù)(左邊),規(guī)則處理器方框(中間),輸出及其隸屬度函數(shù)(右邊)。 13plotmf 功能:繪制出指定變量

36、的所有隸屬度函數(shù)。 格式:plotmf(fismat,varTypt,varIndex)說明:plotmf函數(shù)可以繪制FIS結(jié)構(gòu)種指定變量的所有隸屬度函數(shù),fismat表示指定的FIS結(jié)構(gòu),varTypt指定變量類型(input或output),varIndex指定變量的序號。14readfis功能:從磁盤中裝入FIS。格式:fismat=readfis(filename)說明:從磁盤.fis文件中讀取模糊推理系統(tǒng),并保存于工作空間中。fismatreadfis將打開讀取文件的對話框,以便輸入文件名及其路徑。15rmmf功能:從FIS中刪除隸屬度函數(shù)。格式:fis=rmmf(fis, varT

37、ype,varIndex,mf,mfIndex)說明:rmmf可從FIS中刪除指定的隸屬度函數(shù),其中fis指定FIS結(jié)構(gòu),varIndex指定變量序號,varType指定變量類型,mfIndex指定要?jiǎng)h除的隸屬度函數(shù)的序號,字符串mf指定要?jiǎng)h除的隸屬度函數(shù)。 16rmvar 功能:從FIS中刪除變量。 格式:fis2,errorStr=rmvar(fis,varType, varIndex) fis2= rmvar(fis,varType, varIndex) 說明:fis2= rmvar(fis,varType, varIndex)可從FIS中刪除變量,其中fis指定FIS結(jié)構(gòu),varInd

38、ex指定要?jiǎng)h除的變量序號,varType指定變量類型,fis2,errorStr=rmvar(fis,varType, varIndex)可在errorStr中得到錯(cuò)誤信息。 17setfis 功能:設(shè)置模糊推理系統(tǒng)的特性。 格式:a=setfis(a,varPropname,newfisProp) a=setfis(a,varType,varIndex,varPropname,newfisProp a=setfis(a,varType,varIndex,mf,mfIndex,varPropname,newfisProp)說明:根據(jù)要設(shè)置的FIS特性不同,setfis命令可有3個(gè),5個(gè)或7個(gè)輸

39、入變量,下面給出了這些變量的含義說明。(1) a:工作空間中的FIS變量。(2) varType:變量類型。(3) varIndex:輸入,輸出變量序號。(4) mf:指定隸屬函數(shù)。(5) mfIndex:所選變量隸屬度函數(shù)的序號。(6) varPropname:表示要設(shè)置的FIS特性的字符串,這里可取Name、Type、andMethod、orMethod、impMethod、aggMethod、defuzzMethod。(7)newfisProp:描述要設(shè)置的FIS特性或方法的字符串。(8)varPropname:指定要設(shè)置的變量域名??扇ame或Range。(9) newvarProp

40、:當(dāng)變量域名為Name時(shí),這一部分為要設(shè)置的變量名的字符串;變量域名為Range時(shí),這一部分為改變變量范圍的陣列。(10) mfPropname:要設(shè)置的隸屬度函數(shù)域名的字符串,可取Name,Type或Params。(11) newmfProp:當(dāng)隸屬度函數(shù)域名為Name或Type時(shí),這一部分為要設(shè)置的隸屬度函數(shù)域名或類型;為Params時(shí),這一部分為參數(shù)陣列。18showfis功能:顯示帶注釋的FIS。格式:showfis(fismat)說明:showfis(fismat)可顯示出FIS結(jié)構(gòu)fismat,從而更容易觀察FIS結(jié)構(gòu)各個(gè)域的重要性及內(nèi)容。19showrule功能:顯示FIS規(guī)則。

41、格式:showrule(fis) showrule(fis,indexList) showrule(fis,indexList,format) showrule(fis,indexList,format,lang) 說明:showrule可顯示出FIS系統(tǒng)的規(guī)則,它可有1到4個(gè)輸入變量:fis為FIS結(jié)構(gòu)變量名;indexList為要顯示的規(guī)則的序號向量;format用于指定規(guī)則顯示的格式;lang用于指定顯示規(guī)則的語言。當(dāng)調(diào)用showrule4個(gè)變量都采用時(shí),第3個(gè)變量format的設(shè)置必須是verbose。 20writefis 功能:將FIS結(jié)構(gòu)保存到磁盤文件中。 格式:writefis

42、(fismat) writefis(fismat,filename) writefis(fismat,filename,dialog) 說明:writefis可將MATLAB工作空間中的FIS結(jié)構(gòu)變量fismat保存到磁盤文件中。writefis(fismat)可打開一個(gè)對話框,以輸入變量的文件名及其路徑。writefis(fismat,filename)可直接指定文件名filename.fis,這時(shí)不會(huì)出現(xiàn)對話框,文件保存在當(dāng)前目錄中。writefis(fismat,filename,dialog)可打開對話框,并且以filename.fis為文件名。五Simulink仿真模塊函數(shù)1fuzb

43、lock 功能:模糊邏輯控制器仿真模塊。 格式:fuzblock 說明:此命令將打開Simulink系統(tǒng)的模糊邏輯模塊庫,里面含有有關(guān)模糊邏輯器件的演示框圖,它們分別為:Fuzzy Logic Controller:模糊邏輯控制器;Fuzzy Logic Controller With Rule Viewer:帶有規(guī)則觀測器的模糊邏輯控制器;MemberShip Functions:隸屬度函數(shù),里面包含有11種內(nèi)定的隸屬度函數(shù)。2sffis 功能:Simulink中的模糊推理S函數(shù)。 格式:output=sffis(t,x,u,flag,fismat) 說明:用此函數(shù)可得到一個(gè)由Simulin

44、k使用的MEX文件,通常由evalfis函數(shù)完成計(jì)算工作,并且在Simulink環(huán)境中已經(jīng)達(dá)到最優(yōu),這就意味著sffis可在Simulink仿真的初始階段就建立起數(shù)據(jù)結(jié)構(gòu),并一直在仿真中使用。自變量t、x和flag為Simulink中S函數(shù)標(biāo)準(zhǔn)變量,變量u為Matlab工作空間FIS結(jié)構(gòu)fismat的輸入。關(guān)于模糊系統(tǒng)工具箱的其它內(nèi)容可參考其它有關(guān)書籍,在此不再介紹。 6.2 模糊推理系統(tǒng)(FIS)的建立 一個(gè)模糊推理系統(tǒng)的任務(wù)可分為三大塊,即可用三個(gè)步驟概括:首先,對測量數(shù)據(jù)進(jìn)行Fuzzy化(即模糊化);其次,建立控制規(guī)則表;第三,輸出信息的Fuzzy判決,即對模糊量進(jìn)行反模糊化,得到精確輸

45、出量。具體來說,F(xiàn)uzzy化的過程,就是針對輸入變量的量測值,根據(jù)實(shí)際工程需要,選取合適的論域范圍,并分為幾種可能的情況選取幾個(gè)語言變量值,從而對輸入量測值進(jìn)行量化,每個(gè)語言變量值可以選用某種隸屬度函數(shù)來表示;建立規(guī)則表,就是根據(jù)控制過程中的實(shí)際經(jīng)驗(yàn),依照推理合成法或其它方法建立一系列規(guī)則,組成規(guī)則表;輸出信息的Fuzzy判決,就是通過一系列反模糊化方法對推理后所得模糊輸出信息進(jìn)行反模糊化運(yùn)算(Defuzzication)。對Mamdani型模糊推理,通??梢赃x擇centroid(區(qū)域重心法)、bisector(區(qū)域等分法)、mom(極大平均法)、som(極大最小法)、lom(極大最大法)或C

46、ustom;對Sugeno型模糊推理,可以選擇wtaver(加權(quán)平均)或wtsum(加權(quán)求和)。 模糊推理系統(tǒng)的建立,往往是設(shè)計(jì)一個(gè)模糊控制系統(tǒng)的基礎(chǔ)。要想建立一個(gè)模糊推理系統(tǒng),通??梢杂脙深惙椒ǎ阂环N是利用GUI(圖形用戶界面)建立模糊推理系統(tǒng);另一種就是利用Matlab命令行建立模糊推理系統(tǒng)。下面分別用這兩類方法結(jié)合具體的例子來介紹建立一個(gè)模糊推理系統(tǒng)的過程。 一、利用GUI建立模糊推理系統(tǒng) 在前面介紹模糊邏輯工具箱的圖形用戶界面工具中,我們對FIS編輯器、隸屬度函數(shù)編輯器、規(guī)則編輯器、規(guī)則觀測器、曲面觀測器和ANFIS編輯器已有所了解。下面我們通過一個(gè)具體的例子介紹利用GUI建立FIS的

47、過程。 例6-1水箱水位控制問題,如圖6-7所示。通過控制進(jìn)水閥使得水箱水位保持在一定水平上。我們通常取水位誤差e和誤差變化率ec作為模糊控制器的輸入變量。其中,e = r - y(誤差設(shè)定值測量值)。選取誤差e的論域范圍為-1,1,3個(gè)語言變量值為negative、zero、positive,它們的隸屬度函數(shù)均取gaussmf (高斯曲線);水位變化率ec的論域?yàn)?-0.1,0.1,3個(gè)語言變量值為negative、zero和positive,它們的隸屬度函數(shù)也取gaussmf。確定輸出變量數(shù)為1個(gè),名字為u ,其論域?yàn)?1,1,5個(gè)語言變量值為close-fast、close-slow、n

48、o-change、open-slow和open-fast,隸度函數(shù)選為trimf(三角形曲線)。 根據(jù)水箱水位控制的實(shí)際經(jīng)驗(yàn),可得到如下控制規(guī)則(用if-then語句表達(dá)):圖6-7 水箱水位控制設(shè)定模糊控制器壓力傳感器反饋控制量 (1) If e is negative then u is close-fast; (2 ) If e is zero then u is no-change; (3 ) If e is positive then u is open-fast; (4 ) If e is zero and ec is negative then u is open-slow; (

49、5 ) If e is zero and ec is positive then u is close-slow。利用GUI建立一個(gè)FIS系統(tǒng)的具體步驟說明如下。 1. 進(jìn)入FIS編輯器在Matlab的Command Window窗口提示符下,鍵入fuzzy可打開FIS編輯器,其界面如圖6-8所示。此時(shí)編輯器里還沒有FIS系統(tǒng),文件名為Untitled,且被默認(rèn)為Mamdani型系統(tǒng)。此時(shí)上面圖表部分有1個(gè)輸入、1個(gè)輸出,還有中間的規(guī)則處理器。在FIS編輯器界面中進(jìn)行的工作說明如下:(1) 添加輸入變量由于本例有2個(gè)輸入變量,因此需要再添加1個(gè)輸入變量,操作方法為:菜單Edit Add Var

50、iable Input。此時(shí)系統(tǒng)便有2個(gè)輸入變量,1個(gè)輸出變量。 (2) 命名輸入-輸出變量點(diǎn)擊輸入框(input1或input2)或輸出框(output1),在Current Variable組合框的Name編輯欄內(nèi)修改變量名。本例中input1 、Input2 和output1分別命名為e、ec和為u 。(3) 保存系統(tǒng)選擇菜單File Export To Disk 。本例中將創(chuàng)建的水位控制系統(tǒng)命名為wl_control,此時(shí),所顯示的即為初始的水位模糊推理系統(tǒng)wl_control,如圖6-9所示。也可以在FIS編輯器中刪除不想要的輸入或輸出變量,方法為選中想要?jiǎng)h除的變量EditRemov

51、e Selected Variable。也可以在選中變量后,直接按鍵盤上的Delete鍵進(jìn)行刪除。 利用FIS編輯器得到了初始模糊推理系統(tǒng)后,需要在隸屬度函數(shù)編輯器中進(jìn)行隸屬度函數(shù)的定義。 2進(jìn)入隸屬度函數(shù)編輯器 進(jìn)入隸屬度函數(shù)編輯器有三種方法。 (1) 在FIS編輯器中雙擊任意一個(gè)輸入或輸出變量的圖框; (2) 通過菜單Edit Membership Functions; (3) 在Matlab的Command Window (命令窗口) 提示符下鍵入mfedit (wl_control )。圖6-8 基本的FIS編輯器圖6-9 初始wl_control模糊推理系統(tǒng) 在隸屬度函數(shù)編輯器中,可

52、以對各個(gè)變量的論域范圍、隸屬度函數(shù)進(jìn)行編輯。首先,修改各變量的論域范圍。點(diǎn)擊FIS Variables下面的各輸入輸出變量框 在Current Variable組合框中Range右邊編輯欄內(nèi),修改選中變量的論域范圍。Range編輯欄修改后,Display Range 編輯欄內(nèi)的值跟著改變,變得與Range編輯欄內(nèi)的一致。本例中,輸入變量e的Range為-1 1,輸入變量ec的Range為-0.1 0.1,輸出變量u的Range為-1 1。其次,編輯輸入和輸出變量的隸屬函數(shù)所對應(yīng)的Name(名字)、Type(類型)、Params(參數(shù))。點(diǎn)擊某個(gè)變量,在Membership function p

53、lots下面的圖表中將顯示所選變量的隸屬度函數(shù)曲線,默認(rèn)情況每個(gè)變量有3個(gè)隸屬度函數(shù),均為trimf(三角形隸屬度函數(shù))。若所選變量所需的隸屬度函數(shù)個(gè)數(shù)少于3個(gè),則可通過Edit Remove Selected MF刪除多余的隸屬度函數(shù),也可通過鍵盤上的Delete鍵直接刪除。若選中變量所需隸屬度函數(shù)的個(gè)數(shù)多于3個(gè),則可通過Edit Add MFs添加所需的隸屬度函數(shù)。隸屬度函數(shù)個(gè)數(shù)確定好后,需要對每個(gè)隸屬度函數(shù)進(jìn)行編輯,依次選中各隸屬度函數(shù)曲線,對其Name、Type及Params進(jìn)行編輯。在本例中,對于輸入變量e,其隸屬度函數(shù)正好3個(gè),從mf1到mf3,逐個(gè)編輯,將它們的Name項(xiàng)分別設(shè)置為negative、zero、positive,Type均設(shè)定為gaussmf,Params分別設(shè)置為0.45 -1、0.45 0、0.45 1。對輸入變量ec,其隸屬度函數(shù)也是3個(gè),從mf1到mf3,逐一編輯,將它

溫馨提示

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

最新文檔

評論

0/150

提交評論