Matlab的Fuzzy工具箱實現(xiàn)模糊控制rulelist的確定_第1頁
Matlab的Fuzzy工具箱實現(xiàn)模糊控制rulelist的確定_第2頁
Matlab的Fuzzy工具箱實現(xiàn)模糊控制rulelist的確定_第3頁
Matlab的Fuzzy工具箱實現(xiàn)模糊控制rulelist的確定_第4頁
Matlab的Fuzzy工具箱實現(xiàn)模糊控制rulelist的確定_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、引用 如何在MATLAB下把模糊推理系統(tǒng)轉(zhuǎn)化為查詢表(原創(chuàng))Matlab 2009-12-26 22:05:01 閱讀161 評論0   字號:大中小 訂閱  引用foundy 的 如何在MATLAB下把模糊推理系統(tǒng)轉(zhuǎn)化為查詢表(原創(chuàng))                           

2、                                          李會先摘  要:該文論述了將MATLAB下調(diào)試成功的模糊邏輯轉(zhuǎn)換為查詢表的一種技巧,這種技巧不直

3、接使用MATLAB的矩陣計算方法,操作者多數(shù)情況下只需點擊鼠標(biāo)就可完成任務(wù),效率比較高,該方法使用MATLAB下的系統(tǒng)測試工具,收集構(gòu)造查詢表所需的數(shù)據(jù)資料,文中以MATLAB中的水位模糊控制演示模型為例,把該系統(tǒng)的模糊控制推理模塊用在其基礎(chǔ)上生成的查詢表代替后再進行水位控制仿真,控制效果與模糊推理模塊在線推理控制是一致的。 關(guān)鍵詞:模糊控制;查詢表;MATLAB;Simulink; 系統(tǒng)測試  Abstract:This article discuss a skill that make a translation from fuzzy logic system to L

4、ookup Table in Matlab,It doesn't use matrix computing, user need only to drag and draw the mouse completing this task,It's a efficiency method which to collect data for Lookup Table construction from a fuzzy controller by SystemTest Toolbox in Matlab,in the article,I will discuss the skill b

5、y a demo which is the Water Level Control in Tank in the Fuzzy logic Toolbox,at last,I simulate the Water Control in Tank instead of the Fuzzy Controller with the Lookup Table which I have constructed,the test results is very well. Keywords: Fuzzy Logic, Matlab,Simulink,Lookup Table,SystemTest 

6、 1.  引 言在MATLAB/Simulink下,構(gòu)建模糊邏輯系統(tǒng)模型和調(diào)試其推理規(guī)則都是很方便的34,我們當(dāng)然不希望在MATLAB下的仿真工作僅僅用于仿真目的,如果實際產(chǎn)品設(shè)計能繼承仿真的工作成果,將事半功倍。在MATLAB里,還沒有把模糊推理系統(tǒng)直接轉(zhuǎn)化為查詢表的工具,盡管Fuzzy Logic 提供的gensurf(FIS)指令可生成響應(yīng)面的數(shù)據(jù),但用這種方法獲得的數(shù)據(jù)生成查詢表控制效果不理想,借助于MATLAB下的系統(tǒng)測試工具是另一種實現(xiàn)這一目標(biāo)的方法。因為查詢表用于一些廉價的嵌入式系統(tǒng)效率比較高,也節(jié)省系統(tǒng)資源,所以在MATLAB下實現(xiàn)這種轉(zhuǎn)化是非常有意義的。 我們知道,

7、模糊邏輯推理系統(tǒng)是輸入變量空間到輸出變量空間的一種映射,而查詢表也是實現(xiàn)輸入變量空間到輸出變量空間的一種映射,它們只不過是可實現(xiàn)非線性映射的兩種方法而已。當(dāng)通過Simulink/Fuzzy Logic Toolbox實現(xiàn)了一個模糊推理系統(tǒng),不妨把它看成一個黑箱按系統(tǒng)辯識的思路來測試它,這時我們只關(guān)心它的輸入與輸出,每當(dāng)在這個黑箱的輸入端饋入一個輸入,那么它的輸出就相應(yīng)有一個輸出響應(yīng),能否在這個黑箱輸入端送入所有輸入變量的可能組合來觀測輸出呢?答案是肯定的,查詢表的構(gòu)造正需要這些輸入輸出數(shù)據(jù)組,有了這些數(shù)據(jù),建立一個查詢表就簡單了。一般來說輸入變量有一定義范圍,計算機的A/D變換和模糊系統(tǒng)模糊化

