步學會使用matlab模煳控制工具箱_第1頁
步學會使用matlab模煳控制工具箱_第2頁
步學會使用matlab模煳控制工具箱_第3頁
步學會使用matlab模煳控制工具箱_第4頁
步學會使用matlab模煳控制工具箱_第5頁
已閱讀5頁,還剩3頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、有關錯誤解決辦法MATLAB功能強大,很多同學用其做控制算法的仿真 但是其中的fuzzy logic controller剛開始用常常容易出錯 常見報錯: 1、MinMax blocks do not accept 'boolean' signals. The input signal(s) of block 'mkkzq1/Subsystem/Fuzzy Logic Controller with Ruleviewer/Fuzzy Logic Controller/FIS Wizard/Defuzzification1/Max (COA)' must be o

2、ne of the MATLAB 'uint8', 'uint16', 'uint32', 'int8', 'int16', 'int32', 'single', or 'double' data types2、An error occurred while propagating data type 'boolean' from block 'mkkzq1/Subsystem/Fuzzy Logic Controller with Rulev

3、iewer/Fuzzy Logic Controller/FIS Wizard/Defuzzification1/Zero Strength (COA)', output port 1。   以下是解決方案:   1、fis編輯器(MATLAB的command window中鍵入fuzzy打開)中,建立好規則后,file-export-to workspace 2、對于7.0版本,simulink模型窗口菜單中,Simulation-Configuration Parameters-Implement logic signals as boolean data前面默

4、認的勾選去掉 3.而對于6.5及以前版本,則是在SIMULATION -SIMULATION PARAMETERS-ADVANCED中將boolean logic signals選為off,強烈推薦用這個  用FIS(Mamdani)設計完模糊控制器之后,連接到控制系統中進行仿真,每次總出現這兩個錯誤:1)Block error Max(coa): MinMax blocks do not accept'boolean'signals.2)block error Zero strength(coa):An error occurred while propagatin

5、g data type'boolean'from block'.',outport 1解決方案:在simulink parameter中,找到advance選項卡,把第一二個選項設為off。4步教你學會使用matlab模糊控制工具箱    Matlab模糊控制工具箱為模糊控制器的設計提供了一種非常便捷的途徑,通過它我們不需要進行復雜的模糊化、模糊推理及反模糊化運算,只需要設定相應參數,就可以很快得到我們所需要的控制器,而且修改也非常方便。下面將根據模糊控制器設計步驟,一步步利用Matlab工具箱設計模糊控制器。首先我們在Matlab

6、的命令窗口(command window)中輸入fuzzy,回車就會出來這樣一個窗口。下面我們都是在這樣一個窗口中進行模糊控制器的設計。1確定模糊控制器結構:即根據具體的系統確定輸入、輸出量。這里我們可以選取標準的二維控制結構,即輸入為誤差e和誤差變化ec,輸出為控制量u。注意這里的變量還都是精確量。相應的模糊量為E,EC和U,我們可以選擇增加輸入(Add Variable)來實現雙入單出控制結構。2輸入輸出變量的模糊化:即把輸入輸出的精確量轉化為對應語言變量的模糊集合。首先我們要確定描述輸入輸出變量語言值的模糊子集,如NB,NM,NS,ZO,PS,PM,PB,并設置輸入輸出變量的論域,例如我

7、們可以設置誤差E(此時為模糊量)、誤差變化EC、控制量U的論域均為-3,-2,-1,0,1,2,3;然后我們為模糊語言變量選取相應的隸屬度函數。在模糊控制工具箱中,我們在Member Function Edit中即可完成這些步驟。首先我們打開Member Function Edit窗口.然后分別對輸入輸出變量定義論域范圍,添加隸屬函數,以E為例,設置論域范圍為-3 3,添加隸屬函數的個數為7.然后根據設計要求分別對這些隸屬函數進行修改,包括對應的語言變量,隸屬函數類型。3模糊推理決策算法設計:即根據模糊控制規則進行模糊推理,并決策出模糊輸出量。首先要確定模糊規則,即專家經驗。對于我們這個二維控

8、制結構以及相應的輸入模糊集,我們可以制定49條模糊控制規則(一般來說,這些規則都是現成的,很多教科書上都有),如圖。制定完之后,會形成一個模糊控制規則矩陣,然后根據模糊輸入量按照相應的模糊推理算法完成計算,并決策出模糊輸出量。4對輸出模糊量的解模糊:模糊控制器的輸出量是一個模糊集合,通過反模糊化方法判決出一個確切的精確量,凡模糊化方法很多,我們這里選取重心法。5然后Export to disk,即可得到一個.fis文件,這就是你所設計的模糊控制器。matlab/simulink模糊控制器應用實例前面我們已經利用模糊控制工具箱設計好了一個模糊控制器(假定我們存為fuzzy1.fis),下面我們檢

9、驗一下,看看我們的控制器到底怎么樣。以一個簡單的電機控制為例,我們在Simulink中建立了它的模糊控制系統如下:在用這個控制器之前,需要用readfis指令將fuzzy1.fis加載到matlab的工作空間,比如我們用這樣的指令:myFLC=readfis(fuzzy1.fis);就創建了一個叫myFLC的結構體到工作空間,并在fuzzy logic controller中參數設為:myFLC。可以看到,在模糊控制器的輸入和輸出均有一個比例系數,我們叫它量化因子,它反映的是模糊論域范圍與實際范圍之間的比例關系,例如,模糊控制器輸入輸出的論域范圍均為-3,3,而實際誤差的范圍是-10,10,誤

10、差變化率范圍是-100,100,控制量的范圍是-24,24,那么我們就可以算出量化因子分別為0.3,0.03,8。量化因子的選取對于模糊控制器的控制效果有很大的影響,因此要根據實際情況認真選取哦。好,現在我們可以設定仿真步長,比如定步長的10ms,就可以運行了。運行后,產生這樣一個錯誤:MinMax blocks do not accept 'boolean' signals. The input signal(s) of block 'test_fuzzy/Fuzzy Logic Controller/FIS Wizard/Defuzzification1/Max (

11、COA)' must be one of the MATLAB 'uint8', 'uint16', 'uint32', 'int8', 'int16', 'int32', 'single', or 'double' data types我想很多朋友做模糊控制的時候都會遇到這個情況。沒關系,這里提供兩個解決辦法:1直接在Defuzzification1這個模塊中的那個比較環節后加入數據類型轉換模塊,將boolean轉化為double型,或者雙擊那個比較模塊,選中show additional parameters,將輸出數據類型改為specify via dialog,然后選uint

溫馨提示

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

評論

0/150

提交評論