双输入、单输出小费问题的模糊控制Matlab仿真

一、问题描述

根据饭店的服务质量与饭菜质量来控制给小费的金额。

1.1控制输入

给定一个0~10的数表示饭店的服务质量(这里10表示非常好)

另一个0~10的数表示饭店的食品质量。

1.2控制规则(小费规则)

3条规则:

如果服务差或食品差,那么小费低;

如果服务好,那么小费中等;

如果服务极好或食品极好,那么小费高。

1.3控制输出(小费金额)

我们假设中等小费为15元,小费高为25元,小费低为5元。

二、建立编辑模糊控制器

2.1启动

在命令行中输入:fuzzy或者从app界面启动。

打开的画面如下:

2.2控制器整体编辑

修改input1为service,并修改Range为[0 10],因为服务最高为10分。

在file菜单中,选择添加变量,添加另一个输入为food,范围设置为[0 10]。

输出变量名改为tip,范围设置为[0 30],即我们根据服务与食物付出的金额为0-30元。

2.3编辑隶属函数及等级分类

双击输入或输出变量,即可进入隶属度编辑界面。

需要添加隶属度函数,可在Edit相应子菜单中操作。

首先编辑service,分为poor、good、excellent三类,隶属度函数选择gaussmf,为高斯型隶属函数。编辑完画面如下。

同理,编辑food,food只有在特别难吃与特别好吃时,才影响小费金额。隶属度选择三角形隶属函数(trimf),即评分在0-1分时,为特别难吃,评分在9-10分时为特别好吃,编辑完画面如下。

编辑小费tip,小费分为少cheap,正常average,慷慨generous三类,中等小费为15元,小费高为25元,小费低为5元。采用三角形隶属函数(trimf),编辑完画面如下。

2.4编辑模糊规则

双击控制器方框,框中的mamdani是控制器的类型,其一大特点是模糊推理的结果也是模糊的,然后通过去模糊化获得控制量的输出值。

Mamdani 推理法是模糊控制中最常用的推理方法之一,特别适用于模糊控制器设计。它基于模糊逻辑,通过模糊化、模糊规则和去模糊化的过程进行推理和决策。

选择输入输出的等级,并根据与、或、非的逻辑运算,进行规则编辑。

如果服务差或食品差,那么小费低;如果服务好,那么小费中等;如果服务极好或食品极好,那么小费高这三条文字规则,编辑如下。

至此,控制器编辑完成,整体保存为tipper.fis。

三、查看控制器

3.1查看规则

通过主界面view菜单,可查看规则,如下图所示。可对两个输入进行调节,即可自动计算出小费的金额。

3.2曲面查看器

查看输入输出的关系曲面,并可进行调节。

四、实际仿真

4.1添加控制器

新建simulink仿真,添加模糊控制器。

双击fuzzy logic controller,可以看到其属性,已经自动与tipper.fis关联。

4.2添加信号输入与示波器

由于控制器有两个输入,但模块连接线只有一条,需要用mux混合一下。仿真整体如下所示。

4.3设置仿真

service前10s的值为0,后10s的值为5。

food前10s的值为0,后10s的值为9。

4.3仿真结果

通过仿真曲线可以看出,前10s,service与food均为0,输出6.08的小费。

后10s,service为5,food为9,输出19.14的小费。

与规则查看器中的输出结果一致。

service=0,food=0;tip=6.08

service=5,food=9;tip=19.1

本文结束,希望对你有所帮助。

相关推荐
豆芽8194 个月前
模糊控制Fuzzy Control
人工智能·算法·模糊控制
迎风打盹儿10 个月前
宽带空时波束形成算法原理及MATLAB仿真
matlab仿真·空时波束形成·宽带阵列信号处理·空时抗干扰·空时方向图
propor2 年前
数字锁相放大器(DLIA)基本原理与Matlab仿真
matlab仿真·数字锁相放大器
可编程芯片开发2 年前
基于模糊控制的AMT自动变速汽车换档智能控制系统simulink建模与仿真
汽车·simulink·模糊控制·amt·自动变速汽车换档·智能控制系统
简简单单做算法2 年前
基于CNN卷积网络的MNIST手写数字识别matlab仿真,CNN编程实现不使用matlab工具箱
人工智能·matlab·cnn·matlab仿真·cnn卷积网络·mnist手写数字识别
sys_rst_n2 年前
【通信系统】MIMO阵列信号来向DOA估计实现~含FOCUSS、OMP、贝叶斯学习(SBL)等稀疏重构法和常规、子空间法、空间平滑滤波法
mimo天线阵列·波达方向doa估计·matlab仿真·子空间算法·压缩感知与稀疏恢复