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(,);
for i=:
b=test_data{i};
a(i)=b();
end
c=reshape(a,,);
table_data=c'; %保存到txt文件
%d=table_data.*;
%dlmwrite('fuzzy.txt',d,'precision','%.0f','newline','pc')

参考资料:

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

使用MATLAB生成模糊控制的离线查询表的更多相关文章

  1. 用MATLAB生成模糊控制离线查询表

    实时采样得到的数据经过模糊化处理后输入机器,通过查询模糊规则表便可得到应有的输出模糊量,从而避免了近似推理过程.实际应用中,特别是在控制系统较为简单而采用单片机控制时,常常采用这种查表法. 模糊控制表 ...

  2. 如何将Matlab中“模糊控制设计器”的隶属度函数导出图片(figure)

    如何将Matlab中"模糊控制设计器"的隶属度函数导出图片(figure)详情参考matlab官方帮助手册:plotmf()函数https://www.mathworks.com/ ...

  3. [转载]Matlab生成Word报告

    最近在进行一批来料的检验测试,一个个手动填写报告存图片太慢了,就有了种想要使用Matlab在分析完后数据可以自动生成PDF报告的想法,于是就去网上搜索了相关的资料,发现Matlab中文论坛上有xiez ...

  4. Matlab生成M序列的伪随机码

    伪随机编码中较常用的是m序列,它是线性反馈移位寄存器序列的一种,其特点是在相同寄存器级数的情况下输出序列周期最长.线性反馈移位寄存器的工作原理是,给定所有寄存器一个初始值,当移位脉冲到来时,将最后一级 ...

  5. asp.net下调用Matlab生成动态链接库

    对于这次论文项目,最后在写一篇关于工程的博客,那就是在asp.net下调用matlab生成的dll动态链接库.至今关于matlab,c/c++(opencv),c#(asp.net)我总共写了4篇配置 ...

  6. c++调用matlab生成的Dll动态连接库

    点击打开链接http://download.csdn.net/detail/nuptboyzhb/4228429 c++调用matlab生成的Dll动态连接库 实验平台:   matlab 7.0(R ...

  7. 利用Matlab生成一个网格化的三维球面(生成直角坐标)

    利用Matlab生成一个网格化的三维球面,分别对径向方向.经度方向和纬度方向进行网格化,代码如下: %生成一个笛卡尔坐标系下球面网格的x,y,z坐标 %r为球面距离 %nJingdu,nWeidu分别 ...

  8. 【转】利用matlab生成随机数函数

    原文地址:利用matlab生成随机数函数 rand(n):生成0到1之间的n阶随机数方阵  rand(m,n):生成0到1之间的m×n的随机数矩阵 (现成的函数) betarnd:贝塔分布的随机数生成 ...

  9. 使用matlab生成sine波mif文件

    使用matlab生成sine波mif文件 作者:lee神 在使用altera 的FPGA中的rom过程中常常会使用到.mif文件或.hex文件.对于初学者,无论mif还是hex都是很令人疑惑的东西,这 ...

随机推荐

  1. C# 对象与JSON串互相转换(转)

    DoNet2.0 需要借助于Newtonsoft.Json.dll 代码 using System;using System.IO;using System.Text;using Newtonsoft ...

  2. ConcurrentHashMap使用示例

    ConcurrentHashMap使用示例 发表于2年前(2013-07-12 19:05)   阅读(3660) | 评论(0) 25人收藏此文章, 我要收藏 赞5 如何快速提高你的薪资?-实力拍“ ...

  3. JDK,JRE,JVM区别与联系

    JDK : Java Development ToolKit(Java开发工具包).JDK是整个JAVA的核心,包括了Java运行环境(Java Runtime Envirnment),一堆Java工 ...

  4. PHP Warning: date(): It is not safe to rely on the system's timezone settings.

    OSSEC安装结束后运行,运行以下命令却抛错 cat /opt/ossec/logs/alerts/alerts.log 具体抛错内容: ** Alert 1468897672.2164786: ma ...

  5. 修改linux终端命令行颜色

    进入修改:vim /root/.bashrc 1.PS1 要修改linux终端命令行颜色,我们需要用到PS1,PS1是Linux终端用户的一个环境变量,用来说明命令行提示符的设置.在终端输入命令:#s ...

  6. Docker实例教程[超详细](一)

    Docker Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化.容器是完全使用沙箱机制,相互 ...

  7. Android权限安全(10)应用与设备绑定

    有些时候开发者想要把应用与设备绑定 如: 计费应用下载,防导出运行. app内部注册付费等等. 常用的绑定方案:

  8. $.post()

    定义和用法 post() 方法通过 HTTP POST 请求从服务器载入数据. jQuery.post(url,data,success(data, textStatus, jqXHR),dataTy ...

  9. 分批次获取git for windows的源代码

    $ git initInitialized empty Git repository in d:/SourceCode/GitHub/Git For Windows/Git/.git/ $ git r ...

  10. C#通过代码注册COM组件

    using System; using System.Diagnostics; using Microsoft.Win32; namespace ChuckLu.Utility { public cl ...