版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、用用MATLAB的模糊邏輯工具箱的模糊邏輯工具箱(Fuzzy toolbox)實現(xiàn)實現(xiàn) lMatlab4.2以后的版本中推出的模糊工具箱(Fuzzy Toolbox),為仿真模糊控制系統(tǒng)提供了很大的方便。 l在Simulink環(huán)境下對PID控制系統(tǒng)進展建模是非常方便的,而模糊控制系統(tǒng)與PID控制系統(tǒng)的構造根本一樣,僅僅是控制器不同。 l對模糊控制系統(tǒng)的建模關鍵是對模糊控制器的建模。Matlab軟件提供了一個模糊推理系統(tǒng)FIS編輯器,只需在Matlab命令窗口鍵入Fuzzy就可進入模糊控制器編輯環(huán)境。 Matlab模糊邏輯工具箱仿真模糊邏輯工具箱仿真l模糊推理系統(tǒng)編輯器模糊推理系統(tǒng)編輯器Fuzz
2、yFuzzy l模糊推理系統(tǒng)編輯器用于設計和顯示模糊推理模糊推理系統(tǒng)編輯器用于設計和顯示模糊推理系統(tǒng)的一些根本信息,如推理系統(tǒng)的稱號,輸系統(tǒng)的一些根本信息,如推理系統(tǒng)的稱號,輸入、輸出變量的個數(shù)與稱號,模糊推理系統(tǒng)的入、輸出變量的個數(shù)與稱號,模糊推理系統(tǒng)的類型、解模糊方法等。其中模糊推理系統(tǒng)可以類型、解模糊方法等。其中模糊推理系統(tǒng)可以采用采用MandaniMandani或或SugeuoSugeuo兩種類型,解模糊方法兩種類型,解模糊方法有最大隸屬度法、重心法、加權平均等。有最大隸屬度法、重心法、加權平均等。l翻開模糊推理系統(tǒng)編輯器,在翻開模糊推理系統(tǒng)編輯器,在MATLABMATLAB的命令窗的
3、命令窗command windowcommand window內(nèi)鍵入:內(nèi)鍵入:fuzzy fuzzy 命令,彈命令,彈出模糊推理系統(tǒng)編輯器界面,如以下圖所示。出模糊推理系統(tǒng)編輯器界面,如以下圖所示。多個輸入時,在多個輸入時,在EditEdit菜單中,選菜單中,選Add variable -Add variable -input,input,參與新的輸入?yún)⑴c新的輸入input,input,如以下圖所示如以下圖所示 選擇選擇input(input(選中選中為紅框為紅框),),在在界面右邊文界面右邊文字輸入處鍵字輸入處鍵入相應的輸入相應的輸入稱號,例入稱號,例如如, ,溫度輸入溫度輸入用用 tmp-
4、tmp-input, input, 磁能磁能輸入用輸入用 mag-mag-inputinput,等。,等。l隸屬度函數(shù)編輯器隸屬度函數(shù)編輯器(Mfedit)(Mfedit)l該編輯器提供一個友好的人機圖形交互環(huán)境,用該編輯器提供一個友好的人機圖形交互環(huán)境,用來設計和修正模糊推理系中各言語變量對應的隸來設計和修正模糊推理系中各言語變量對應的隸屬度函數(shù)的相關參數(shù),如隸屬度函數(shù)的外形、范屬度函數(shù)的相關參數(shù),如隸屬度函數(shù)的外形、范圍、論域大小等,系統(tǒng)提供的隸屬度函數(shù)有三角、圍、論域大小等,系統(tǒng)提供的隸屬度函數(shù)有三角、梯形、高斯形、鐘形等,也可用戶自行定義。梯形、高斯形、鐘形等,也可用戶自行定義。l雙擊
5、所選雙擊所選inputinput,彈出一新界面,在左下,彈出一新界面,在左下RangeRange處處和和Display RangeDisplay Range處處, ,填入取只范圍,例如填入取只范圍,例如 0 0至至9 9 代表代表0 0至至9090。l在右邊文字文字輸入在右邊文字文字輸入NameName處,填寫隸屬函數(shù)的稱處,填寫隸屬函數(shù)的稱號,例如號,例如ltlt或或LT(LT(代表低溫代表低溫) )。l在在TypeType處選擇處選擇trimf(trimf(意為:三角形隸屬函數(shù)曲線,意為:三角形隸屬函數(shù)曲線,triangle member function),triangle member
6、 function),當然也可選其它外當然也可選其它外形。形。 在在Params(Params(參數(shù)參數(shù)) )處,選擇三角形涵蓋的區(qū)間,填寫三個值,處,選擇三角形涵蓋的區(qū)間,填寫三個值,分別為三角形底邊的左端點、中點和右端點在橫坐標上的分別為三角形底邊的左端點、中點和右端點在橫坐標上的值。這些值由設計者確定。值。這些值由設計者確定。用類似的方法設置輸出用類似的方法設置輸出outputoutput的參數(shù)。比如:共有的參數(shù)。比如:共有9 9個規(guī)個規(guī)那么,所以相應地有那么,所以相應地有9 9個輸出隸屬函數(shù)。默許個輸出隸屬函數(shù)。默許3 3個隸屬函數(shù),個隸屬函數(shù),剩下剩下6 6個由設計者參與。點擊個由設
7、計者參與。點擊EditEdit菜單,選菜單,選 Add Custom Add Custom MS-MS-繼續(xù)填入相應參數(shù)即可。繼續(xù)填入相應參數(shù)即可。l模糊推理規(guī)那么編輯器Ruleeditl經(jīng)過隸屬度函數(shù)編輯器來設計和修正“IF.THEN方式的模糊控制規(guī)那么。由該編輯器進展模糊控制規(guī)那么的設計非常方便,它將輸入量各言語變量自動匹配,而設計者只需經(jīng)過交互式的圖形環(huán)境選擇相應的輸出言語變量,這大大簡化了規(guī)那么的設計和修正。另外,還可為每條規(guī)那么選擇權重,以便進展模糊規(guī)那么的優(yōu)化。l選Edit菜單,選擇Rules, 彈出一新界面Rule Editor. 在底部的選擇框內(nèi),選擇相應的 IFANDTHEN
8、 規(guī)那么,點擊Add rule 鍵,上部框內(nèi)將顯示相應的規(guī)那么。本例中用9條左右的規(guī)那么,依次參與。如以下圖所示: l上圖表示當溫度為45度、磁能為45瓦時,輸出干度為約70個單位。左右拉動界面中的兩支紅線,拉到欲選的近似值,右邊圖頂顯示相應的干度結果。l上圖中選菜單View, 選擇Surface,彈出一新界面Surface Viewer,彈出該課題結果的三維圖。如以下圖所示。留意將鼠標箭頭放置圖內(nèi),挪動鼠標可得到不同留意將鼠標箭頭放置圖內(nèi),挪動鼠標可得到不同角度的視圖,如以下圖所示。角度的視圖,如以下圖所示。Matlab模糊控制仿真演例如子模糊控制仿真演例如子l模型sltank.mdl 運用
9、模糊控制器對水箱水位進展控制。l假定水箱有一個進水口和一個出水口,可以經(jīng)過控制一個閥門來控制流入的水量即水位高度,但是流出的速度取決于出水口的半徑定值和水箱底部的壓力隨水箱中的水位高度變化。系統(tǒng)有許多非線性特性。l要求設計的目的是一個適宜的進水口閥門的控制器,可以根據(jù)水箱水位的實時丈量結果對進水閥門進展相應控制,使水位滿足特定要求即特定輸入信號。普通情況下,控制器以水位偏向理想水位和實踐水位的差值及水位變化率作為輸入,輸出的控制結果是進水閥翻開或封鎖的速度。l在Matlab中仿真,可以看到出現(xiàn)一個水箱模型的仿真動畫窗口。該動畫由一個S函數(shù)animtank.m實現(xiàn)。從動畫中,可以察看到實踐系統(tǒng)的
10、水位跟隨殊榮的要求水位信號變化。l假設對S函數(shù)的實現(xiàn)感興趣,可以鍵入命令open animtank或edit animtank來查看 animtank.m文件l在Simulink編輯窗口左邊的模塊閱讀區(qū)可以看到在水箱仿真系統(tǒng)中包括水箱子模型、閥門子模型及 PID 控制子模型。直接在閱讀區(qū)中點擊或右鍵點擊它們,并在彈出菜單中選擇 look under mask 】 ,可以看到這些模塊實現(xiàn)的細節(jié)構造,如圖 所示。l這里暫時不討論詳細的系統(tǒng)模型的構造問題,我們可以先在這個曾經(jīng)建立好的系統(tǒng)模型上進展修正,體驗模糊邏輯與仿真環(huán)境結合運用的優(yōu)勢。l對于仿真模型系統(tǒng)中曾經(jīng)建立的水箱模塊、閥門模塊以及動畫仿真
11、顯示模塊可以直接運用,這里我們重點討論與模糊推理系統(tǒng)設計問題相關的模糊系統(tǒng)變量 tank 即 MATLAB 的模糊邏輯推理系統(tǒng)。在 MATLAB 命令窗口中鍵入命令 fuzzy tank ,就可以開場對模糊系統(tǒng) tank 進展編輯了。l為簡單起見,我們直接利用系統(tǒng)里曾經(jīng)編輯好的模糊推理系統(tǒng),在它的根底上進展修正。這里我們采用與tank . fis中輸入輸出變量模糊集合完全一樣的集合隸屬度函數(shù)定義,只是對模糊規(guī)那么進展一些改動,來學習模糊工具箱與仿真工具的結合運用。對于這個問題,根據(jù)閱歷和直覺很顯然可以得到如下的模糊控制規(guī)那么: lIf 水位誤差小then閥門大小不變權重 1 )lIf 水位低
12、then 閥門迅速翻開權重 1 ) lIf 水位高 then 閥門迅速封鎖權重 1 )l這相當于在原有模糊系統(tǒng)模型上減少兩條模糊規(guī)那么得到的新的模糊推理系統(tǒng)。l改動完成后進展仿真,察看示波器模塊,可以得到系統(tǒng)水位變化,如下圖。l從上圖的仿真控制結果曲線中可以看出上述由三條模糊規(guī)那么組成的模糊控制系統(tǒng)的結果并不理想,因此可以再添加如下兩條模糊控制規(guī)那么:lIf 水位誤差小且變化率為負 then 閥門緩慢封鎖權重 1 ) lIf 水位誤差小且變化率為正 then 閥門緩慢翻開權重 1 ) l系統(tǒng)的輸出變化曲線如以下圖所示。l從上圖可以看出,在添加了模糊控制規(guī)那么后,系統(tǒng)的動態(tài)特性得到較大改善,不但
13、具有較短的呼應時間,而且超調(diào)量也很小。可以用 Surfview tank 命令來顯示模糊控制系統(tǒng)的輸出曲面,如下圖。l在這個例子中,還可以用傳統(tǒng)的 PID 控制方法與模糊邏輯推理控制進展比較。在水箱仿真環(huán)境主界面中將控制方法選擇開關中間的 const 模塊的值由由-1 改為 1 ,這時系統(tǒng)將用傳統(tǒng)的 PID 控制方法進展控制,如下圖。其他例子其他例子l模型Shower.mdl淋浴溫度調(diào)理模糊控制系統(tǒng)仿真; l模型slcp.mdl單級小車倒擺模糊控制系統(tǒng)仿真;l模型 slcp1.mdl變長度倒擺小車模糊控制系統(tǒng)仿真;l模型 slcpp1.mdl定長、變長二倒擺模糊控制系統(tǒng)仿真;l模型slbb.m
14、dl球棒模糊控制系統(tǒng)仿真;l模型sltbu.mdl卡車智能模糊控制倒車系統(tǒng)仿真;l模型sltank2.mdl 用子系統(tǒng)封裝的水箱控制仿真。l學習 MATLAB 仿真工具的一個快速有效的方法就是學習例如模型,經(jīng)過看懂這些模型和模塊的功能以及搭建過程,可以很快熟習和掌握如何運用 MATLAB 仿真工具來設計和搭建本人獨特的模型。l下面以模型Shower.mdl的構造作一個引見,方便讀者更好地了解和學習這個例子。l模型Shower.mdl是一個淋浴溫度及水量調(diào)理的模糊控制系統(tǒng)的仿真,該模糊控制器的輸入變量分別是水流量和水溫,輸出變量分別是對熱水閥和冷水閥的控制方式。該問題是一個典型的閱歷查表法控制例
15、如,是 Mamdani型系統(tǒng),其模糊控制矩陣存為磁盤文件shower.fis。l這個仿真模型的輸出是用示波器來表示的,如下圖。經(jīng)過示波器上的圖形我們可以清楚地看到溫度和水流量跟蹤目的要求的性能。水溫示波器水溫示波器水流示波器水流示波器水溫偏向區(qū)間模糊劃分及隸屬度函數(shù)水溫偏向區(qū)間模糊劃分及隸屬度函數(shù)水流量偏向區(qū)間模糊劃分及隸屬度函數(shù)水流量偏向區(qū)間模糊劃分及隸屬度函數(shù)輸出對冷水閥控制戰(zhàn)略的模糊化分及隸屬度函數(shù)輸出對冷水閥控制戰(zhàn)略的模糊化分及隸屬度函數(shù)輸出對熱水閥控制戰(zhàn)略的模糊化分及隸屬度函數(shù)輸出對熱水閥控制戰(zhàn)略的模糊化分及隸屬度函數(shù)其中輸入變量水溫與流速的偏向與輸出熱水閥、冷水閥的控制方法的閱歷表
16、格如表1及表2所示。根據(jù)這兩個輸出控制表,可以產(chǎn)生九條模糊控制規(guī)那么,如下:系統(tǒng)的模糊推理運算相關定義如下:其他例子,請各位同窗自行翻開研討學習。經(jīng)過經(jīng)過Maltab命令程序創(chuàng)建和命令程序創(chuàng)建和計算模糊邏輯系統(tǒng)計算模糊邏輯系統(tǒng)l前面引見過如何運用圖形化工具建立模糊邏輯系統(tǒng),我們也可以完全用命令行或程序段的方式來實現(xiàn)。l小費問題:l實踐生活中有著許多模糊的概念和邏輯方式,“給小費問題就是一個可以用模糊邏輯來分析的經(jīng)典的例子。以下圖表示的是一個關于飯店的效力質(zhì)量和顧客所給小費之間的關系圖,左邊表示飯店的效力質(zhì)量,作為輸入;右邊表示顧客所給的小費,作為輸出,兩者是有一定邏輯關系的。l圖中的黑箱表示一
17、種映射規(guī)那么,將效力質(zhì)量映射到小費。這個黑箱就是這一邏輯關系的中心部分,它可以了解為各種不同的邏輯,例如模糊邏輯、線性邏輯、專家系統(tǒng)、神經(jīng)網(wǎng)絡、微分方程、多維表格查詢或者隨機選擇器等。在上述問題中,模糊邏輯被證明是最正確的。l在國外飯店就餐后普通需求付給侍者小費,這是國外模糊系統(tǒng)的教材中一個非常經(jīng)典的例子。下面我們經(jīng)過小費問題來闡明模糊邏輯的作用。l“小費問題的中心就是:多少小費是“適宜的?我們先把問題簡化,假定用從 0 10 的數(shù)字代表效力的質(zhì)量10 表示非常好,0 表示非常差,小費應該給多少?這里還思索到問題的背景 在美國平均的小費是餐費15,但詳細多少隨效力質(zhì)量而變。l首先思索最簡單的情
18、況,顧客總是多給總賬單的15作為小費:l用 MATLAB 語句繪圖,如以下圖所示。雖然是簡單的線性關雖然是簡單的線性關系,但這樣的結果曾系,但這樣的結果曾經(jīng)根本可以反映效力經(jīng)根本可以反映效力質(zhì)量對小費的影響效質(zhì)量對小費的影響效果了,假設思索到顧果了,假設思索到顧客所給的小費也該當客所給的小費也該當能反映食物的質(zhì)量,能反映食物的質(zhì)量,那么問題就在原來的那么問題就在原來的根底上擴展為:給定根底上擴展為:給定兩個從兩個從 0 到到 10 的數(shù)的數(shù)字分別代表效力和食字分別代表效力和食物的質(zhì)量物的質(zhì)量 10 表示表示非常好,非常好, 0 表示非常表示非常差,這時小費與它差,這時小費與它們之間的關系又該當
19、們之間的關系又該當如何反映呢?如何反映呢?假設是二元線性關系假設是二元線性關系用以下用以下 MATLAB 語句可繪出以下圖語句可繪出以下圖 ??梢钥吹?,假設不思索效力質(zhì)量要素比食物質(zhì)量要素對可以看到,假設不思索效力質(zhì)量要素比食物質(zhì)量要素對于小費的支付占有更大的比重,上面的關系圖形曾經(jīng)可于小費的支付占有更大的比重,上面的關系圖形曾經(jīng)可以反映一些實踐的情況了。假設希望效力質(zhì)量占小費的以反映一些實踐的情況了。假設希望效力質(zhì)量占小費的 80 % , 80 % , 而食物僅占而食物僅占 20 20 。這里可以設定權重因子:。這里可以設定權重因子:用以下用以下 MATLAB MATLAB 語句可繪出以下語
20、句可繪出以下圖圖這樣的結果與實踐情況還是有些不符。通常顧客都是給這樣的結果與實踐情況還是有些不符。通常顧客都是給1515的的小費,只需效力特別好或特別不好的時候才有改動,也就是說,小費,只需效力特別好或特別不好的時候才有改動,也就是說,希望在圖形中間部分的呼應平坦些,而在兩端效力好或壞希望在圖形中間部分的呼應平坦些,而在兩端效力好或壞有凸起或凹陷。這時效力與小費是分段線性的關系。例如,用有凸起或凹陷。這時效力與小費是分段線性的關系。例如,用下面下面 MATLAB MATLAB 語句繪出的以下圖的情況。語句繪出的以下圖的情況。上圖沒有思索食物質(zhì)量的影響,我們參與這個要素后,上圖沒有思索食物質(zhì)量的
21、影響,我們參與這個要素后,擴展為三維的,就有如下的結果:擴展為三維的,就有如下的結果:用以下用以下 MATLAB MATLAB 語句可繪出圖語句可繪出圖l如今的結果比較好了,可是函數(shù)看起來有點復雜,而且程序也越來越長,未來不便于修正和添加新的規(guī)那么及排除檢查錯誤。對于不清楚設計過程的人來說,設計人員的思想是不容易被了解的。l模糊系統(tǒng)可以很好地結合人類的自然言語。對于小費問題,如今只思索關鍵要素,把問題簡化,得出下面三條規(guī)那么:l 當效力很差的時候,小費比較少。l 當效力比較好的時候,小費中等。 l 當效力非常好的時候,小費比較高。l假設我們把食物對小費的影響思索進來,可以添加下面兩條規(guī)那么:
22、l 當食物很差時,小費比較少。 l 當食物很好時,小費比較高。l上面五條規(guī)那么不分先后順序,但是各條規(guī)那么的重要性可以是不同的,在沒有特殊要求的情況下,可以以為這些規(guī)那么的重要性權重是一樣的。l可以把效力和食物的質(zhì)量綜合起來,總結為如下三條規(guī)那么: l 當效力差或食物差的時候,小費少。 l 當效力好的時候,小費中等。l 當效力很好或食物好的時候,小費高。l當我們曾經(jīng)得到上述三條模糊邏輯系統(tǒng)的推理規(guī)那么后,只需再給出其中的模糊變量例如“效力差、“效力好、“效力非常好等概念的定義和表示,就建立了該問題的一個完好的模糊推理系統(tǒng)的方案。這個系統(tǒng)的中心就是上述三條規(guī)那么以及相關模糊變量的定義。l運用Ma
23、tlab圖形化工具,可以方便地建立起模糊控制系統(tǒng)。用命令行函數(shù)實現(xiàn)模糊邏輯系統(tǒng)用命令行函數(shù)實現(xiàn)模糊邏輯系統(tǒng)l前面主要引見了 MATLAB 圖形化工具的運用, MATLAB 同樣也提供了一些函數(shù)命令來實現(xiàn)模糊邏輯系統(tǒng)。l這些函數(shù)不僅能完全實現(xiàn)圖形化方式所提供的功能,同時還可以實現(xiàn)圖形化方式所難以實現(xiàn)的功能。l特別是對于那些比較復雜的模糊推理系統(tǒng),在輸入輸出變量、隸屬度函數(shù)、模糊規(guī)那么數(shù)目比較多的時候,假設要在圖形化界面中人工輸入,效率就很低。l假設經(jīng)過命令行方式的編程,就可以讓計算機完成許多反復性的輸入任務,大大減少了任務量。l還有其他一些情況,如輸入輸出變量、隸屬度函數(shù)、模糊規(guī)那么等是由程序計
24、算得到的,這時假設采用命令行的編程會更加簡一方便。lMATLAB 模糊工具箱的圖形化工具與命令行函數(shù)是一致的,我們可以將它們結合運用。l無論是命令行方式或是圖形化方式創(chuàng)建的系統(tǒng),其格式都是一樣的。因此,假設根據(jù)需求同時運用兩種方法來編輯一個模糊邏輯系統(tǒng),往往會到達更好的效果。命令行函數(shù)運用例如入門命令行函數(shù)運用例如入門小費問題是模糊邏輯工具箱中提供的一個模糊推理系統(tǒng)的例如。在 MATLAB 中一個模糊邏輯推理系統(tǒng)被當作是一種 FIS 構造。例如,我們在命令行任務環(huán)境鍵入命令:結果:該命令加載小費問題模糊推理系統(tǒng)的數(shù)據(jù)文件到當前的任務空間中,并存為變量 a , a 是一種 FIS 構造的變量。在
25、上面的結果之列中,冒號左邊的標號表示 MATLAB 的 FIS 構造中的與 tipper . fis 相關的構呵斥員變量名,可以經(jīng)過“構造名成員名的方式來訪問這些構呵斥員變量。例如鍵入命令:其真實 MATLAB 里,模糊推理系統(tǒng)是以特定的語法用文本方式來存儲的。假設鍵入命令:type tipper.fis就可以看到這個用 ASCll 代碼存儲的模糊系統(tǒng)。函數(shù) readfis 得到了這個數(shù)據(jù)文件中的一切屬性,并把它們存入一個構造也可以看作是一個廣義的矩陣。上面的例子中經(jīng)過語句 a = readfis ( tipper . fis ) 變量 a 被賦予一個 FIS ( Fuzzy Inferenc
26、e system 構造變量矩陣。這個矩陣主要由 ASCll 代碼構成,通常表現(xiàn)為數(shù)字的陳列,這樣就不便于閱讀,因此需求特定的函數(shù)來顯示系統(tǒng)屬性。函數(shù) getfis ( a 前往結果是關于模糊推理系統(tǒng)的普通屬性,比如說系統(tǒng)稱號,輸入、輸出變量的稱號等等。例如鍵入命令: getfis ( a 結果:從上面的結果我們可以看到,有些屬性并不是構造變量 a 中所包含的。例如鍵入:系統(tǒng)前往如下錯誤信息:但是,假設鍵入:系統(tǒng)前往結果:getfis 函數(shù)還有假設干種運用方法,可以鍵入右邊命令試一試,看看結果。前述功能同樣可以經(jīng)過“構造名成員名的方式來訪問,只是詳細的訪問方式與成員的類型相關。例如,要得到上述
27、getfis ( a ,Inlabels 命令的結果,可以采用如下的方式:前往結果:setfis是和getfis相對應的函數(shù),它允許改動一個 FIS系統(tǒng)的特性。假設想將上述系統(tǒng)的名字 tipper 改為 gratuity ,可以運轉(zhuǎn)命令:前往結果:在結果中可以看到 name 變?yōu)?gratuity ,同樣上面的操作也可以用命令“ a .name = gratuity ,來實現(xiàn)。假設想要知道更詳細的內(nèi)容,經(jīng)過函數(shù) showfis ( a 就可以得到這個 FIS 矩陣的詳細屬性。這個函數(shù)最主要是用來進展程序調(diào)試,但同時它也能分行顯示一切記錄在 FIS 矩陣的信息。在這里構造變量 a 代表一個小費問
28、題的模糊推理系統(tǒng),前面提到的圖形化編輯工具都可以用來對它進展相關操作。下面這些函數(shù)命令將翻開相應的小費系統(tǒng)圖形化工具界面。假設 a 是一個 Sugeno 型的模糊系統(tǒng),命令 anfisedit ( a 將翻開 ANFIS 模糊神經(jīng)網(wǎng)絡系統(tǒng)圖形編輯界面。經(jīng)過經(jīng)過 MATLAB 命令程序創(chuàng)建命令程序創(chuàng)建和計算模糊邏輯系統(tǒng)和計算模糊邏輯系統(tǒng)l前面引見過如何用圖形化工具建立模糊邏輯系統(tǒng),這些也可以完全用命令行或程序段的方式實現(xiàn)。l依然運用小費問題的例子作為范例,在這個例子中將用到 newfis 、 addvar 、 addmf 、 addrde 等幾個函數(shù)。l在用命令行建立模糊邏輯系統(tǒng)的過程中,往往最
29、令人迷惑的就是模糊規(guī)那么在系統(tǒng)中的簡述表達方式。規(guī)那么是經(jīng)過函數(shù) addrule 來參與的,每一個輸入或輸出的變量都有一個索引 ( index 值,同樣每一個隸屬度函數(shù)也有一個 index 值,輸入規(guī)那么的函數(shù)就是運用這些索引來創(chuàng)建相應的模糊規(guī)那么,在 MATLAB 中模糊規(guī)那么普通具有如下方式:模糊規(guī)那么按照下面的邏輯被轉(zhuǎn)化成一種數(shù)據(jù)構造或矩陣的方式來表示:假設系統(tǒng)由 m 個輸入、 n 個輸出變量和 k 條模糊規(guī)那么組成,那么該規(guī)那么構造是一個 m + n + 2 , k 的矩陣。該矩陣的每個行向量代表一條模糊規(guī)那么,這個行向量的前 m 個數(shù)表示前 m 個輸入變量對應的隸屬度函數(shù)的索引值例如
30、,第一列表示第一個輸入變量在各條規(guī)那么的相應的隸屬度函數(shù)的索引,第二列表示第二個輸入變量相應的隸屬度函數(shù)的索引。接著的 n 列表示 n 個輸出變量對應的隸屬度函數(shù)的索引值。第 m + n + 1 列的數(shù)分別表示各條規(guī)那么的權重普通為 1 ) ,第 m + n + 2 列表示各條規(guī)那么之間的相互銜接方式 and = l , or = 2 。這樣,上面這條規(guī)那么用MATLAB的構造表示為一個行向量。假設輸入或是輸出變量加了否認修飾詞not的話,那么只需在相應的隸屬度函數(shù)索引值前鍵入一個負號。例如,對于規(guī)那么:其對應的行向量變?yōu)椋?1 3 2 0.5 2,依次解釋如下:-1表示not MF1;3表示
31、MF3;2表示MF2;0.5表示weight=0.5;2表示or。下面是用“構造名成員名表達方式編寫的創(chuàng)建小費模糊推理系統(tǒng) tipper. fis的命令行程序例如。例 用命令行方式建立小費推理系統(tǒng)模糊模型。這樣的程序相當繁瑣,假設用前面所提到的規(guī)那么構造變量以及相應的一些 MATLAB函數(shù)來實現(xiàn)會簡單得多,例如:運用模糊邏輯推理系統(tǒng)對于給定輸入得到相應的輸出結果才是實踐運用中最終的目的,這個過程在 MATLAB 里可以經(jīng)過函數(shù) evalfis 來完成。例如,下面的命令行用來計算小費推理系統(tǒng)對于輸入變量為 1 , 2 的輸出結果:MATLAB 的的 FIS 構造和存儲構造和存儲l在 MATLAB
32、 中模糊推理系統(tǒng)是以一種 FIS 的構造類型來表示和存儲的。無論是圖形化的工具或是像 getfis 和 setfis 這樣的函數(shù),都可以對這種構造進展直接的操作,同樣也可以用“構造名成員名 ( “ Structure . field 的語法方式來訪問。l FIS 的構造組成很簡單,是將 MATLAB 模糊邏輯的各個函數(shù)一致同來運用的根底。l FIS 構造可以看作是一種層次構造,如以下圖所示。模糊推理系統(tǒng)模糊推理系統(tǒng) FIS FIS 構造層次構造層次可以用 Showfis 函數(shù)來生成關于 FIS 構造變量的詳細信息列表。例如鍵入除了圖形化環(huán)境, MATLAB 的命令行方式提供了以下與 FIS 構
33、造的創(chuàng)建和編輯相關的函數(shù): getfis 、 setfis 、 showfis 、 addvar 、 addmf 、 addrule 、 rmvar 及 rnmlf 。關于這些函數(shù)的運用方法將在后面的內(nèi)容里引見。* . fis 文件格式及存儲文件格式及存儲l在 MATLAB 中模糊推理系統(tǒng)運用一種特定格式的文本文件來存儲,通常以后綴 fis 命名。工具箱提供了 readfis 和 writefis 兩個函數(shù)分別來讀寫這種文件。l FIS 文件是以文本方式存儲,也可以不用圖形工具或是相關函數(shù)而直接用文本編輯器來編輯它。但是這樣往往比較復雜而且容易出錯,由于改動了一個參數(shù)能夠需求在文件的許多地方進
34、展思索和修正。l例如,假設刪除了一條隸屬度函數(shù),那么一切與該隸屬度函數(shù)相關的規(guī)那么就得刪除,而且其他隸屬度函數(shù)的序號也會發(fā)生改動,其他規(guī)那么也要做相應改動。l在 FIS 文件中,模糊規(guī)那么是以 index 方式表示的。直接用文本編輯器或是用命令 type tipper.fis 或 open tipper.fis, edit tipper.fis 都可以查看到小費問題模糊推理系統(tǒng)的文件 tipper . fis ,例如:前面提到的一些函數(shù),例如 readfis 、 getfis 、 setfis 、 showfis 等,都是模糊工具箱提供的命令行函數(shù),直接調(diào)用這些函數(shù)就可以實現(xiàn)對模糊推理系統(tǒng)進展
35、建立、修正以及存儲等操作,下面將詳細引見常用的命令行函數(shù)。闡明:在參數(shù)列表中, a 為模糊推理系統(tǒng)對應的矩陣變量名, varType 用于指定言語變量的類型為字符型如input 或 output ) ; varName 也為字符型變量,用于指定言語變量的名; varBoundS 用于指定言語變量的論域范圍。對于添加到同一個模糊推理系統(tǒng)的言語變量,將按照添加的先后順序自動編號,編號從 1 開場,逐漸遞增。對于分屬于輸入與輸出的不同言語變量那么獨立地分別編號。闡明:當一個模糊言語變量正在被當前的模糊規(guī)那么集運用時,試圖刪除該變量會導致其他相關規(guī)那么被刪除。系統(tǒng)出現(xiàn)訊問對話框,問能否確認刪除命令。在
36、一個模糊言語變量被刪除后,Matlab模糊邏輯工具箱將會自動地對模糊規(guī)那么集進展修正以保證一致性。從varType表示言語變量的類型,為字符型,如input 或 output ; varIndex表示言語變量的編號。闡明:隸屬度函數(shù)只能為模糊推理系統(tǒng)中曾經(jīng)存在的某一言語變量的言語值添加隸屬度函數(shù),而不能添加到一個尚不存在的言語變量中。對于每個言語變量的隸屬度函數(shù)按照該函數(shù)被添加的順序加以編號,第一個添加的隸屬度函數(shù)被編為1號,以后依次遞增編號。函數(shù)必需指定輸入以下六個參數(shù):例 參與三條高斯型隸屬度函數(shù),如下圖。闡明:當一個隸屬度函數(shù)正在被當前模糊推理規(guī)那么運用時,假設刪除該隸屬度函數(shù)將會刪除涉
37、及它的模糊規(guī)那么,系統(tǒng)會出現(xiàn)要求確認音訊框,假設確認刪除將自動刪除相關的一些規(guī)那么。各參數(shù)的含義闡明如下:例 刪除隸屬度函數(shù)結果。例 刪除被模糊規(guī)那么運用的隸屬度函數(shù)。FIS 系統(tǒng)相關操作系統(tǒng)相關操作闡明:該函數(shù)用于創(chuàng)建并前往一個新的模糊推理系統(tǒng),模糊推理系統(tǒng)的特性可由函數(shù)的參數(shù)指定,其參數(shù)個數(shù)可達 7 個。假設不指定相應參數(shù)那么取為缺省值。參數(shù)的含義及類型闡明如下:例 運用缺省參數(shù)的 newfis 函數(shù)創(chuàng)建 mamdani 和 sugeno 型模糊系統(tǒng)。闡明:翻開一個由 filename 指定的模糊推理系統(tǒng)的數(shù)據(jù)文件 . fis ) ,并將其加載到當前的任務空間 workspace 中的變量
38、 FISMAT 中。當未指定文件名時, MATLAB 將會翻開一個文件對話窗口,提示用戶指定某一 fis 文件。闡明:運用該函數(shù)是獲得模糊推理系統(tǒng)及其對應矩陣的一切屬性的根本方法。也可以用“構造名成員名 ( Structure . field 的語法方式來替代這個函數(shù)。在參數(shù)列表中, a 為模糊推理系統(tǒng)構造在內(nèi)存中對應的矩陣變量,必需曾經(jīng)存在,這是必需指定的參數(shù),后面的其他參數(shù)那么可以省略。僅有參數(shù) a 時,函數(shù)將列出模糊推理系統(tǒng)的一切屬性。闡明: fismat 為 MATLAB 任務環(huán)境內(nèi)存中的模糊推理系統(tǒng)構造的矩陣變量。例 以分行的方式顯示模糊推理系統(tǒng) tipperfis 矩陣的一切屬性。
39、闡明:該函數(shù)的參數(shù)個數(shù)可以有 3 、 5 、 7 三種情況。當參數(shù)個數(shù)為 3 時,用于設定模糊推理系統(tǒng)的全局屬性,包括:當參數(shù)個數(shù)為 5 個時,用于設定模糊推理系統(tǒng)矩陣某一個言語變量的屬性,包括: name 變量稱號和 bounds 論域范圍。當參數(shù)個數(shù)為 7 時,用于設定一個言語變量的某一隸屬度函數(shù)的屬性,包括 name 隸屬度函數(shù)稱號、 type 類型和 params 參數(shù)。系統(tǒng)圖形顯示函數(shù)系統(tǒng)圖形顯示函數(shù)l模糊邏輯工具箱中提供了三個函數(shù): plotfis 、 plotmf 和 gensurf ,用于模糊推理系統(tǒng)的圖形顯示。下面詳細引見這三個函數(shù)。模糊邏輯工具箱命令函數(shù)運用模糊邏輯工具箱命
40、令函數(shù)運用l前一節(jié)簡要引見了用命令行方式來實現(xiàn)模糊邏輯推理。運用命令行方式任務需求掌握相應的一些工具函數(shù)的運用,下面就詳細引見這些工具函數(shù)的運用。模糊邏輯工具根本函數(shù)分類表模糊邏輯工具根本函數(shù)分類表l模糊邏輯工具根本函數(shù)包括圖形工具類函數(shù)、隸屬度函數(shù)類函數(shù)、 FIS 構造的相關類操作函數(shù)、 Sugeno 型模糊系統(tǒng)運用函數(shù)、仿真模塊庫相關操作函數(shù)以及演示范例程序函數(shù)等。1 圖形工具類函數(shù)圖形工具類函數(shù)2 隸屬度函數(shù)類函數(shù)隸屬度函數(shù)類函數(shù)3 . FIS 構造的相關類操作函數(shù)構造的相關類操作函數(shù)4 仿真模塊庫相關操作函數(shù)仿真模塊庫相關操作函數(shù)5 演示范例程序函數(shù)演示范例程序函數(shù)MATLAB 工具箱
41、內(nèi)置隸屬度函數(shù)工具箱內(nèi)置隸屬度函數(shù)運用例解運用例解l在 MATLAB 模糊邏輯工具箱中支持的隸屬度函數(shù)類型有如下幾種:高斯型、三角形、梯形、鐘型、 Sigmo 記型、 n 型以及 Z 型。l利用工具箱中提供的函數(shù)可以建立和計算上述各種類型隸屬度函數(shù)。l還可以本人定義隸屬度函數(shù)用于調(diào)用。l下面引見工具箱中內(nèi)含的隸屬度函數(shù)。闡明:參數(shù) x 用于指定變量的論域范圍,參數(shù) a 、 b 和 c 指定三角形函數(shù)的外形,要求 a b c 。該函數(shù)在 b 點處取最大值 1 , a 、 c 點為 0 假設要獲得頂點小于 1的三角形函數(shù)可以運用 trapmf,函數(shù)前往該隸屬度函數(shù)對應于坐標矩陣 x 的函數(shù)值矩陣。
42、其表達式如下:例 建立三角形隸屬度函數(shù)并繪制曲線,如下圖例 改動參數(shù)曲線對比,如下圖。闡明:參數(shù) x 用于指定變量的論域范圍,參數(shù) a 、 b 、 c 和 d 用于指定梯形隸屬度函數(shù)的外形,要求 a = b 且 c = c 函數(shù)退化為三角形。函數(shù)前往該隸屬度函數(shù)對應于坐標矩陣 x 的函數(shù)值矩陣。其對應的表達式如下:例 建立并繪制梯形隸屬度函數(shù)曲線,如下圖。例 改動參的數(shù)曲線對比,如下圖。闡明:高斯型函數(shù)的外形由兩個參數(shù)決議: sig和 c ,其中 c 決議了函數(shù)的中心點, sig決議了函數(shù)曲線的寬度。參數(shù) x 是用于指定變量論域的矩陣,函數(shù)前往該隸屬度函數(shù)對應于坐標矩陣 x 的函數(shù)值矩陣。高斯函數(shù)的表達式如下:例 建立高斯型隸屬度函數(shù),如下圖。例 不同參數(shù)對比,如下圖。闡明:參數(shù) x 是用于指定變量論域的矩陣,函數(shù)前往該隸屬度函數(shù)對應于坐標矩陣 x 的函數(shù)值。矩陣雙邊高斯型函數(shù)的曲線由兩個中心點一樣的高斯型函數(shù)的左、右半邊曲線組合而成,其左右兩段表達式如下:參數(shù) sig1、c1、sig2、c2分別對應左、右半邊高斯函數(shù)的寬度與中心點,當 c1 = c
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《實驗室消毒滅菌》課件
- 《病媒生物控制》課件
- 單位管理制度合并選集人事管理篇
- 《倉庫管理的認識》課件
- 單位管理制度分享合集【人事管理篇】十篇
- 單位管理制度范例匯編【人事管理】十篇
- 做情緒的主人 高一上學期心理健康教育課
- 2024年農(nóng)業(yè)年終工作總結
- 2024年協(xié)輔警個人總結
- 《山東膠州秧歌》課件
- 有害生物防制員技能競賽理論考試題庫500題(含答案)
- HIV陽性孕產(chǎn)婦全程管理專家共識2024年版解讀
- 小學體育跨學科主題學習教學設計:小小志愿軍
- 附件2:慢病管理中心評審實施細則2024年修訂版
- 《ISO56001-2024創(chuàng)新管理體系 - 要求》之4:“4組織環(huán)境-確定創(chuàng)新管理體系的范圍”解讀和應用指導材料(雷澤佳編制-2024)
- 2024-2030年中國散熱產(chǎn)業(yè)運營效益及投資前景預測報告
- 和父親斷絕聯(lián)系協(xié)議書范本
- 2024時事政治考試題庫(100題)
- 2024地理知識競賽試題
- 【新教材】統(tǒng)編版(2024)七年級上冊語文期末復習課件129張
- 欽州市浦北縣2022-2023學年七年級上學期期末語文試題
評論
0/150
提交評論