MATLAB 模糊设计器 构建 模糊系统

系列文章目录


文章目录

  • 系列文章目录
  • 前言
  • 一、创建 FIS 结构
  • 二、定义输入变量
  • 三、定义输出变量
  • 四、定义成员函数
  • 五、定义规则库
  • 六、设计分析
  • 七、存储和修改设计
  • 八、导出 FIS
  • 总结


前言

本例演示如何使用 Fuzzy Logic Designer 应用程序交互式创建 1 型 Mamdani 模糊推理系统(FIS)。

R2022b 之前:如本例所示,使用上一版本的 Fuzzy Logic Designer 应用程序交互式创建 1 型 FIS。

在本例中,您将创建一个 FIS 来解决模糊逻辑与非模糊逻辑中定义的倾覆问题。小费行为是通过以下三条规则定义的。

  1. 如果服务差或食物变质,则小费便宜。

  2. 如果服务良好,则小费一般。

  3. 如果服务出色或食物美味,则小费丰厚。

本例创建的是 1 型 Mamdani 模糊推理系统,所使用的一般方法也适用于创建 2 型和 Sugeno 系统。有关不同类型模糊系统的更多信息,请参阅 Mamdani 和 Sugeno 模糊推理系统以及 2 型模糊推理系统。

您还可以使用模糊逻辑设计器交互式创建 FIS 树。有关示例,请参阅使用模糊逻辑设计器构建 FIS 树。

有关在命令行下构建 FIS 的更多信息,请参阅在命令行下构建模糊系统。

在本例中,您将从头开始构建一个给小费 FIS。或者,也可以从 tipper.fis 文件加载系统。为此,请使用以下命令。

fuzzyLogicDesigner("tipper.fis")

一、创建 FIS 结构

要自行构建 FIS,首先要打开应用程序。在 "应用程序 "选项卡的 "控制系统设计与分析 "下,单击应用程序图标。

应用程序将打开 "入门 "对话框。有关创建初始 FIS 结构选项的更多信息,请参阅《模糊逻辑设计器入门》。

在本例中,由于您要创建的是具有两个输入和一个输出的 1 型 Mamdani 系统,因此可以使用内置模板作为起点。具体方法如下

由于您是手动定义模糊推理系统的规则,因此请清除自动生成规则复选框。

在模板模糊推理系统下,选择 Mamdani Type-1。

在这里插入图片描述

应用程序创建 FIS 模板并将其加载到应用程序中。

在这里插入图片描述

在 "属性编辑器 "窗格中,您可以指定 FIS 的名称及其推理方法。本例中使用默认推理方法。有关可用推理方法的更多信息,请参阅《模糊推理过程》和《模糊逻辑基础》。

在名称字段中,输入 tipper 名称。

二、定义输入变量

在本例中,模板 FIS 已经有两个输入变量。在 "系统浏览器 "窗格中,单击 “输入”。应用程序会在属性编辑器中显示输入变量的属性。

在这里插入图片描述

在属性编辑器中,为每个输入变量定义以下属性。

  • Name - 输入变量名称。在本例中,命名第一个输入服务和第二个输入食物。

  • Range - 输入变量范围。在本例中,两个输入变量的评分范围都是从 0 到 10。因此,请将每个变量的范围指定为 [0 10]。

在这里插入图片描述

如果应用程序需要,您可以添加更多输入变量。为此,请在 "设计 "选项卡的 "添加组件 "图库中单击 “输入”。

在这里插入图片描述

三、定义输出变量

在本例中,模板 FIS 已经有一个输出变量。在系统浏览器窗格中,单击输出。应用程序会在属性编辑器中显示输出变量的属性。

在属性编辑器中,为输出变量定义以下属性。

  • Name - 输出变量名称。本例中,将输出变量命名为 tip。

  • Range - 输出变量范围。在本例中,指定输出变量范围为 [0 30]。

在这里插入图片描述

如果您的应用程序需要输出变量,您可以添加这些变量。为此,请在 "添加组件 "图库中单击 “输出”。

在这里插入图片描述

四、定义成员函数

要添加或删除给定变量的成员函数(MF),请在系统浏览器中选择该变量或在模糊推理系统文档中点击该变量。例如,选择食物输入变量。在属性编辑器中,应用程序会显示输入变量和成员函数的属性。

在这里插入图片描述

默认情况下,模板会为每个变量添加三个成员函数。在本例中,服务输入变量和小费输出变量都需要三个成员函数。

但是,食物变量需要两个成员函数。要删除其中一个默认成员函数,请在系统浏览器的食物下右键单击该成员函数并选择删除。

在这里插入图片描述

如果应用程序需要,您可以为给定变量添加成员函数。为此,请在添加组件库中单击 MF。

在这里插入图片描述

要编辑成员函数属性,请在系统浏览器中选择成员函数或相应变量。然后,在属性编辑器中指定以下成员函数属性。

  • Name - 成员函数名称

  • Type - 成员函数类型

  • Parameters - 成员函数参数

要查看给定变量的成员函数图,请在系统浏览器中选择变量并打开成员函数编辑器。下图显示了服务输入变量的成员函数。

使用图中显示的属性配置服务输入的成员函数。

在这里插入图片描述

同样,配置食物输入变量的属性。

在这里插入图片描述

最后,定义尖端输出的成员函数。

在这里插入图片描述

有关定义成员函数的更多信息,请参阅使用模糊逻辑设计器定义成员函数。

五、定义规则库

为 FIS 定义变量和成员函数后,就可以为系统定义 "如果-那么 "规则库了。

在本例中,使用以下规则。

  1. 如果服务差或食物变质,则小费便宜。

  2. 如果服务良好,则小费一般。

  3. 如果服务出色或食物美味,则小费丰厚。

打开规则编辑器文档。

在这里插入图片描述

要添加规则,请单击加号图标。应用程序会将规则添加到规则表中,并在属性编辑器中显示规则属性。

在这里插入图片描述
修改第一条规则的属性:如果服务差或食物馊了,则小费便宜。

  1. 将 "Connection "参数设置为 “Or”。

  2. 对于 service 输入,选择 "poor "作为语言术语。

  3. 对于 food 输入,选择 rancid 作为语言术语。

  4. 对于 tip 输出,选择 cheap 作为语言术语。

在这里插入图片描述

同样,添加下一条规则:如果服务很好,那么小费就是平均值。对于这条规则

对于 service 输入,选择 good 作为语言术语。

对于 tip 输出,选择 average 作为语言术语。

由于这条规则的前件只有 service 输入,因此忽略 food 输入,将其语言项设置为 “none”。

最后,添加第三条规则:如果服务很好或食物很美味,那么小费就会很丰厚。对于这条规则

将 " Connection "参数设置为 " Or "。

对于 service 输入,选择 Excellent 作为语言术语。

对于 food 输入,选择 delicious 作为语言术语。

对于 tip 输出,选择 generous 作为语言术语。

在规则编辑器中查看最终规则库。

在这里插入图片描述

有关为 FIS 指定规则的更多信息,请参阅使用模糊逻辑设计器定义模糊规则。

六、设计分析

定义规则库后,您可以使用以下文档分析您的设计。

  • Rule Inference 规则推理 - 指定输入值并查看推理图和结果输出值。

  • Control Surface 控制面 - 绘制两个输入变量所有组合的输出值。

  • System Validation 系统验证 - 将每个 FIS 设计的输出值与测试数据中的相应输出值进行比较。(自 R2023a 版起)

  • Error Distribution 误差分布 - 对于给定的 FIS 设计和测试数据,查看不同输入组合的输出误差。(自 R2023a 版起)

有关 FIS 分析方法的更多信息,请参阅使用模糊逻辑设计器分析模糊系统。

在本例中,使用 Rule Inference 和 Control Surface 文档分析 FIS。要打开任一文档,请在 "Design "选项卡上单击 " Simulation "图库中的相应图标。

在这里插入图片描述

规则推理

在 "规则推理 "文档中,您可以指定输入变量的值,检查推理过程,并查看结果输出值。

例如,考虑服务很差(1/10)但食物很好(9/10)的情况。使用输入值参数指定这些输入值。或者,您也可以在推理图中拖动输入条。

在这里插入图片描述

服务评级低会导致第一条规则以高触发强度触发,食品评级高会导致第三条规则以高触发强度触发。对输出的成员函数进行汇总和模糊化处理后,最终的小费值为 15.2%。

有关模糊推理的更多信息,请参阅模糊推理过程。

Control Surface 控制面

Control Surface 文档显示了两个输入变量所有可能组合的 FIS 输出值。在本例中,该图显示了所有服务和食物等级组合的小费值。一般来说,当食物和服务输入均接近 0 时,小费值较低 (5%),而当食物和服务输入均接近 10 时,小费值较高 (25%)。

在这里插入图片描述

七、存储和修改设计

您可以在应用程序中存储多个 FIS 设计,从而探索可能的设计方案。所有存储的设计必须具有相同数量的输入和相同数量的输出。

