模糊控制技術模糊控制的Matlab仿真_第1頁
模糊控制技術模糊控制的Matlab仿真_第2頁
模糊控制技術模糊控制的Matlab仿真_第3頁
模糊控制技術模糊控制的Matlab仿真_第4頁
模糊控制技術模糊控制的Matlab仿真_第5頁
已閱讀5頁,還剩159頁未讀, 繼續免費閱讀

下載本文檔

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

文檔簡介

1、模糊控制技術模糊控制的Matlab仿真用MATLAB的模糊邏輯工具箱(Fuzzy toolbox)實現 以后的版本中推出的模糊工具箱(Fuzzy Toolbox),為仿真模糊控制系統提供了很大的方便。 在Simulink環境下對PID控制系統進行建模是非常方便的,而模糊控制系統與PID控制系統的結構基本相同,僅僅是控制器不同。 對模糊控制系統的建模關鍵是對模糊控制器的建模。Matlab軟件提供了一個模糊推理系統(FIS)編輯器,只要在Matlab命令窗口鍵入Fuzzy就可進入模糊控制器編輯環境。 Matlab模糊邏輯工具箱仿真模糊推理系統編輯器(Fuzzy) 模糊推理系統編輯器用于設計和顯示模

2、糊推理系統的一些基本信息,如推理系統的名稱,輸入、輸出變量的個數與名稱,模糊推理系統的類型、解模糊方法等。其中模糊推理系統可以采用Mandani或Sugeuo兩種類型,解模糊方法有最大隸屬度法、重心法、加權平均等。打開模糊推理系統編輯器,在MATLAB的命令窗(command window)內鍵入:fuzzy 命令,彈出模糊推理系統編輯器界面,如下圖所示。多個輸入時,在Edit菜單中,選Add variable -input,加入新的輸入input,如下圖所示 選擇input(選中為紅框),在界面右邊文字輸入處鍵入相應的輸入名稱,例如,溫度輸入用 tmp-input, 磁能輸入用 mag-in

3、put,等。隸屬度函數編輯器(Mfedit)該編輯器提供一個友好的人機圖形交互環境,用來設計和修改模糊推理系中各語言變量對應的隸屬度函數的相關參數,如隸屬度函數的形狀、范圍、論域大小等,系統提供的隸屬度函數有三角、梯形、高斯形、鐘形等,也可用戶自行定義。雙擊所選input,彈出一新界面,在左下Range處和Display Range處,填入取只范圍,例如 0至9 (代表0至90)。在右邊文字文字輸入Name處,填寫隸屬函數的名稱,例如lt或LT(代表低溫)。在Type處選擇trimf(意為:三角形隸屬函數曲線,triangle member function),當然也可選其它形狀。 在Para

4、ms(參數)處,選擇三角形涵蓋的區間,填寫三個值,分別為三角形底邊的左端點、中點和右端點在橫坐標上的值。這些值由設計者確定。用類似的方法設置輸出output的參數。比如:共有9個規則,所以相應地有9個輸出隸屬函數。默認3個隸屬函數,剩下6個由設計者加入。點擊Edit菜單,選 Add Custom MS-繼續填入相應參數即可。模糊推理規則編輯器Ruleedit通過隸屬度函數編輯器來設計和修改“IF.THEN”形式的模糊控制規則。由該編輯器進行模糊控制規則的設計非常方便,它將輸入量各語言變量自動匹配,而設計者只要通過交互式的圖形環境選擇相應的輸出語言變量,這大大簡化了規則的設計和修改。另外,還可為

5、每條規則選擇權重,以便進行模糊規則的優化。選Edit菜單,選擇Rules, 彈出一新界面Rule Editor. 在底部的選擇框內,選擇相應的 IFANDTHEN 規則,點擊Add rule 鍵,上部框內將顯示相應的規則。本例中用9條左右的規則,依次加入。如下圖所示: 模糊邏輯工具箱仿真結果 模糊規則瀏覽器用于顯示各條模糊控制規則對應的輸入量和輸出量的隸屬度函數。通過指定輸入量,可以直接的顯示所采用的控制規則,以及通過模糊推理得到相應輸出量的全過程,以便對模糊規則進行修改和優化。所有規則填入后,選菜單View, 選擇Rules,彈出一新界面Rule Viewer,如下圖所示。上圖表示當溫度為4

