當前位置:成語大全網 - 書法字典 - 如何用matlab將模糊邏輯轉化為查詢表

如何用matlab將模糊邏輯轉化為查詢表

第壹步:利用matlab模糊控制工具箱設計模糊控制器。

1,在matlab命令窗口輸入fuzzy。

2.確定模糊控制器的結構,即根據具體系統確定輸入和輸出。

這裏我們可以選擇標準的二維控制結構,即輸入為誤差E和誤差變化ec,輸出為控制量u .輸入變量通過Edit-& gt;添加變量-& gt;輸入實現。

3.語言值和隸屬函數的確定。

首先要確定描述輸入輸出變量語言值的模糊子集,如{NB,NM,NS,ZE,PS,PM,PB},設定輸入輸出變量的論域。比如我們把誤差E的論域,誤差變化EC設為[-6 6],控制量U的論域設為[-10 10]。然後為模糊語言變量選擇相應的隸屬函數。通過編輯->;隸屬函數打開隸屬函數編輯器,然後分別為輸入和輸出變量定義論域範圍,並添加隸屬函數。以E為例,論域範圍設為[-6 ^ 6],加入的隸屬函數個數為7。(註意:隸屬函數編輯器已經為每個變量初步定義了三個隸屬函數,然後點擊編輯-->;添加MFs添加會員功能,數量可選擇為4)

4.模糊控制規則的制定。

對於我們的二維控制結構和相應的輸入模糊集,我們可以制定49個模糊控制規則。

5.解決歧義。

模糊控制器的輸出是壹個模糊集,通過反模糊化方法可以確定壹個精確的量。去模糊化的方法有很多,這裏選擇重心法。

6.保存建立的模糊控制器。

文件-& gt;導出->;到文件,文件名是fuzzy_control。

第二步:建立Simulink模型。

1,在matlab命令窗口輸入simulink,由。

2.創建壹個新的模糊控制器模型。

3.在matlab命令窗口中輸入fuzzy = readfis('fuzzy_control '),將之前建立的模糊控制器加載到工作區中,並將模糊邏輯控制器的參數設置為fuzzy。

4.保存模型,並將其命名為fuzzy_model。

第三步:設置系統測試界面。

1,通過工具->;系統測試->;發射系統測試進入系統測試界面。

2.添加壹個測試模型。

用鼠標選擇主測試,然後插入-& gt;測試元素->;Simulink,選擇第二步建立的模型fuzzy_model。

3.變量的定義。

在測試向量項中定義兩個測試向量,變量名為input1,input2,input1 = [-6:1:6],input 2 =[-6:1:6];在Test Variables中定義測試變量,變量名輸出。

4.變量映射。

測試向量input1和input2分別映射到模糊控制器的輸入端口in1和in2,作為輸入測試信號。將測試變量輸出映射到模糊控制器輸出端口out1。設置界面如下:

將輸入測試向量映射到模糊模型的輸入端口;

6、運行測試,關註主測試(169次叠代)(169次叠代,運算開銷),等待測試結束。

第四步:模糊控制查詢表生成。

1,系統測試結果保存在st results中。resultsdataset.output,這是壹個169*1單元格的單元格數組。(註:單元格結構為[n*1 double],表示系統經過n次測試)。

2.輸入test_data = stresults。matlab命令窗口中的resultsdataset.output,並將測試結果保存在變量test _ data中。

3.測試結果的格式轉換。

因為二維查詢表是13行13列,所以需要的數據應該是13*13雙數組,但是因為test_data是169*1單元格的單元格數組,所以不能直接作為表數據輸入,所以需要先進行格式轉換。

在matlab命令窗口中輸入table_data = Cell2Array(test _ data,1,13,13),調用cell 2 array函數,取每個單元格數組中的第壹行元素,即第壹個測試數據,將返回的結果保存在table _ data中。