一个常见的设计方案是将 Mamdani 系统转换为 Sugeno 系统。一般来说,Sugeno 系统的计算效率更高,这也是部署 FIS 时的一个重要考虑因素。

要将 FIS 转换为 Sugeno 系统,请在 "设计 "选项卡上选择 “从 Mamdani 到 Sugeno”。

在这里插入图片描述
在 "设计浏览器 "窗格中,应用程序会创建一个名为 tipper_1 的 Sugeno FIS 版本。

在这里插入图片描述

要使该设计处于活动状态,请在表格中选择该设计,然后单击设置活动设计。

您也可以在设计浏览器中手动存储当前 FIS 的副本。为此,请在 "设计 "选项卡上选择 “存储当前设计”。

在这里插入图片描述

然后,您可以用与第一种设计相同的方式分析替代设计。

控制面文件中的 Sugeno 系统曲线图与 Mamdani 系统曲线图相似

在这里插入图片描述

使用 "规则推理 "文档,您可以看到,对于相同的服务和食物评级,Sugeno 系统产生的小费为 16.1%,与 Mamdani 系统产生的 15.2% 的小费相似。使用 "规则推理 "文档,您可以看到,对于相同的服务和食物评级,Sugeno 系统产生的小费为 16.1%,与 Mamdani 系统产生的 15.2% 的小费相似。

在这里插入图片描述

八、导出 FIS

使用 Fuzzy Logic Designer 设计 FIS 后,可以将活动和存储的设计导出到 MATLAB® 工作区,以便进一步模拟和部署。

要将 FIS 设计导出到 MATLAB 工作区,请在 Fuzzy Logic Designer 中选择导出 > 将模糊推理系统导出到工作区。

在这里插入图片描述

导出模糊推理系统到工作区 "对话框会列出活动的模糊推理系统设计和任何已存储的设计。

在这里插入图片描述

在 Export(导出)栏中,选择要导出的一个或多个系统。

在 "导出为 "列中,指定工作区变量的名称。

单击导出。

应用程序会将 FIS 保存到 MATLAB 工作区。

有关导出和保存 FIS 的更多信息,请参阅从 Fuzzy Logic Designer 导出 FIS 和仿真数据。


总结

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/152892.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

知乎怎么快速涨粉?15个实用方法让你迅速积累粉丝

**一、自我介绍** 大家好,我是知乎上的一个普通用户,我在这篇文章中将会分享一些关于如何涨粉的最实用的方法。我相信,只要你们按照这些方法去做,你们也会像我一样,迅速积累起大量的粉丝。 **二、方法分享** **1. 优…

VB.net WebBrowser网页元素抓取分析方法

在用WebBrowser编程实现网页操作自动化时,常要分析网页Html,例如网页在加载数据时,常会显示“系统处理中,请稍候..”,我们需要在数据加载完成后才能继续下一步操作,如何抓取这个信息的网页html元素变化&…

文件包含_常见文件包含情况

文件包含系列 相关函数 分类 实践 包含实现的场景

亲测:你这些网站都不知道,哪来时间去摸鱼?

一些我常用且好用的在线工具 Postcat - 在线API 开发测试工具 postcat.com/ API 开发测试工具 Postcat 是一个强大的开源、免费的、跨平台(Windows、Mac、Linux、Browsers...)的 API 开发测试工具,支持 REST、Websocket 等协议&#xff08…

美联储暂停加息 黄金代理要“笑嘻嘻”?

在11月的议息会议上,美联储再次宣布暂停加息。这是继九月份以后,美联储再次做同样的决定,目前已经实现了2连停。停止加息意味着美元资产的吸引度下降,美元指数将会受压,现货黄金价格因为美元的走弱可能上涨&#xff0c…

前端安全策略保障

文章目录 前言后台管理系统网络安全XSSCSRFSQL注入 后言 前言 hello world欢迎来到前端的新世界 😜当前文章系列专栏:前端系列文章 🐱‍👓博主在前端领域还有很多知识和技术需要掌握,正在不断努力填补技术短板。(如果出…

Ubuntu 安装VMware Tools选项显示灰色,如何安装VMware Tools

只要你的网络没问题,你直接执行这几个命令,重启ubuntu虚拟机即可、 sudo dpkg --configure -a sudo apt-get autoremove open-vm-tools sudo apt-get install open-vm-tools sudo apt-get install open-vm-tools-desktop

SpringJDBC模板类JdbcTemplate

Spring JdbcTemplate使用JdbcTemplate完成增删改查环境准备新增修改删除查询一个对象批量添加批量修改和批量删除使用德鲁伊连接池(之前数据源是用我们自己写的) JdbcTemplate JdbcTemplate是Spring提供的一个JDBC模板类,是对JDBC的封装&…

文本格式清理工具 TextSoap mac中文版软件特色

TextSoap mac是一款文本格式清理工具。TextSoap可以帮助用户清除掉text文档内的文字格式,还可以将文档内的url转换成超链接,简单方便,是你日常办公不可缺少的工具。 TextSoap for mac软件特色 1、清洁界面 2、集成文本编辑器 3、100多个内…

免费分享!全国河流断面水质监测数据

随着人类活动的不断增加,河流的水质受到严重污染,为了保护河流生态环境,需要对河流断面水质进行监测。全国河流断面水质监测数据是反映全国河流污染状况的重要指标之一,通过对数据的分析,可以了解不同地区河流污染情况…

【Pytorch笔记】7.torch.nn (Convolution Layers)

我们常用torch.nn来封装网络,torch.nn为我们封装好了很多神经网络中不同的层,如卷积层、池化层、归一化层等。我们会把这些层像是串成一个牛肉串一样串起来,形成网络。 先从最简单的,都有哪些层开始学起。 Convolution Layers -…

功能测试+自动化测试代码覆盖率统计

Jacoco 是一个开源的覆盖率工具。Jacoco 可以嵌入到 Ant 、Maven 中,并提供了 EclEmma Eclipse 插件,也可以使用 Java Agent 技术监控 Java 程序。很多第三方的工具提供了对 Jacoco 的集成,如 sonar、Jenkins、IDEA。 Jacoco 包含了多种尺度的覆盖率计数…

csapp attack lab phase4

csapp attack lab phase4 每个gadget由一系列指令字节组成,最后一个字节为0xc3,编码为ret指令。 举个例子: 48 89 c7 是指令 movq %rax, %rdi, 对应的地址是0x400f15 0x3 也就是0x400f18, 是开始的指令位置。 例如: ret编码为0…

线程安全与同步

线程安全问题是什么 多个线程同时操作同一个共享资源的时候可能会出现业务安全问题,称为线程安全问题。 取钱模型演示 需求:小明和小红是一对夫妻,他们有一个共同的账户,余额是10万元。 如果小明和小红同时来取钱,而…

Vue工程化

目录 一、环境准备 npm 二、Vue整站使用 1、Vue项目创建和启动 区别 目录结构 启动 2、Vue开发流程 App.vue 快速入门 3、API风格 案例 细节注意 代码实现 测试 一、环境准备 介绍:create-vue是Vue官方提供的最新的脚手架工具,用于快速生…

5个高质量的自用原型设计工具分享!

什么是原型?原型可以概括为整个产品推出前的框架设计。设计师可以用它来引导每个人参与这个项目。原型显示了每个部分之间的比重和每个部分之间的联系。原型不仅仅是一个表面的东西,它是可以和用户对话的,向用户解释该如何与产品进行交互。例…

一文讲解关于嵌入式系统程序运行的几个问题

问题1:FLASH中的代码是如何得到运行的呢?比如PC指针是在哪里由谁设置的? 以ARM为例: ARM-cortex-M3/4的单片机(比如STM32 等):该类单片机的代码在nor flash中,cortex内核可以直接运行…

Python入门教程之基本语法详解,收藏慢慢学~

文章目录 一、Python输出1、repr() 或 str() 转成字符串2、字符串填充空格进行格式化3、!a (使用 **ascii()**), !s (使用 **str()**) 和 !r (使用 **repr()**) 可以用于在格式化某个值之前对其进行转化 二、Python标识符三、Python保留字符(关键字)四、…

VC6.0 添加CMarkup文件,程序编译不成功

报错信息 Generating Code... Linking...Creating library Release/Iodevcfg.lib and object Release/Iodevcfg.exp ItemConfigDlg.obj : error LNK2001: unresolved external symbol "public: __thiscall CMarkup::~CMarkup(void)" (??1CMarkupQAEXZ) ItemConfigD…

具有mDNS功能的串口服务器

1.概述: 通过mDNS协议可以获得设备的ID、mac、IP、port等信息,方便计算机在同一个局域网内连接到具有该服务的模块。支持产品有串口服务器、串口转以太网模块、RS485串口转网口芯片等。 图 1 mDNS网络结构图 当具有mDNS的服务的设备接入网络的时候,首先…