版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、模糊控制技術(shù),模糊控制的Matlab仿真,用MATLAB的模糊邏輯工具箱(Fuzzy toolbox)實(shí)現(xiàn),Matlab4.2以后的版本中推出的模糊工具箱(Fuzzy Toolbox),為仿真模糊控制系統(tǒng)提供了很大的方便。 在Simulink環(huán)境下對PID控制系統(tǒng)進(jìn)行建模是非常方便的,而模糊控制系統(tǒng)與PID控制系統(tǒng)的結(jié)構(gòu)基本相同,僅僅是控制器不同。 對模糊控制系統(tǒng)的建模關(guān)鍵是對模糊控制器的建模。Matlab軟件提供了一個(gè)模糊推理系統(tǒng)(FIS)編輯器,只要在Matlab命令窗口鍵入Fuzzy就可進(jìn)入模糊控制器編輯環(huán)境。,Matlab模糊邏輯工具箱仿真,模糊推理系統(tǒng)編輯器(Fuzzy) 模糊推理系
2、統(tǒng)編輯器用于設(shè)計(jì)和顯示模糊推理系統(tǒng)的一些基本信息,如推理系統(tǒng)的名稱,輸入、輸出變量的個(gè)數(shù)與名稱,模糊推理系統(tǒng)的類型、解模糊方法等。其中模糊推理系統(tǒng)可以采用Mandani或Sugeuo兩種類型,解模糊方法有最大隸屬度法、重心法、加權(quán)平均等。 打開模糊推理系統(tǒng)編輯器,在MATLAB的命令窗(command window)內(nèi)鍵入:fuzzy 命令,彈出模糊推理系統(tǒng)編輯器界面,如下圖所示。,多個(gè)輸入時(shí),在Edit菜單中,選Add variable -input,加入新的輸入input,如下圖所示,選擇input(選中為紅框),在界面右邊文字輸入處鍵入相應(yīng)的輸入名稱,例如,溫度輸入用 tmp-input
3、, 磁能輸入用 mag-input,等。,隸屬度函數(shù)編輯器(Mfedit) 該編輯器提供一個(gè)友好的人機(jī)圖形交互環(huán)境,用來設(shè)計(jì)和修改模糊推理系中各語言變量對應(yīng)的隸屬度函數(shù)的相關(guān)參數(shù),如隸屬度函數(shù)的形狀、范圍、論域大小等,系統(tǒng)提供的隸屬度函數(shù)有三角、梯形、高斯形、鐘形等,也可用戶自行定義。 雙擊所選input,彈出一新界面,在左下Range處和Display Range處,填入取只范圍,例如 0至9 (代表0至90)。 在右邊文字文字輸入Name處,填寫隸屬函數(shù)的名稱,例如lt或LT(代表低溫)。 在Type處選擇trimf(意為:三角形隸屬函數(shù)曲線,triangle member functio
4、n),當(dāng)然也可選其它形狀。,在Params(參數(shù))處,選擇三角形涵蓋的區(qū)間,填寫三個(gè)值,分別為三角形底邊的左端點(diǎn)、中點(diǎn)和右端點(diǎn)在橫坐標(biāo)上的值。這些值由設(shè)計(jì)者確定。,用類似的方法設(shè)置輸出output的參數(shù)。比如:共有9個(gè)規(guī)則,所以相應(yīng)地有9個(gè)輸出隸屬函數(shù)。默認(rèn)3個(gè)隸屬函數(shù),剩下6個(gè)由設(shè)計(jì)者加入。點(diǎn)擊Edit菜單,選 Add Custom MS-繼續(xù)填入相應(yīng)參數(shù)即可。,模糊推理規(guī)則編輯器Ruleedit 通過隸屬度函數(shù)編輯器來設(shè)計(jì)和修改“IF.THEN”形式的模糊控制規(guī)則。由該編輯器進(jìn)行模糊控制規(guī)則的設(shè)計(jì)非常方便,它將輸入量各語言變量自動(dòng)匹配,而設(shè)計(jì)者只要通過交互式的圖形環(huán)境選擇相應(yīng)的輸出語言變量
5、,這大大簡化了規(guī)則的設(shè)計(jì)和修改。另外,還可為每條規(guī)則選擇權(quán)重,以便進(jìn)行模糊規(guī)則的優(yōu)化。 選Edit菜單,選擇Rules, 彈出一新界面Rule Editor. 在底部的選擇框內(nèi),選擇相應(yīng)的 IFANDTHEN 規(guī)則,點(diǎn)擊Add rule 鍵,上部框內(nèi)將顯示相應(yīng)的規(guī)則。本例中用9條左右的規(guī)則,依次加入。如下圖所示:,模糊邏輯工具箱仿真結(jié)果 模糊規(guī)則瀏覽器用于顯示各條模糊控制規(guī)則對應(yīng)的輸入量和輸出量的隸屬度函數(shù)。通過指定輸入量,可以直接的顯示所采用的控制規(guī)則,以及通過模糊推理得到相應(yīng)輸出量的全過程,以便對模糊規(guī)則進(jìn)行修改和優(yōu)化。 所有規(guī)則填入后,選菜單View, 選擇Rules,彈出一新界面Rul
6、e Viewer,如下圖所示。,上圖表示當(dāng)溫度為45度、磁能為45瓦時(shí),輸出干度為約70個(gè)單位。左右拉動(dòng)界面中的兩支紅線,拉到欲選的近似值,右邊圖頂顯示相應(yīng)的干度結(jié)果。 上圖中選菜單View, 選擇Surface,彈出一新界面Surface Viewer,彈出該課題結(jié)果的三維圖。如下圖所示。,注意將鼠標(biāo)箭頭放置圖內(nèi),移動(dòng)鼠標(biāo)可得到不同角度的視圖,如下圖所示。,Matlab模糊控制仿真演示例子,模型sltank.mdl 使用模糊控制器對水箱水位進(jìn)行控制。 假定水箱有一個(gè)進(jìn)水口和一個(gè)出水口,可以通過控制一個(gè)閥門來控制流入的水量(即水位高度),但是流出的速度取決于出水口的半徑(定值)和水箱底部的壓力
7、(隨水箱中的水位高度變化)。系統(tǒng)有許多非線性特性。 要求設(shè)計(jì)的目標(biāo)是一個(gè)合適的進(jìn)水口閥門的控制器,能夠根據(jù)水箱水位的實(shí)時(shí)測量結(jié)果對進(jìn)水閥門進(jìn)行相應(yīng)控制,使水位滿足特定要求(即特定輸入信號)。一般情況下,控制器以水位偏差(理想水位和實(shí)際水位的差值)及水位變化率作為輸入,輸出的控制結(jié)果是進(jìn)水閥打開或關(guān)閉的速度。,在Matlab中仿真,可以看到出現(xiàn)一個(gè)水箱模型的仿真動(dòng)畫窗口。該動(dòng)畫由一個(gè)S函數(shù)”animtank.m”實(shí)現(xiàn)。從動(dòng)畫中,可以觀察到實(shí)際系統(tǒng)的水位跟隨殊榮的要求水位信號變化。,如果對S函數(shù)的實(shí)現(xiàn)感興趣,可以鍵入命令open animtank(或edit animtank)來查看” animt
8、ank.m”文件,在Simulink編輯窗口左邊的模塊瀏覽區(qū)可以看到在水箱仿真系統(tǒng)中包括水箱子模型、閥門子模型及 PID 控制子模型。直接在瀏覽區(qū)中點(diǎn)擊或右鍵點(diǎn)擊它們,并在彈出菜單中選擇 look under mask 】 ,可以看到這些模塊實(shí)現(xiàn)的細(xì)節(jié)結(jié)構(gòu),如圖 所示。,這里暫時(shí)不討論具體的系統(tǒng)模型的構(gòu)造問題,我們可以先在這個(gè)已經(jīng)建立好的系統(tǒng)模型上進(jìn)行修改,體驗(yàn)?zāi):壿嬇c仿真環(huán)境結(jié)合使用的優(yōu)勢。 對于仿真模型系統(tǒng)中已經(jīng)建立的水箱模塊、閥門模塊以及動(dòng)畫仿真顯示模塊可以直接使用,這里我們重點(diǎn)討論與模糊推理系統(tǒng)設(shè)計(jì)問題相關(guān)的模糊系統(tǒng)變量 tank (即 MATLAB 的模糊邏輯推理系統(tǒng))。在 MAT
9、LAB 命令窗口中鍵入命令 fuzzy tank ,就可以開始對模糊系統(tǒng) tank 進(jìn)行編輯了。,為簡單起見,我們直接利用系統(tǒng)里已經(jīng)編輯好的模糊推理系統(tǒng),在它的基礎(chǔ)上進(jìn)行修改。這里我們采用與tank . fis中輸入輸出變量模糊集合完全相同的集合隸屬度函數(shù)定義,只是對模糊規(guī)則進(jìn)行一些改動(dòng),來學(xué)習(xí)模糊工具箱與仿真工具的結(jié)合運(yùn)用。對于這個(gè)問題,根據(jù)經(jīng)驗(yàn)和直覺很顯然可以得到如下的模糊控制規(guī)則: If (水位誤差?。﹖hen(閥門大小不變(權(quán)重 1 ) If (水位低) then (閥門迅速打開)(權(quán)重 1 ) If (水位高) then (閥門迅速關(guān)閉)(權(quán)重 1 ),這相當(dāng)于在原有模糊系統(tǒng)模型上減
10、少兩條模糊規(guī)則得到的新的模糊推理系統(tǒng)。 改動(dòng)完成后進(jìn)行仿真,觀察示波器模塊,可以得到系統(tǒng)水位變化,如圖所示。,從上圖的仿真控制結(jié)果曲線中可以看出上述由三條模糊規(guī)則組成的模糊控制系統(tǒng)的結(jié)果并不理想,因此可以再增加如下兩條模糊控制規(guī)則: If (水位誤差小且變化率為負(fù)) then (閥門緩慢關(guān)閉)(權(quán)重 1 ) If (水位誤差小且變化率為正) then (閥門緩慢打開)(權(quán)重 1 ) 系統(tǒng)的輸出變化曲線如下圖所示。,從上圖可以看出,在增加了模糊控制規(guī)則后,系統(tǒng)的動(dòng)態(tài)特性得到較大改善,不但具有較短的響應(yīng)時(shí)間,而且超調(diào)量也很小??梢杂?Surfview tank 命令來顯示模糊控制系統(tǒng)的輸出曲面,如
11、圖所示。,在這個(gè)例子中,還可以用傳統(tǒng)的 PID 控制方法與模糊邏輯推理控制進(jìn)行比較。在水箱仿真環(huán)境主界面中將控制方法選擇開關(guān)中間的 const 模塊的值由由-1 改為 1 ,這時(shí)系統(tǒng)將用傳統(tǒng)的 PID 控制方法進(jìn)行控制,如圖所示。,其他例子,模型Shower.mdl淋浴溫度調(diào)節(jié)模糊控制系統(tǒng)仿真; 模型slcp.mdl單級小車倒擺模糊控制系統(tǒng)仿真; 模型 slcp1.mdl變長度倒擺小車模糊控制系統(tǒng)仿真; 模型 slcpp1.mdl定長、變長二倒擺模糊控制系統(tǒng)仿真; 模型slbb.mdl球棒模糊控制系統(tǒng)仿真; 模型sltbu.mdl卡車智能模糊控制倒車系統(tǒng)仿真; 模型sltank2.mdl 用子
12、系統(tǒng)封裝的水箱控制仿真。,學(xué)習(xí) MATLAB 仿真工具的一個(gè)快速有效的方法就是學(xué)習(xí)示例模型,通過看懂這些模型和模塊的功能以及搭建過程,可以很快熟悉和掌握如何使用 MATLAB 仿真工具來設(shè)計(jì)和搭建自己獨(dú)特的模型。 下面以模型Shower.mdl的結(jié)構(gòu)作一個(gè)介紹,方便讀者更好地理解和學(xué)習(xí)這個(gè)例子。 模型Shower.mdl是一個(gè)淋浴溫度及水量調(diào)節(jié)的模糊控制系統(tǒng)的仿真,該模糊控制器的輸入變量分別是水流量和水溫,輸出變量分別是對熱水閥和冷水閥的控制方式。該問題是一個(gè)典型的經(jīng)驗(yàn)查表法控制示例,是 Mamdani型系統(tǒng),其模糊控制矩陣存為磁盤文件shower.fis。,這個(gè)仿真模型的輸出是用示波器來表示
13、的,如圖所示。通過示波器上的圖形我們可以清楚地看到溫度和水流量跟蹤目標(biāo)要求的性能。,水溫示波器,水流示波器,水溫偏差區(qū)間模糊劃分及隸屬度函數(shù),水流量偏差區(qū)間模糊劃分及隸屬度函數(shù),輸出對冷水閥控制策略的模糊化分及隸屬度函數(shù),輸出對熱水閥控制策略的模糊化分及隸屬度函數(shù),其中輸入變量水溫與流速的偏差與輸出熱水閥、冷水閥的控制方法的經(jīng)驗(yàn)表格如表1及表2所示。,根據(jù)這兩個(gè)輸出控制表,可以產(chǎn)生九條模糊控制規(guī)則,如下:,系統(tǒng)的模糊推理運(yùn)算相關(guān)定義如下:,其余例子,請各位同學(xué)自行打開研究學(xué)習(xí)。,通過Maltab命令(程序)創(chuàng)建和計(jì)算模糊邏輯系統(tǒng),前面介紹過如何使用圖形化工具建立模糊邏輯系統(tǒng),我們也可以完全用命
14、令行或程序段的方式來實(shí)現(xiàn)。 小費(fèi)問題: 實(shí)際生活中有著許多模糊的概念和邏輯方式,“給小費(fèi)”問題就是一個(gè)可以用模糊邏輯來分析的經(jīng)典的例子。下圖表示的是一個(gè)關(guān)于飯店的服務(wù)質(zhì)量和顧客所給小費(fèi)之間的關(guān)系圖,左邊表示飯店的服務(wù)質(zhì)量,作為輸入;右邊表示顧客所給的小費(fèi),作為輸出,兩者是有一定邏輯關(guān)系的。,圖中的黑箱表示一種映射規(guī)則,將服務(wù)質(zhì)量映射到小費(fèi)。這個(gè)黑箱就是這一邏輯關(guān)系的核心部分,它可以理解為各種不同的邏輯,例如模糊邏輯、線性邏輯、專家系統(tǒng)、神經(jīng)網(wǎng)絡(luò)、微分方程、多維表格查詢或者隨機(jī)選擇器等。在上述問題中,模糊邏輯被證明是最佳的。,在國外飯店就餐后一般需要付給侍者小費(fèi),這是國外模糊系統(tǒng)的教材中一個(gè)非常
15、經(jīng)典的例子。下面我們通過小費(fèi)問題來說明模糊邏輯的作用。 “小費(fèi)”問題的核心就是:多少小費(fèi)是“合適”的?我們先把問題簡化,假定用從 0 10 的數(shù)字代表服務(wù)的質(zhì)量(10 表示非常好,0 表示非常差),小費(fèi)應(yīng)該給多少?這里還考慮到問題的背景 在美國平均的小費(fèi)是餐費(fèi)15,但具體多少隨服務(wù)質(zhì)量而變。,首先考慮最簡單的情況,顧客總是多給總賬單的15作為小費(fèi):,用 MATLAB 語句繪圖,如下圖所示。,雖然是簡單的線性關(guān)系,但這樣的結(jié)果已經(jīng)基本能夠反映服務(wù)質(zhì)量對小費(fèi)的影響效果了,如果考慮到顧客所給的小費(fèi)也應(yīng)當(dāng)能反映食物的質(zhì)量,那么問題就在原來的基礎(chǔ)上擴(kuò)展為:給定兩個(gè)從 0 到 10 的數(shù)字分別代表服務(wù)和食
16、物的質(zhì)量( 10 表示非常好, 0 表示非常差),這時(shí)小費(fèi)與它們之間的關(guān)系又應(yīng)當(dāng)如何反映呢?,假設(shè)是二元線性關(guān)系,用下列 MATLAB 語句可繪出下圖 。,可以看到,如果不考慮服務(wù)質(zhì)量因素比食物質(zhì)量因素對于小費(fèi)的支付占有更大的比重,上面的關(guān)系圖形已經(jīng)能夠反映一些實(shí)際的情況了。假如希望服務(wù)質(zhì)量占小費(fèi)的 80 % , 而食物僅占 20 。這里可以設(shè)定權(quán)重因子:,用下列 MATLAB 語句可繪出下圖,這樣的結(jié)果與實(shí)際情況還是有些不符。通常顧客都是給15的小費(fèi),只有服務(wù)特別好或特別不好的時(shí)候才有改變,也就是說,希望在圖形中間部分的響應(yīng)平坦些,而在兩端(服務(wù)好或壞)有凸起或凹陷。這時(shí)服務(wù)與小費(fèi)是分段線性
17、的關(guān)系。例如,用下面 MATLAB 語句繪出的下圖的情況。,上圖沒有考慮食物質(zhì)量的影響,我們加入這個(gè)因素后,擴(kuò)展為三維的,就有如下的結(jié)果:,用下列 MATLAB 語句可繪出圖,現(xiàn)在的結(jié)果比較好了,可是函數(shù)看起來有點(diǎn)復(fù)雜,而且程序也越來越長,將來不便于修改和增加新的規(guī)則及排除檢查錯(cuò)誤。對于不清楚設(shè)計(jì)過程的人來說,設(shè)計(jì)人員的思維是不容易被理解的。 模糊系統(tǒng)可以很好地結(jié)合人類的自然語言。對于小費(fèi)問題,現(xiàn)在只考慮關(guān)鍵因素,把問題簡化,得出下面三條規(guī)則: 當(dāng)服務(wù)很差的時(shí)候,小費(fèi)比較少。 當(dāng)服務(wù)比較好的時(shí)候,小費(fèi)中等。 當(dāng)服務(wù)非常好的時(shí)候,小費(fèi)比較高。,如果我們把食物對小費(fèi)的影響考慮進(jìn)來,可以增加下面兩條
18、規(guī)則: 當(dāng)食物很差時(shí),小費(fèi)比較少。 當(dāng)食物很好時(shí),小費(fèi)比較高。 上面五條規(guī)則不分先后順序,但是各條規(guī)則的重要性可以是不同的,在沒有特殊要求的情況下,可以認(rèn)為這些規(guī)則的重要性(權(quán)重)是相同的。,可以把服務(wù)和食物的質(zhì)量綜合起來,總結(jié)為如下三條規(guī)則: 當(dāng)服務(wù)差或食物差的時(shí)候,小費(fèi)少。 當(dāng)服務(wù)好的時(shí)候,小費(fèi)中等。 當(dāng)服務(wù)很好或食物好的時(shí)候,小費(fèi)高。 當(dāng)我們已經(jīng)得到上述三條模糊邏輯系統(tǒng)的推理規(guī)則后,只要再給出其中的模糊變量(例如“服務(wù)差”、“服務(wù)好”、“服務(wù)非常好”等概念)的定義和表示,就建立了該問題的一個(gè)完整的模糊推理系統(tǒng)的方案。這個(gè)系統(tǒng)的核心就是上述三條規(guī)則以及相關(guān)模糊變量的定義。 使用Matlab
19、圖形化工具,可以方便地建立起模糊控制系統(tǒng)。,用命令行函數(shù)實(shí)現(xiàn)模糊邏輯系統(tǒng),前面主要介紹了 MATLAB 圖形化工具的使用, MATLAB 同樣也提供了一些函數(shù)命令來實(shí)現(xiàn)模糊邏輯系統(tǒng)。 這些函數(shù)不僅能完全實(shí)現(xiàn)圖形化方式所提供的功能,同時(shí)還可以實(shí)現(xiàn)圖形化方式所難以實(shí)現(xiàn)的功能。 特別是對于那些比較復(fù)雜的模糊推理系統(tǒng),在輸入輸出變量、隸屬度函數(shù)、模糊規(guī)則數(shù)目比較多的時(shí)候,如果要在圖形化界面中人工輸入,效率就很低。,如果通過命令行方式的編程,就可以讓計(jì)算機(jī)完成許多重復(fù)性的輸入工作,大大減少了工作量。 還有其他一些情況,如輸入輸出變量、隸屬度函數(shù)、模糊規(guī)則等是由程序計(jì)算得到的,這時(shí)如果采用命令行的編程會(huì)更
20、加簡單方便。 MATLAB 模糊工具箱的圖形化工具與命令行函數(shù)是統(tǒng)一的,我們可以將它們結(jié)合使用。 無論是命令行方式或是圖形化方式創(chuàng)建的系統(tǒng),其格式都是一樣的。因此,如果根據(jù)需要同時(shí)使用兩種方法來編輯一個(gè)模糊邏輯系統(tǒng),往往會(huì)達(dá)到更好的效果。,命令行函數(shù)使用示例入門,小費(fèi)問題是模糊邏輯工具箱中提供的一個(gè)模糊推理系統(tǒng)的示例。在 MATLAB 中一個(gè)模糊邏輯推理系統(tǒng)被當(dāng)作是一種 FIS 結(jié)構(gòu)。例如,我們在命令行工作環(huán)境鍵入命令:,結(jié)果:,該命令加載小費(fèi)問題模糊推理系統(tǒng)的數(shù)據(jù)文件到當(dāng)前的工作空間中,并存為變量 a , a 是一種 FIS 結(jié)構(gòu)的變量。在上面的結(jié)果之列中,冒號左邊的標(biāo)號表示 MATLAB
21、的 FIS 結(jié)構(gòu)中的與 tipper . fis 相關(guān)的結(jié)構(gòu)成員變量名,可以通過“結(jié)構(gòu)名成員名”的方式來訪問這些結(jié)構(gòu)成員變量。例如鍵入命令:,其實(shí)在 MATLAB 里,模糊推理系統(tǒng)是以特定的語法用文本方式來存儲(chǔ)的。如果鍵入命令:type tipper.fis,就可以看到這個(gè)用 ASCll 代碼存儲(chǔ)的模糊系統(tǒng)。函數(shù) readfis 得到了這個(gè)數(shù)據(jù)文件中的所有屬性,并把它們存入一個(gè)結(jié)構(gòu)(也可以看作是一個(gè)廣義的矩陣)。上面的例子中通過語句 a = readfis ( tipper . fis ) 變量 a 被賦予一個(gè) FIS ( Fuzzy Inference system )結(jié)構(gòu)變量矩陣。這個(gè)矩陣
22、主要由 ASCll 代碼構(gòu)成,通常表現(xiàn)為數(shù)字的排列,這樣就不便于閱讀,因此需要特定的函數(shù)來顯示系統(tǒng)屬性。函數(shù) getfis ( a )返回結(jié)果是關(guān)于模糊推理系統(tǒng)的一般屬性,比如說系統(tǒng)名稱,輸入、輸出變量的名稱等等。例如鍵入命令: getfis ( a ),結(jié)果:,從上面的結(jié)果我們可以看到,有些屬性并不是結(jié)構(gòu)變量 a 中所包含的。例如鍵入:,系統(tǒng)返回如下錯(cuò)誤信息:,但是,如果鍵入:,系統(tǒng)返回結(jié)果:,getfis 函數(shù)還有若干種使用方法,可以鍵入右邊命令試一試,看看結(jié)果。,前述功能同樣可以通過“結(jié)構(gòu)名成員名”的方式來訪問,只是具體的訪問方式與成員的類型相關(guān)。例如,要得到上述 getfis ( a
23、,Inlabels )命令的結(jié)果,可以采用如下的方式:,返回結(jié)果:,setfis是和getfis相對應(yīng)的函數(shù),它允許改變一個(gè) FIS系統(tǒng)的特性。如果想將上述系統(tǒng)的名字 tipper 改為 gratuity ,可以運(yùn)行命令:,返回結(jié)果:,在結(jié)果中可以看到 name 變?yōu)?gratuity ,同樣上面的操作也可以用命令“ a .name = gratuity ” ,來實(shí)現(xiàn)。如果想要知道更詳細(xì)的內(nèi)容,通過函數(shù) showfis ( a )就可以得到這個(gè) FIS 矩陣的詳細(xì)屬性。這個(gè)函數(shù)最主要是用來進(jìn)行程序調(diào)試,但同時(shí)它也能分行顯示所有記錄在 FIS 矩陣的信息。,在這里結(jié)構(gòu)變量 a 代表一個(gè)小費(fèi)問題的
24、模糊推理系統(tǒng),前面提到的圖形化編輯工具都可以用來對它進(jìn)行相關(guān)操作。下面這些函數(shù)命令將打開相應(yīng)的小費(fèi)系統(tǒng)圖形化工具界面。,如果 a 是一個(gè) Sugeno 型的模糊系統(tǒng),命令 anfisedit ( a )將打開 ANFIS (模糊神經(jīng)網(wǎng)絡(luò)系統(tǒng))圖形編輯界面。,通過 MATLAB 命令(程序)創(chuàng)建和計(jì)算模糊邏輯系統(tǒng),前面介紹過如何用圖形化工具建立模糊邏輯系統(tǒng),這些也可以完全用命令行或程序段的方式實(shí)現(xiàn)。 仍然使用小費(fèi)問題的例子作為范例,在這個(gè)例子中將用到 newfis 、 addvar 、 addmf 、 addrde 等幾個(gè)函數(shù)。 在用命令行建立模糊邏輯系統(tǒng)的過程中,往往最令人迷惑的就是模糊規(guī)則在
25、系統(tǒng)中的簡述表達(dá)方式。,規(guī)則是通過函數(shù) addrule 來加入的,每一個(gè)輸入或輸出的變量都有一個(gè)索引 ( index )值,同樣每一個(gè)隸屬度函數(shù)也有一個(gè) index 值,輸入規(guī)則的函數(shù)就是使用這些索引來創(chuàng)建相應(yīng)的模糊規(guī)則,在 MATLAB 中模糊規(guī)則一般具有如下形式:,模糊規(guī)則按照下面的邏輯被轉(zhuǎn)化成一種數(shù)據(jù)結(jié)構(gòu)(或矩陣)的形式來表示:如果系統(tǒng)由 m 個(gè)輸入、 n 個(gè)輸出變量和 k 條模糊規(guī)則組成,則該規(guī)則結(jié)構(gòu)是一個(gè)( m + n + 2 , k )的矩陣。,該矩陣的每個(gè)行向量代表一條模糊規(guī)則,這個(gè)行向量的前 m 個(gè)數(shù)表示前 m 個(gè)輸入變量對應(yīng)的隸屬度函數(shù)的索引值,例如,第一列表示第一個(gè)輸入變量
26、在各條規(guī)則的相應(yīng)的隸屬度函數(shù)的索引,第二列表示第二個(gè)輸入變量相應(yīng)的隸屬度函數(shù)的索引。,接著的 n 列表示 n 個(gè)輸出變量對應(yīng)的隸屬度函數(shù)的索引值。第 m + n + 1 列的數(shù)分別表示各條規(guī)則的權(quán)重(一般為 1 ) ,第 m + n + 2 列表示各條規(guī)則之間的相互連接方式( and = l , or = 2 )。這樣,上面這條規(guī)則用MATLAB的結(jié)構(gòu)表示為一個(gè)行向量。,如果輸入或是輸出變量加了否定修飾詞not的話,則只需在相應(yīng)的隸屬度函數(shù)索引值前鍵入一個(gè)負(fù)號。例如,對于規(guī)則:,其對應(yīng)的行向量變?yōu)椋?1 3 2 0.5 2,依次解釋如下:-1表示not MF1;3表示MF3;2表示MF2;0.
27、5表示weight=0.5;2表示or。,下面是用“結(jié)構(gòu)名成員名”表達(dá)方式編寫的創(chuàng)建小費(fèi)模糊推理系統(tǒng) tipper. fis的命令行程序示例。,例 用命令行方式建立小費(fèi)推理系統(tǒng)模糊模型。,這樣的程序相當(dāng)繁瑣,如果用前面所提到的規(guī)則結(jié)構(gòu)變量以及相應(yīng)的一些 MATLAB函數(shù)來實(shí)現(xiàn)會(huì)簡單得多,例如:,使用模糊邏輯推理系統(tǒng)對于給定輸入得到相應(yīng)的輸出結(jié)果才是實(shí)際使用中最終的目的,這個(gè)過程在 MATLAB 里可以通過函數(shù) evalfis 來完成。例如,下面的命令行用來計(jì)算小費(fèi)推理系統(tǒng)對于輸入變量為 1 , 2 的輸出結(jié)果:,MATLAB 的 FIS 結(jié)構(gòu)和存儲(chǔ),在 MATLAB 中模糊推理系統(tǒng)是以一種 F
28、IS 的結(jié)構(gòu)類型來表示和存儲(chǔ)的。無論是圖形化的工具或是像 getfis 和 setfis 這樣的函數(shù),都可以對這種結(jié)構(gòu)進(jìn)行直接的操作,同樣也可以用“結(jié)構(gòu)名成員名” ( “ Structure . field ” )的語法方式來訪問。 FIS 的結(jié)構(gòu)組成很簡單,是將 MATLAB 模糊邏輯的各個(gè)函數(shù)統(tǒng)一起來使用的基礎(chǔ)。 FIS 結(jié)構(gòu)可以看作是一種層次結(jié)構(gòu),如下圖所示。,模糊推理系統(tǒng) FIS 結(jié)構(gòu)層次,可以用 Showfis 函數(shù)來生成關(guān)于 FIS 結(jié)構(gòu)變量的詳細(xì)信息列表。例如鍵入,除了圖形化環(huán)境, MATLAB 的命令行方式提供了下列與 FIS 結(jié)構(gòu)的創(chuàng)建和編輯相關(guān)的函數(shù): getfis 、 s
29、etfis 、 showfis 、 addvar 、 addmf 、 addrule 、 rmvar 及 rnmlf 。關(guān)于這些函數(shù)的使用方法將在后面的內(nèi)容里介紹。,* . fis 文件格式及存儲(chǔ),在 MATLAB 中模糊推理系統(tǒng)使用一種特定格式的文本文件來存儲(chǔ),通常以后綴 fis 命名。工具箱提供了 readfis 和 writefis 兩個(gè)函數(shù)分別來讀寫這種文件。 FIS 文件是以文本方式存儲(chǔ),也可以不用圖形工具或是相關(guān)函數(shù)而直接用文本編輯器來編輯它。但是這樣往往比較復(fù)雜而且容易出錯(cuò),因?yàn)楦膭?dòng)了一個(gè)參數(shù)可能需要在文件的許多地方進(jìn)行考慮和修改。,例如,如果刪除了一條隸屬度函數(shù),那么所有與該隸
30、屬度函數(shù)相關(guān)的規(guī)則就得刪除,而且其他隸屬度函數(shù)的序號也會(huì)發(fā)生改變,其他規(guī)則也要做相應(yīng)改動(dòng)。 在 FIS 文件中,模糊規(guī)則是以 index 方式表示的。直接用文本編輯器或是用命令 type tipper.fis (或 open tipper.fis, edit tipper.fis )都可以查看到小費(fèi)問題模糊推理系統(tǒng)的文件 tipper . fis ,例如:,前面提到的一些函數(shù),例如 readfis 、 getfis 、 setfis 、 showfis 等,都是模糊工具箱提供的命令行函數(shù),直接調(diào)用這些函數(shù)就可以實(shí)現(xiàn)對模糊推理系統(tǒng)進(jìn)行建立、修改以及存儲(chǔ)等操作,下面將詳細(xì)介紹常用的命令行函數(shù)。,說
31、明:在參數(shù)列表中, a 為模糊推理系統(tǒng)對應(yīng)的矩陣變量名, varType 用于指定語言變量的類型為字符型(如input 或 output ) ; varName 也為字符型變量,用于指定語言變量的名; varBoundS 用于指定語言變量的論域范圍。對于添加到同一個(gè)模糊推理系統(tǒng)的語言變量,將按照添加的先后順序自動(dòng)編號,編號從 1 開始,逐漸遞增。對于分屬于輸入與輸出的不同語言變量則獨(dú)立地分別編號。,說明:當(dāng)一個(gè)模糊語言變量正在被當(dāng)前的模糊規(guī)則集使用時(shí),試圖刪除該變量會(huì)導(dǎo)致其他相關(guān)規(guī)則被刪除。系統(tǒng)出現(xiàn)詢問對話框,問是否確認(rèn)刪除命令。在一個(gè)模糊語言變量被刪除后,Matlab模糊邏輯工具箱將會(huì)自動(dòng)地
32、對模糊規(guī)則集進(jìn)行修改以保證一致性。從varType表示語言變量的類型,為字符型,如input 或 output ; varIndex表示語言變量的編號。,說明:隸屬度函數(shù)只能為模糊推理系統(tǒng)中已經(jīng)存在的某一語言變量的語言值添加隸屬度函數(shù),而不能添加到一個(gè)尚不存在的語言變量中。對于每個(gè)語言變量的隸屬度函數(shù)按照該函數(shù)被添加的順序加以編號,第一個(gè)添加的隸屬度函數(shù)被編為1號,此后依次遞增編號。函數(shù)必須指定輸入以下六個(gè)參數(shù):,例 加入三條高斯型隸屬度函數(shù),如圖所示。,說明:當(dāng)一個(gè)隸屬度函數(shù)正在被當(dāng)前模糊推理規(guī)則使用時(shí),如果刪除該隸屬度函數(shù)將會(huì)刪除涉及它的模糊規(guī)則,系統(tǒng)會(huì)出現(xiàn)要求確認(rèn)消息框,如果確認(rèn)刪除將自
33、動(dòng)刪除相關(guān)的一些規(guī)則。各參數(shù)的含義說明如下:,例 刪除隸屬度函數(shù)結(jié)果。,例 刪除被模糊規(guī)則使用的隸屬度函數(shù)。,FIS 系統(tǒng)相關(guān)操作,說明:該函數(shù)用于創(chuàng)建并返回一個(gè)新的模糊推理系統(tǒng),模糊推理系統(tǒng)的特性可由函數(shù)的參數(shù)指定,其參數(shù)個(gè)數(shù)可達(dá) 7 個(gè)。如果不指定相應(yīng)參數(shù)則取為缺省值。參數(shù)的含義及類型說明如下:,例 使用缺省參數(shù)的 newfis 函數(shù)創(chuàng)建 mamdani 和 sugeno 型模糊系統(tǒng)。,說明:打開一個(gè)由 filename 指定的模糊推理系統(tǒng)的數(shù)據(jù)文件( . fis ) ,并將其加載到當(dāng)前的工作空間( workspace )中的變量 FISMAT 中。當(dāng)未指定文件名時(shí), MATLAB 將會(huì)打
34、開一個(gè)文件對話窗口,提示用戶指定某一 fis 文件。,說明:使用該函數(shù)是獲得模糊推理系統(tǒng)及其對應(yīng)矩陣的所有屬性的基本方法。也可以用“結(jié)構(gòu)名成員名” ( Structure . field )的語法方式來替代這個(gè)函數(shù)。在參數(shù)列表中, a 為模糊推理系統(tǒng)結(jié)構(gòu)在內(nèi)存中對應(yīng)的矩陣變量,必須已經(jīng)存在,這是必須指定的參數(shù),后面的其他參數(shù)則可以省略。僅有參數(shù) a 時(shí),函數(shù)將列出模糊推理系統(tǒng)的所有屬性。,說明: fismat 為 MATLAB 工作環(huán)境內(nèi)存中的模糊推理系統(tǒng)結(jié)構(gòu)的矩陣變量。,例 以分行的形式顯示模糊推理系統(tǒng) tipperfis 矩陣的所有屬性。,說明:該函數(shù)的參數(shù)個(gè)數(shù)可以有 3 、 5 、 7
35、三種情況。當(dāng)參數(shù)個(gè)數(shù)為 3 時(shí),用于設(shè)定模糊推理系統(tǒng)的全局屬性,包括:,當(dāng)參數(shù)個(gè)數(shù)為 5 個(gè)時(shí),用于設(shè)定模糊推理系統(tǒng)矩陣某一個(gè)語言變量的屬性,包括: name (變量名稱)和 bounds (論域范圍)。當(dāng)參數(shù)個(gè)數(shù)為 7 時(shí),用于設(shè)定一個(gè)語言變量的某一隸屬度函數(shù)的屬性,包括 name (隸屬度函數(shù)名稱)、 type (類型)和 params (參數(shù))。,系統(tǒng)圖形顯示函數(shù),模糊邏輯工具箱中提供了三個(gè)函數(shù): plotfis 、 plotmf 和 gensurf ,用于模糊推理系統(tǒng)的圖形顯示。下面詳細(xì)介紹這三個(gè)函數(shù)。,模糊邏輯工具箱命令函數(shù)應(yīng)用,前一節(jié)簡要介紹了用命令行方式來實(shí)現(xiàn)模糊邏輯推理。運(yùn)用命
36、令行方式工作需要掌握相應(yīng)的一些工具函數(shù)的使用,下面就詳細(xì)介紹這些工具函數(shù)的使用。,模糊邏輯工具基本函數(shù)分類表,模糊邏輯工具基本函數(shù)包括圖形工具類函數(shù)、隸屬度函數(shù)類函數(shù)、 FIS 結(jié)構(gòu)的相關(guān)類操作函數(shù)、 Sugeno 型模糊系統(tǒng)應(yīng)用函數(shù)、仿真模塊庫相關(guān)操作函數(shù)以及演示范例程序函數(shù)等。,1 圖形工具類函數(shù),2 隸屬度函數(shù)類函數(shù),3 . FIS 結(jié)構(gòu)的相關(guān)類操作函數(shù),4 仿真模塊庫相關(guān)操作函數(shù),5 演示范例程序函數(shù),MATLAB 工具箱內(nèi)置隸屬度函數(shù)應(yīng)用例解,在 MATLAB 模糊邏輯工具箱中支持的隸屬度函數(shù)類型有如下幾種:高斯型、三角形、梯形、鐘型、 Sigmo 記型、 n 型以及 Z 型。 利用
37、工具箱中提供的函數(shù)可以建立和計(jì)算上述各種類型隸屬度函數(shù)。 還可以自己定義隸屬度函數(shù)用于調(diào)用。 下面介紹工具箱中內(nèi)含的隸屬度函數(shù)。,說明:參數(shù) x 用于指定變量的論域范圍,參數(shù) a 、 b 和 c 指定三角形函數(shù)的形狀,要求 a b c 。該函數(shù)在 b 點(diǎn)處取最大值 1 , a 、 c 點(diǎn)為 0 (如果要獲得頂點(diǎn)小于 1的三角形函數(shù)可以使用 trapmf),函數(shù)返回該隸屬度函數(shù)對應(yīng)于坐標(biāo)矩陣 x 的函數(shù)值矩陣。其表達(dá)式如下:,例 建立三角形隸屬度函數(shù)并繪制曲線,如圖所示,例 改變參數(shù)曲線對比,如圖所示。,說明:參數(shù) x 用于指定變量的論域范圍,參數(shù) a 、 b 、 c 和 d 用于指定梯形隸屬度
38、函數(shù)的形狀,要求 a = c 函數(shù)退化為三角形。函數(shù)返回該隸屬度函數(shù)對應(yīng)于坐標(biāo)矩陣 x 的函數(shù)值矩陣。其對應(yīng)的表達(dá)式如下:,例 建立并繪制梯形隸屬度函數(shù)曲線,如圖所示。,例 改變參的數(shù)曲線對比,如圖所示。,說明:高斯型函數(shù)的形狀由兩個(gè)參數(shù)決定: sig和 c ,其中 c 決定了函數(shù)的中心點(diǎn), sig決定了函數(shù)曲線的寬度。參數(shù) x 是用于指定變量論域的矩陣,函數(shù)返回該隸屬度函數(shù)對應(yīng)于坐標(biāo)矩陣 x 的函數(shù)值矩陣。高斯函數(shù)的表達(dá)式如下:,例 建立高斯型隸屬度函數(shù),如圖所示。,例 不同參數(shù)對比,如圖所示。,說明:參數(shù) x 是用于指定變量論域的矩陣,函數(shù)返回該隸屬度函數(shù)對應(yīng)于坐標(biāo)矩陣 x 的函數(shù)值。矩陣雙邊高斯型函數(shù)的曲線由兩個(gè)中心點(diǎn)相同的高斯型函數(shù)的左、右半邊曲線組合而成,其左右兩段表達(dá)式如下:,參數(shù) sig1、c1、sig2、c2分別對應(yīng)左、右半邊高斯函數(shù)的寬度與中心點(diǎn),當(dāng) c1 = c2時(shí),雙邊高斯函數(shù)在( cl , c2 )段達(dá)到最大值 1,否則最大值小于 1 。,例 建立雙邊高斯型隸屬度函數(shù),如圖所示。,例 不同參數(shù)對比,如圖所示。,說明:參數(shù) x 用于指定變量論域范圍的矩陣,函數(shù)返回該隸屬度函數(shù)對應(yīng)于坐標(biāo)矩陣 x 的函數(shù)值矩陣。a b c用于指定鐘型函數(shù)的形狀和位置,其中, c 決定函數(shù)的中心位置, a , b
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年滬科版九年級化學(xué)下冊階段測試試卷
- 商業(yè)環(huán)境下的學(xué)生職業(yè)規(guī)劃與心理健康
- 醫(yī)療設(shè)備中安全硬件的研發(fā)與市場前景分析
- 2025中國鐵路北京局集團(tuán)限公司招聘4982人(一)高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025中國郵政集團(tuán)公司重慶分公司社會(huì)招聘536人高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025中國紙業(yè)投資限公司社會(huì)招聘6人高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025中國社會(huì)科學(xué)院美國研究所第一批專業(yè)技術(shù)人員公開招聘補(bǔ)充高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025中國電信湖北黃岡分公司招聘30人高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025中國新聞社應(yīng)屆高校畢業(yè)生公開招聘補(bǔ)充高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025中國國際工程咨詢限公司總部社會(huì)招聘20人高頻重點(diǎn)提升(共500題)附帶答案詳解
- 【MOOC】中國文化概論-華南師范大學(xué) 中國大學(xué)慕課MOOC答案
- 2025年蛇年年會(huì)匯報(bào)年終總結(jié)大會(huì)模板
- 新編蘇教版一年級科學(xué)上冊實(shí)驗(yàn)報(bào)告冊(典藏版)
- 孤殘兒童護(hù)理員技能鑒定考試題庫(含答案)
- 微機(jī)原理與應(yīng)用智慧樹知到期末考試答案章節(jié)答案2024年山東大學(xué)
- 時(shí)間序列分析論文
- 輕型貨車設(shè)計(jì)
- 實(shí)際問題與反比例函數(shù)(1)
- 城市軌道交通工程項(xiàng)目質(zhì)量安全控制要點(diǎn)
- 交通標(biāo)志結(jié)構(gòu)計(jì)算書
- 廠房結(jié)構(gòu)設(shè)計(jì)原理
評論
0/150
提交評論