6、5度、磁能為45瓦時,輸出干度為約70個單位。左右拉動界面中的兩支紅線,拉到欲選的近似值,右邊圖頂顯示相應的干度結果。上圖中選菜單View, 選擇Surface,彈出一新界面Surface Viewer,彈出該課題結果的三維圖。如下圖所示。注意將鼠標箭頭放置圖內,移動鼠標可得到不同角度的視圖,如下圖所示。Matlab模糊控制仿真演示例子模型sltank.mdl 使用模糊控制器對水箱水位進行控制。假定水箱有一個進水口和一個出水口,可以通過控制一個閥門來控制流入的水量(即水位高度),但是流出的速度取決于出水口的半徑(定值)和水箱底部的壓力(隨水箱中的水位高度變化)。系統有許多非線性特性。要求設計的

7、目標是一個合適的進水口閥門的控制器,能夠根據水箱水位的實時測量結果對進水閥門進行相應控制,使水位滿足特定要求(即特定輸入信號)。一般情況下,控制器以水位偏差(理想水位和實際水位的差值)及水位變化率作為輸入,輸出的控制結果是進水閥打開或關閉的速度。在Matlab中仿真,可以看到出現一個水箱模型的仿真動畫窗口。該動畫由一個S函數”animtank.m”實現。從動畫中,可以觀察到實際系統的水位跟隨殊榮的要求水位信號變化。如果對S函數的實現感興趣,可以鍵入命令open animtank(或edit animtank)來查看” animtank.m”文件。在Simulink編輯窗口左邊的模塊瀏覽區可以看

8、到在水箱仿真系統中包括水箱子模型、閥門子模型及 PID 控制子模型。直接在瀏覽區中點擊或右鍵點擊它們,并在彈出菜單中選擇 look under mask 】 ,可以看到這些模塊實現的細節結構,如圖 所示。這里暫時不討論具體的系統模型的構造問題,我們可以先在這個已經建立好的系統模型上進行修改,體驗模糊邏輯與仿真環境結合使用的優勢。對于仿真模型系統中已經建立的水箱模塊、閥門模塊以及動畫仿真顯示模塊可以直接使用,這里我們重點討論與模糊推理系統設計問題相關的模糊系統變量 tank (即 MATLAB 的模糊邏輯推理系統)。在 MATLAB 命令窗口中鍵入命令 fuzzy tank ,就可以開始對模糊系