8、處理時都存在量化過程,在這個黑箱的輸入端送入的測試變量值當(dāng)然也是離散化了的,一個兩變量的系統(tǒng),如果每個變量被離散化為10個值,那么總共就需要100次測試,隨著系統(tǒng)變量的增加或量化等級的提高,需做的輸入測試成級數(shù)快數(shù)增長,借助與MATLAB里的系統(tǒng)測試工具,可以快速做這類測試并收集系統(tǒng)輸出數(shù)據(jù)。 2.   系統(tǒng)測試準(zhǔn)備  下面以MATLAB下的一簡單的模糊控制演示系統(tǒng)為例來闡述把模糊邏輯轉(zhuǎn)化為查詢表的過程。      2.1 準(zhǔn)備模糊控制系統(tǒng)模型      在MATL

9、AB的Fuzzy Logic下打開Water Level Control in a Tank(水槽水位控制),另保存到一個不同的目錄下,名字為sltankrule,該演示Simulink模型如下:                            圖1 水槽水位模糊控制系統(tǒng)該演示模型目的比較模糊控制和PID控制水位的效果,其中Fuzz

10、y Controller with Ruleviever模塊里的tank模糊推理系統(tǒng)已經(jīng)做好了,這里不在熬述,在其兩個輸入中,水位誤差輸入變量范圍是-1 1,水位變化率輸入變量范圍是-0.1 0.1,輸出變量閥門開度范圍是-1 1。 2.2 準(zhǔn)備模糊控制系統(tǒng)測試模型把這個模型修改成如下樣字,另存為一個文件名,比如sltankruletotest。                     

11、       圖2 水槽水位模糊控制系統(tǒng)測試模型 修改成這種樣字后,A、B分別模擬該模糊系統(tǒng)水位誤差輸入、水位變化率,Out1模擬閥門的開度,注意把Simulation Stop Time設(shè)置為0.02。2.3 準(zhǔn)備查詢表模型在Simulink下建一個二維查詢表模型,另存為一個文件名,比如FuzzyLookup,這樣做是為了以后查詢表調(diào)試好后,可用Simulink的代碼生產(chǎn)工具把它生成C代碼,樣子如下:           &

12、#160;                       圖3 查詢表模型 3.  系統(tǒng)測試操作模型切換到sltankruletotest ,點擊ToolsSytemTest樣子如下:               

13、;                            圖4 系統(tǒng)測試設(shè)置1在系統(tǒng)測試main Test里加入Simulink組件,該組件Mappings下的Define Model overrides屬性項可以把Simulink模型的輸入?yún)?shù)映射到用戶自定義的測試向量,該組件Mappings下的Define Map Simu

14、link Data to Test Variables 屬性項把Simulink模型的輸出參數(shù)映射到用戶自定義的測試變量,這里把被測試模糊模型sltankruletotest里的A、B映射到自定義測試向量TestVector1、TestVector2,TestVector1定義為-1:0.2 : 1、 TestVector2定義為-0.1:0.01 :0.1,模糊模型輸出out1映射到自定義測試變量st_signal.最后選擇系統(tǒng)測試環(huán)境Test Browser下的Save Results項,設(shè)置成下面的樣子:        

15、;                              圖5 系統(tǒng)測試設(shè)置2 在SystemTest環(huán)境下,點擊Run,開始系統(tǒng)測試,系統(tǒng)進行迭代測試,測試結(jié)束后點擊FileSave Test Results as保存測試結(jié)果在T.mat文件下,以備后用,測試結(jié)束后,可以查看如下系統(tǒng)輸入輸出曲面結(jié)果:&

16、#160;                  圖6 水槽水位模糊系統(tǒng)測試輸入輸出結(jié)果界面切換到MATLAB主界面,點擊File/Open,打開T.mat,在命令窗下鍵入命令whos,會看到如下結(jié)構(gòu)變量:stresults  1x1  2268  struct,該結(jié)構(gòu)保存了模型sltankruletotest的輸入變量的測試數(shù)據(jù),輸出變量響應(yīng)數(shù)據(jù),它們分別是:兩輸入測試向量數(shù)據(jù)組:一輸出向量數(shù)據(jù)組:可以在MA

