1.打開模糊控制工具箱,編輯輸入輸出變量的隸屬度函數和模糊控制規則,如下圖所示,導出為fuzzy_control.fis文件。
2.打開Simulink模塊,建立下圖所示的系統框圖,兩輸入,一輸出,處理模塊是Fuzzy Logic Controller with Ruleviewer(或者Fuzzy Logic Controller)。
3.在MATLAB窗口命令下輸入fuzzy=readfis(‘fuzzy_control’)將之前建立的模糊控制器加載到工作空間,將Simulink中模糊控制模塊的參數設置為fuzzy,保存該模型,生成Fuzzy_model.mdl。
4.Start->MATLAB->More->SystemTest,打開測試界面,選中Main Test ,菜單欄 Insert -> Test Element -> Simulink ,選擇第二步中建立的模型 fuzzy_model 。
5.變量定義。在Test Vectors 項里定義兩個測試向量,變量名分別為 input1和input2,編輯兩個變量的取值范圍;在Test Variables 里定義測試變量,變量名為output。
6.變量映射。把測試向量input1、input2分別映射到模糊控制器的輸入口 in1、in2,做為輸入測試信號。把測試變量 output 映射到模糊控制器輸出口out1。設置后的界面如下兩圖所示。
6.Save Results,如下圖所示。
7.保存,進行測試。
8.結果格式轉換
- 系統測試結果保存在 stresults.ResultsDataSet.output 中,為169*1 cell的單元數組(若輸出兩個變量都有為13個值的序列)。(注:單元cell為 [n*1 double] 結構,表示系統被測試了n次。)
- 在matlab命令窗口下輸入 test_data = stresults.ResultsDataSet.output ,將測試結果另存在變量 test_data 中。
%導入模糊控制器 %fuzzy=readfis('Fuzzy_20150323.fis'); %Run Test %把下面的代碼復制到Command Window運行 test_data=stresults.ResultsDataSet.Output; a=zeros(121,1); for i=1:121 b=test_data{i}; a(i)=b(1); end c=reshape(a,11,11); table_data=c'; %保存到txt文件 %d=table_data.*10000; %dlmwrite('fuzzy.txt',d,'precision','%.0f','newline','pc')
參考資料: