码迷,mamicode.com
首页 > 其他好文 > 详细

使用MATLAB生成模糊控制的离线查询表

时间:2015-06-08 21:14:33      阅读:3206      评论:0      收藏:0      [点我收藏+]

标签:

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)

 参考资料:

  1. 如何利用matlab将模糊逻辑转化为查询表
  2. Matlab模糊工具箱的使用
  3. 简单matlab/simulink模糊控制器应用实例-图
  4. 如何在MATLAB下把模糊推理系统转化为查询表(原创)
  5. 模糊PID Matlab (Simulink)仿真详细步骤
  6. matlab下模糊控制器安装方法

使用MATLAB生成模糊控制的离线查询表

标签:

原文地址:http://www.cnblogs.com/yffq/p/4561745.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!