17、TLAB命令行鍵入以上命令看這些變量具體數(shù)據(jù)內(nèi)容。界面切換到FuzzyLookup,雙擊LookupTable (2-D),界面屬性設(shè)置如下:                       圖7 查詢表模塊參數(shù)設(shè)置再點擊該屬性窗上的Edit,Simulink自動生成如下樣式的表格:        &#

18、160;                             圖8 查詢表模塊數(shù)據(jù)查詢表生成后樣子如下:                 

19、0;        圖9 生成查詢表模塊外觀4.  用查詢表替代模糊控制器測試水位控制效果把生成的查詢表考貝到sltankrule,替換掉原來的模糊推理組件,樣子如下:                             &#

20、160;  圖10 用查詢替換模糊控制器后的控制系統(tǒng)查詢表采用interplolation-extrapolstion查尋方法,現(xiàn)在再仿真該水位控制系統(tǒng),通過看水位控制動畫表示,查尋表水位的控制和原來的模糊規(guī)則控制效果已經(jīng)相當(dāng),如果換一種查詢表查詢方法,比如use input nearest查尋方法,控制效果就差了,究其原因是在測試環(huán)節(jié)我們的測試向量量化等級不足所致,如果把測試向量修改一下,比如:TestVector1定義為-1:0.08 : 1、 TestVector2定義為-0.1:0.01 :0.1再做測試收集數(shù)據(jù),生成查詢表,那么查詢表無論采用那一種查詢方法,水位的控制效果都

21、很好了,這時查詢表表格變大了些。獲得這個表格后,對于嵌入式系統(tǒng),即使用匯編語言寫出該表的查詢程序也是很容易了。5. 總結(jié)本文講述了在MATLAB 環(huán)境下,把模糊邏輯系統(tǒng)轉(zhuǎn)化為查詢表的一種方法,這種方法簡單易行,查詢表控制也達到了模糊控制的同樣效果,按以上思路,也容易理解在MATLAB 下,用其它方法建立的部分系統(tǒng)模型,如果有必要的話,也可使用同樣的的方法把它轉(zhuǎn)化成查詢表,從工程角度出發(fā),這種方法使得工程技術(shù)人員在產(chǎn)品設(shè)計中輕松實現(xiàn)模糊邏輯建模仿真到實際應(yīng)用的連貫設(shè)計流程。Matlab 的 Fuzzy 工具箱實現(xiàn)模糊控制(rulelist的確定) 用 Matlab 的 Fuzzy 工具

22、箱實現(xiàn)模糊控制- -用 Matlab 中的 Fuzzy 工具箱做一個簡單的模糊控制,流程如下:1、創(chuàng)建一個 FIS (Fuzzy Inference System ) 對象,a = newfis(fisName,fisType,andMethod,orMethod,impMethod, aggMethod,defuzzMethod)一般只用提供第一個參數(shù)即可,后面均用默認(rèn)值。2、增加模糊語言變量a = addvar(a,'varType','varName',varBounds)模糊變量有兩類:input 和 output。在每增加模糊變量,都會按順序分配一個

23、index,后面要通過該 index 來使用該變量。3、增加模糊語言名稱,即模糊集合。a = addmf(a,'varType',varIndex,'mfName','mfType',mfParams)每個模糊語言名稱從屬于一個模糊語言。Fuzzy 工具箱中沒有找到離散模糊集合的隸屬度表示方法,暫且用插值后的連續(xù)函數(shù)代替。參數(shù) mfType 即隸屬度函數(shù)(Membership Functions),它可以是 Gaussmf、trimf、trapmf等,也可以是自定義的函數(shù)。每一個語言名稱也會有一個 index,按加入的先后順序得到,從 1 開始。4、增加控制規(guī)則,即模糊推理的規(guī)則。a = addrule(a,ruleList)其中 ruleList 是一個矩陣,每一行為一條規(guī)則,他們之間是 ALSO 的關(guān)系。假定該 FIS 有 N 個輸入和

溫馨提示

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

評論

0/150

提交評論