9、統 tank 進行編輯了。為簡單起見,我們直接利用系統里已經編輯好的模糊推理系統,在它的基礎上進行修改。這里我們采用與tank . fis中輸入輸出變量模糊集合完全相同的集合隸屬度函數定義,只是對模糊規則進行一些改動,來學習模糊工具箱與仿真工具的結合運用。對于這個問題,根據經驗和直覺很顯然可以得到如下的模糊控制規則: If (水位誤差小)then(閥門大小不變(權重 1 )If (水位低) then (閥門迅速打開)(權重 1 ) If (水位高) then (閥門迅速關閉)(權重 1 )這相當于在原有模糊系統模型上減少兩條模糊規則得到的新的模糊推理系統。改動完成后進行仿真,觀察示波器模塊,可

10、以得到系統水位變化,如圖示。從上圖的仿真控制結果曲線中可以看出上述由三條模糊規則組成的模糊控制系統的結果并不理想,因此可以再增加如下兩條模糊控制規則:If (水位誤差小且變化率為負) then (閥門緩慢關閉)(權重 1 ) If (水位誤差小且變化率為正) then (閥門緩慢打開)(權重 1 ) 系統的輸出變化曲線如下圖所示。從上圖可以看出,在增加了模糊控制規則后,系統的動態特性得到較大改善,不但具有較短的響應時間,而且超調量也很小。可以用 Surfview tank 命令來顯示模糊控制系統的輸出曲面,如圖所示。在這個例子中,還可以用傳統的 PID 控制方法與模糊邏輯推理控制進行比較。在水

11、箱仿真環境主界面中將控制方法選擇開關中間的 const 模塊的值由由-1 改為 1 ,這時系統將用傳統的 PID 控制方法進行控制,如圖所示。其他例子模型Shower.mdl淋浴溫度調節模糊控制系統仿真; 模型slcp.mdl單級小車倒擺模糊控制系統仿真;模型 slcp1.mdl變長度倒擺小車模糊控制系統仿真;模型 slcpp1.mdl定長、變長二倒擺模糊控制系統仿真;模型slbb.mdl球棒模糊控制系統仿真;模型sltbu.mdl卡車智能模糊控制倒車系統仿真;模型sltank2.mdl 用子系統封裝的水箱控制仿真。學習 MATLAB 仿真工具的一個快速有效的方法就是學習示例模型,通過看懂這些

12、模型和模塊的功能以及搭建過程,可以很快熟悉和掌握如何使用 MATLAB 仿真工具來設計和搭建自己獨特的模型。下面以模型的結構作一個介紹,方便讀者更好地理解和學習這個例子。模型是一個淋浴溫度及水量調節的模糊控制系統的仿真,該模糊控制器的輸入變量分別是水流量和水溫,輸出變量分別是對熱水閥和冷水閥的控制方式。該問題是一個典型的經驗查表法控制示例,是 Mamdani型系統,其模糊控制矩陣存為磁盤文件。這個仿真模型的輸出是用示波器來表示的,如圖所示。通過示波器上的圖形我們可以清楚地看到溫度和水流量跟蹤目標要求的性能。水溫示波器水流示波器水溫偏差區間模糊劃分及隸屬度函數水流量偏差區間模糊劃分及隸屬度函數輸

13、出對冷水閥控制策略的模糊化分及隸屬度函數輸出對熱水閥控制策略的模糊化分及隸屬度函數其中輸入變量水溫與流速的偏差與輸出熱水閥、冷水閥的控制方法的經驗表格如表1及表2所示。根據這兩個輸出控制表,可以產生九條模糊控制規則,如下:系統的模糊推理運算相關定義如下:其余例子,請各位同學自行打開研究學習。通過Maltab命令(程序)創建和計算模糊邏輯系統前面介紹過如何使用圖形化工具建立模糊邏輯系統,我們也可以完全用命令行或程序段的方式來實現。小費問題:實際生活中有著許多模糊的概念和邏輯方式,“給小費”問題就是一個可以用模糊邏輯來分析的經典的例子。下圖表示的是一個關于飯店的服務質量和顧客所給小費之間的關系圖,

14、左邊表示飯店的服務質量,作為輸入;右邊表示顧客所給的小費,作為輸出,兩者是有一定邏輯關系的。圖中的黑箱表示一種映射規則,將服務質量映射到小費。這個黑箱就是這一邏輯關系的核心部分,它可以理解為各種不同的邏輯,例如模糊邏輯、線性邏輯、專家系統、神經網絡、微分方程、多維表格查詢或者隨機選擇器等。在上述問題中,模糊邏輯被證明是最佳的。在國外飯店就餐后一般需要付給侍者小費,這是國外模糊系統的教材中一個非常經典的例子。下面我們通過小費問題來說明模糊邏輯的作用?!靶≠M”問題的核心就是:多少小費是“合適”的?我們先把問題簡化,假定用從 0 10 的數字代表服務的質量(10 表示非常好,0 表示非常差),小費應

15、該給多少?這里還考慮到問題的背景 在美國平均的小費是餐費15,但具體多少隨服務質量而變。首先考慮最簡單的情況,顧客總是多給總賬單的15作為小費:用 MATLAB 語句繪圖,如下圖所示。雖然是簡單的線性關系,但這樣的結果已經基本能夠反映服務質量對小費的影響效果了,如果考慮到顧客所給的小費也應當能反映食物的質量,那么問題就在原來的基礎上擴展為:給定兩個從 0 到 10 的數字分別代表服務和食物的質量( 10 表示非常好, 0 表示非常差),這時小費與它們之間的關系又應當如何反映呢?假設是二元線性關系用下列 MATLAB 語句可繪出下圖 ??梢钥吹?,如果不考慮服務質量因素比食物質量因素對于小費的支付

16、占有更大的比重,上面的關系圖形已經能夠反映一些實際的情況了。假如希望服務質量占小費的 80 % , 而食物僅占 20 。這里可以設定權重因子:用下列 MATLAB 語句可繪出下圖這樣的結果與實際情況還是有些不符。通常顧客都是給15的小費,只有服務特別好或特別不好的時候才有改變,也就是說,希望在圖形中間部分的響應平坦些,而在兩端(服務好或壞)有凸起或凹陷。這時服務與小費是分段線性的關系。例如,用下面 MATLAB 語句繪出的下圖的情況。上圖沒有考慮食物質量的影響,我們加入這個因素后,擴展為三維的,就有如下的結果:用下列 MATLAB 語句可繪出圖現在的結果比較好了,可是函數看起來有點復雜,而且程

17、序也越來越長,將來不便于修改和增加新的規則及排除檢查錯誤。對于不清楚設計過程的人來說,設計人員的思維是不容易被理解的。模糊系統可以很好地結合人類的自然語言。對于小費問題,現在只考慮關鍵因素,把問題簡化,得出下面三條規則: 當服務很差的時候,小費比較少。 當服務比較好的時候,小費中等。 當服務非常好的時候,小費比較高。如果我們把食物對小費的影響考慮進來,可以增加下面兩條規則: 當食物很差時,小費比較少。 當食物很好時,小費比較高。上面五條規則不分先后順序,但是各條規則的重要性可以是不同的,在沒有特殊要求的情況下,可以認為這些規則的重要性(權重)是相同的。可以把服務和食物的質量綜合起來,總結為如下

18、三條規則: 當服務差或食物差的時候,小費少。 當服務好的時候,小費中等。 當服務很好或食物好的時候,小費高。當我們已經得到上述三條模糊邏輯系統的推理規則后,只要再給出其中的模糊變量(例如“服務差”、“服務好”、“服務非常好”等概念)的定義和表示,就建立了該問題的一個完整的模糊推理系統的方案。這個系統的核心就是上述三條規則以及相關模糊變量的定義。使用Matlab圖形化工具,可以方便地建立起模糊控制系統。用命令行函數實現模糊邏輯系統前面主要介紹了 MATLAB 圖形化工具的使用, MATLAB 同樣也提供了一些函數命令來實現模糊邏輯系統。這些函數不僅能完全實現圖形化方式所提供的功能,同時還可以實現

19、圖形化方式所難以實現的功能。特別是對于那些比較復雜的模糊推理系統,在輸入輸出變量、隸屬度函數、模糊規則數目比較多的時候,如果要在圖形化界面中人工輸入,效率就很低。如果通過命令行方式的編程,就可以讓計算機完成許多重復性的輸入工作,大大減少了工作量。還有其他一些情況,如輸入輸出變量、隸屬度函數、模糊規則等是由程序計算得到的,這時如果采用命令行的編程會更加簡單方便。MATLAB 模糊工具箱的圖形化工具與命令行函數是統一的,我們可以將它們結合使用。無論是命令行方式或是圖形化方式創建的系統,其格式都是一樣的。因此,如果根據需要同時使用兩種方法來編輯一個模糊邏輯系統,往往會達到更好的效果。命令行函數使用示

20、例入門小費問題是模糊邏輯工具箱中提供的一個模糊推理系統的示例。在 MATLAB 中一個模糊邏輯推理系統被當作是一種 FIS 結構。例如,我們在命令行工作環境鍵入命令:結果:該命令加載小費問題模糊推理系統的數據文件到當前的工作空間中,并存為變量 a , a 是一種 FIS 結構的變量。在上面的結果之列中,冒號左邊的標號表示 MATLAB 的 FIS 結構中的與 tipper . fis 相關的結構成員變量名,可以通過“結構名成員名”的方式來訪問這些結構成員變量。例如鍵入命令:其實在 MATLAB 里,模糊推理系統是以特定的語法用文本方式來存儲的。如果鍵入命令:就可以看到這個用 ASCll 代碼存

21、儲的模糊系統。函數 readfis 得到了這個數據文件中的所有屬性,并把它們存入一個結構(也可以看作是一個廣義的矩陣)。上面的例子中通過語句 a = readfis ( tipper . fis ) 變量 a 被賦予一個 FIS ( Fuzzy Inference system )結構變量矩陣。這個矩陣主要由 ASCll 代碼構成,通常表現為數字的排列,這樣就不便于閱讀,因此需要特定的函數來顯示系統屬性。函數 getfis ( a )返回結果是關于模糊推理系統的一般屬性,比如說系統名稱,輸入、輸出變量的名稱等等。例如鍵入命令: getfis ( a )結果:從上面的結果我們可以看到,有些屬性并

22、不是結構變量 a 中所包含的。例如鍵入:系統返回如下錯誤信息:但是,如果鍵入:系統返回結果:getfis 函數還有若干種使用方法,可以鍵入右邊命令試一試,看看結果。前述功能同樣可以通過“結構名成員名”的方式來訪問,只是具體的訪問方式與成員的類型相關。例如,要得到上述 getfis ( a ,Inlabels )命令的結果,可以采用如下的方式:返回結果:setfis是和getfis相對應的函數,它允許改變一個 FIS系統的特性。如果想將上述系統的名字 tipper 改為 gratuity ,可以運行命令:返回結果:在結果中可以看到 name 變為 gratuity ,同樣上面的操作也可以用命令“

23、 a .name = gratuity ” ,來實現。如果想要知道更詳細的內容,通過函數 showfis ( a )就可以得到這個 FIS 矩陣的詳細屬性。這個函數最主要是用來進行程序調試,但同時它也能分行顯示所有記錄在 FIS 矩陣的信息。在這里結構變量 a 代表一個小費問題的模糊推理系統,前面提到的圖形化編輯工具都可以用來對它進行相關操作。下面這些函數命令將打開相應的小費系統圖形化工具界面。如果 a 是一個 Sugeno 型的模糊系統,命令 anfisedit ( a )將打開 ANFIS (模糊神經網絡系統)圖形編輯界面。通過 MATLAB 命令(程序)創建和計算模糊邏輯系統前面介紹過如

24、何用圖形化工具建立模糊邏輯系統,這些也可以完全用命令行或程序段的方式實現。仍然使用小費問題的例子作為范例,在這個例子中將用到 newfis 、 addvar 、 addmf 、 addrde 等幾個函數。在用命令行建立模糊邏輯系統的過程中,往往最令人迷惑的就是模糊規則在系統中的簡述表達方式。規則是通過函數 addrule 來加入的,每一個輸入或輸出的變量都有一個索引 ( index )值,同樣每一個隸屬度函數也有一個 index 值,輸入規則的函數就是使用這些索引來創建相應的模糊規則,在 MATLAB 中模糊規則一般具有如下形式:模糊規則按照下面的邏輯被轉化成一種數據結構(或矩陣)的形式來表示

25、:如果系統由 m 個輸入、 n 個輸出變量和 k 條模糊規則組成,則該規則結構是一個( m + n + 2 , k )的矩陣。該矩陣的每個行向量代表一條模糊規則,這個行向量的前 m 個數表示前 m 個輸入變量對應的隸屬度函數的索引值例如,第一列表示第一個輸入變量在各條規則的相應的隸屬度函數的索引,第二列表示第二個輸入變量相應的隸屬度函數的索引。接著的 n 列表示 n 個輸出變量對應的隸屬度函數的索引值。第 m + n + 1 列的數分別表示各條規則的權重(一般為 1 ) ,第 m + n + 2 列表示各條規則之間的相互連接方式( and = l , or = 2 )。這樣,上面這條規則用MA

26、TLAB的結構表示為一個行向量。如果輸入或是輸出變量加了否定修飾詞not的話,則只需在相應的隸屬度函數索引值前鍵入一個負號。例如,對于規則:其對應的行向量變為:-1 3 2 0.5 2,依次解釋如下:-1表示not MF1;3表示MF3;2表示MF2;表示;2表示or。下面是用“結構名成員名”表達方式編寫的創建小費模糊推理系統 tipper. fis的命令行程序示例。例 用命令行方式建立小費推理系統模糊模型。這樣的程序相當繁瑣,如果用前面所提到的規則結構變量以及相應的一些 MATLAB函數來實現會簡單得多,例如:使用模糊邏輯推理系統對于給定輸入得到相應的輸出結果才是實際使用中最終的目的,這個過

27、程在 MATLAB 里可以通過函數 evalfis 來完成。例如,下面的命令行用來計算小費推理系統對于輸入變量為 1 , 2 的輸出結果:MATLAB 的 FIS 結構和存儲在 MATLAB 中模糊推理系統是以一種 FIS 的結構類型來表示和存儲的。無論是圖形化的工具或是像 getfis 和 setfis 這樣的函數,都可以對這種結構進行直接的操作,同樣也可以用“結構名成員名” ( “ Structure . field ” )的語法方式來訪問。 FIS 的結構組成很簡單,是將 MATLAB 模糊邏輯的各個函數統一起來使用的基礎。 FIS 結構可以看作是一種層次結構,如下圖所示。模糊推理系統

28、FIS 結構層次可以用 Showfis 函數來生成關于 FIS 結構變量的詳細信息列表。例如鍵入除了圖形化環境, MATLAB 的命令行方式提供了下列與 FIS 結構的創建和編輯相關的函數: getfis 、 setfis 、 showfis 、 addvar 、 addmf 、 addrule 、 rmvar 及 rnmlf 。關于這些函數的使用方法將在后面的內容里介紹。* . fis 文件格式及存儲在 MATLAB 中模糊推理系統使用一種特定格式的文本文件來存儲,通常以后綴 fis 命名。工具箱提供了 readfis 和 writefis 兩個函數分別來讀寫這種文件。 FIS 文件是以文本

29、方式存儲,也可以不用圖形工具或是相關函數而直接用文本編輯器來編輯它。但是這樣往往比較復雜而且容易出錯,因為改動了一個參數可能需要在文件的許多地方進行考慮和修改。例如,如果刪除了一條隸屬度函數,那么所有與該隸屬度函數相關的規則就得刪除,而且其他隸屬度函數的序號也會發生改變,其他規則也要做相應改動。在 FIS 文件中,模糊規則是以 index 方式表示的。直接用文本編輯器或是用命令 type tipper.fis (或 , edit tipper.fis )都可以查看到小費問題模糊推理系統的文件 tipper . fis ,例如:前面提到的一些函數,例如 readfis 、 getfis 、 se

30、tfis 、 showfis 等,都是模糊工具箱提供的命令行函數,直接調用這些函數就可以實現對模糊推理系統進行建立、修改以及存儲等操作,下面將詳細介紹常用的命令行函數。說明:在參數列表中, a 為模糊推理系統對應的矩陣變量名, varType 用于指定語言變量的類型為字符型(如input 或 output ) ; varName 也為字符型變量,用于指定語言變量的名; varBoundS 用于指定語言變量的論域范圍。對于添加到同一個模糊推理系統的語言變量,將按照添加的先后順序自動編號,編號從 1 開始,逐漸遞增。對于分屬于輸入與輸出的不同語言變量則獨立地分別編號。說明:當一個模糊語言變量正在被

31、當前的模糊規則集使用時,試圖刪除該變量會導致其他相關規則被刪除。系統出現詢問對話框,問是否確認刪除命令。在一個模糊語言變量被刪除后,Matlab模糊邏輯工具箱將會自動地對模糊規則集進行修改以保證一致性。從varType表示語言變量的類型,為字符型,如input 或 output ; varIndex表示語言變量的編號。說明:隸屬度函數只能為模糊推理系統中已經存在的某一語言變量的語言值添加隸屬度函數,而不能添加到一個尚不存在的語言變量中。對于每個語言變量的隸屬度函數按照該函數被添加的順序加以編號,第一個添加的隸屬度函數被編為1號,此后依次遞增編號。函數必須指定輸入以下六個參數:例 加入三條高斯型

32、隸屬度函數,如圖所示。說明:當一個隸屬度函數正在被當前模糊推理規則使用時,如果刪除該隸屬度函數將會刪除涉及它的模糊規則,系統會出現要求確認消息框,如果確認刪除將自動刪除相關的一些規則。各參數的含義說明如下:例 刪除隸屬度函數結果。例 刪除被模糊規則使用的隸屬度函數。FIS 系統相關操作說明:該函數用于創建并返回一個新的模糊推理系統,模糊推理系統的特性可由函數的參數指定,其參數個數可達 7 個。如果不指定相應參數則取為缺省值。參數的含義及類型說明如下:例 使用缺省參數的 newfis 函數創建 mamdani 和 sugeno 型模糊系統。說明:打開一個由 指定的模糊推理系統的數據文件( . f

33、is ) ,并將其加載到當前的工作空間( workspace )中的變量 FISMAT 中。當未指定文件名時, MATLAB 將會打開一個文件對話窗口,提示用戶指定某一 fis 文件。說明:使用該函數是獲得模糊推理系統及其對應矩陣的所有屬性的基本方法。也可以用“結構名成員名” ( Structure . field )的語法方式來替代這個函數。在參數列表中, a 為模糊推理系統結構在內存中對應的矩陣變量,必須已經存在,這是必須指定的參數,后面的其他參數則可以省略。僅有參數 a 時,函數將列出模糊推理系統的所有屬性。說明: fismat 為 MATLAB 工作環境內存中的模糊推理系統結構的矩陣變

34、量。例 以分行的形式顯示模糊推理系統 tipperfis 矩陣的所有屬性。說明:該函數的參數個數可以有 3 、 5 、 7 三種情況。當參數個數為 3 時,用于設定模糊推理系統的全局屬性,包括:當參數個數為 5 個時,用于設定模糊推理系統矩陣某一個語言變量的屬性,包括: name (變量名稱)和 bounds (論域范圍)。當參數個數為 7 時,用于設定一個語言變量的某一隸屬度函數的屬性,包括 name (隸屬度函數名稱)、 type (類型)和 params (參數)。系統圖形顯示函數模糊邏輯工具箱中提供了三個函數: plotfis 、 plotmf 和 gensurf ,用于模糊推理系統的

35、圖形顯示。下面詳細介紹這三個函數。模糊邏輯工具箱命令函數應用前一節簡要介紹了用命令行方式來實現模糊邏輯推理。運用命令行方式工作需要掌握相應的一些工具函數的使用,下面就詳細介紹這些工具函數的使用。模糊邏輯工具基本函數分類表模糊邏輯工具基本函數包括圖形工具類函數、隸屬度函數類函數、 FIS 結構的相關類操作函數、 Sugeno 型模糊系統應用函數、仿真模塊庫相關操作函數以及演示范例程序函數等。1 圖形工具類函數2 隸屬度函數類函數3 . FIS 結構的相關類操作函數4 仿真模塊庫相關操作函數5 演示范例程序函數MATLAB 工具箱內置隸屬度函數應用例解在 MATLAB 模糊邏輯工具箱中支持的隸屬度

36、函數類型有如下幾種:高斯型、三角形、梯形、鐘型、 Sigmo 記型、 n 型以及 Z 型。利用工具箱中提供的函數可以建立和計算上述各種類型隸屬度函數。還可以自己定義隸屬度函數用于調用。下面介紹工具箱中內含的隸屬度函數。說明:參數 x 用于指定變量的論域范圍,參數 a 、 b 和 c 指定三角形函數的形狀,要求 a b c 。該函數在 b 點處取最大值 1 , a 、 c 點為 0 (如果要獲得頂點小于 1的三角形函數可以使用 trapmf),函數返回該隸屬度函數對應于坐標矩陣 x 的函數值矩陣。其表達式如下:例 建立三角形隸屬度函數并繪制曲線,如圖所示例 改變參數曲線對比,如圖所示。說明:參數

37、 x 用于指定變量的論域范圍,參數 a 、 b 、 c 和 d 用于指定梯形隸屬度函數的形狀,要求 a = b 且 c = c 函數退化為三角形。函數返回該隸屬度函數對應于坐標矩陣 x 的函數值矩陣。其對應的表達式如下:例 建立并繪制梯形隸屬度函數曲線,如圖所示。例 改變參的數曲線對比,如圖所示。說明:高斯型函數的形狀由兩個參數決定: sig和 c ,其中 c 決定了函數的中心點, sig決定了函數曲線的寬度。參數 x 是用于指定變量論域的矩陣,函數返回該隸屬度函數對應于坐標矩陣 x 的函數值矩陣。高斯函數的表達式如下:例 建立高斯型隸屬度函數,如圖所示。例 不同參數對比,如圖所示。說明:參數

38、 x 是用于指定變量論域的矩陣,函數返回該隸屬度函數對應于坐標矩陣 x 的函數值。矩陣雙邊高斯型函數的曲線由兩個中心點相同的高斯型函數的左、右半邊曲線組合而成,其左右兩段表達式如下:參數 sig1、c1、sig2、c2分別對應左、右半邊高斯函數的寬度與中心點,當 c1 = c2時,雙邊高斯函數在( cl , c2 )段達到最大值 1,否則最大值小于 1 。例 建立雙邊高斯型隸屬度函數,如圖所示。例 不同參數對比,如圖所示。說明:參數 x 用于指定變量論域范圍的矩陣,函數返回該隸屬度函數對應于坐標矩陣 x 的函數值矩陣。a b c用于指定鐘型函數的形狀和位置,其中, c 決定函數的中心位置, a ,

溫馨提示

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

評論

0/150

提交評論