使用模糊逻辑设计器构建模糊系统
这个例子展示了如何交互式地创建一个type-1 Mamdani模糊推理系统(FIS)来解决中定义的倾倒问题模糊与非模糊逻辑.对于这个问题,我们用以下三个规则来定义给小费行为。
如果服务很差或者食物变质了,那么小费就很便宜。
如果服务很好,那么小费就一般了。
如果服务很好或者食物很美味,那么小费就会很慷慨。
虽然这个示例创建了一个type-1 Mamdani FIS,但使用的一般方法也适用于创建type-2和Sugeno系统。有关不同类型的模糊系统的更多信息,请参见Mamdani和Sugeno模糊推理系统而且2型模糊推理系统.
有关在命令行构建FIS的更多信息,请参见在命令行构建模糊系统.
对于本例,您将从头构建一个tippper FIS。或者,也可以从tipper.fis
文件。为此,使用以下命令。
fuzzyLogicDesigner (“tipper.fis”)
创建FIS结构
要自己构建FIS,首先打开应用程序应用程序选项卡,在控制系统设计与分析“,,点击应用程序图标。
应用程序打开一个“入门”对话框。有关创建初始FIS结构的选项的详细信息,请参见开始使用模糊逻辑设计器.
对于本例,由于您正在创建一个具有两个输入和一个输出的type-1 Mamdani系统,您可以使用一个内置模板作为起点。这样做:
因为您将手动定义FIS的规则,所以清除自动生成规则复选框。
下模板模糊推理系统中,选择Mamdani 1型.
应用程序创建模板FIS并将其加载到应用程序中。
在属性编辑器节中,您可以指定FIS的名称及其推理方法。对于本例,使用默认推断方法。有关可用推断方法的更多信息,请参见模糊推理法而且模糊逻辑基础.
在的名字字段,输入名称给小费的人
.
定义输入变量
对于本例,模板FIS已经有两个输入变量。在系统浏览器部分中,点击输入.程序中显示输入变量的属性属性编辑器.
在属性编辑器,为每个输入变量定义以下属性。
的名字—输入变量名。对于本例,命名第一个输入
服务
第二个输入食物
.范围-输入变量范围。对于本例,两个输入都按0到10的刻度进行评分。因此,将每个变量范围指定为
10 [0]
如果您的应用程序需要输入变量,您可以添加更多的输入变量。要做到这一点,就设计选项卡,在添加组件画廊,点击输入.
定义输出变量
对于本例,模板FIS已经有一个输入变量。在系统浏览器部分中,点击输出.程序中显示输出变量的属性属性编辑器.
在属性编辑器,为输出变量定义以下属性。
的名字—输出变量名称。对于本例,为输出变量命名
提示
.范围-输出变量范围。对于本例,将输出变量范围指定为
30 [0]
如果应用程序需要输出变量,则可以添加它们。这样做,在添加组件画廊,点击输出.
定义成员函数
属性中的变量,可为给定变量添加或删除成员函数系统浏览器或单击模糊推理系统文档。例如,选择食物输入变量。在属性编辑器, app显示输入变量和隶属度函数属性。
默认情况下,模板为每个变量添加三个成员函数。对于本例,使用服务输入变量和提示输出变量都需要三个隶属度函数。
然而,食物变量需要两个成员函数。方法中删除一个默认成员关系函数系统浏览器下,食物,右键单击成员函数并选择删除.
如果应用程序需要成员函数,则可以向给定变量添加成员函数。这样做,在添加组件画廊,点击曼氏金融.
要编辑成员关系函数属性,请在系统浏览器,选择隶属度函数或对应变量。然后,在属性编辑器,指定以下隶属度函数属性。
的名字-隶属函数名称
类型-隶属函数类型
参数-隶属函数参数
控件中的变量,选择该变量即可查看给定变量的隶属度函数图系统浏览器打开会员功能编辑文档。对象的成员函数服务输入变量。
属性的成员关系函数服务使用下图所示的属性进行输入。
属性的属性也可以配置食物输入变量。
的成员函数提示输出。
有关定义成员函数的详细信息,请参见使用模糊逻辑设计器定义隶属函数.
定义规则库
一旦为FIS定义了变量和隶属函数,就可以为系统定义if-then规则库。
对于本例,使用以下规则。
如果服务很差或者食物变质了,那么小费就很便宜。
如果服务很好,那么小费就一般了。
如果服务很好或者食物很美味,那么小费就会很慷慨。
打开规则编辑器文档。
单击,添加规则.应用程序将规则添加到规则表中,并在属性编辑器.
修改第一条规则-的规则属性如果服务很差或者食物变质了,那么小费就很便宜.
设置连接参数或.
为服务输入,选择
可怜的
作为语言术语。为食物输入,选择
令人作呕的
作为语言术语。为提示输出,选择
便宜的
作为语言术语。
类似地,添加下一个规则-如果服务很好,那么小费就一般了.对于这条规则:
为服务输入,选择
好
作为语言术语。为提示输出,选择
平均
作为语言术语。因为这个规则只有服务输入先行词,忽略食物通过将其语言术语设置为来输入
没有一个
.
最后,添加规则-如果服务很好或者食物很美味,那么小费就会很慷慨.对于这条规则:
设置连接参数或.
为服务输入,选择
优秀的
作为语言术语。为食物输入,选择
美味的
作为语言术语。为提示输出,选择
慷慨的
作为语言术语。
中查看最终规则库规则编辑器.
有关为FIS指定规则的详细信息,请参见使用模糊逻辑设计器定义模糊规则
分析设计
定义了规则库之后,就可以使用以下文档分析设计了。
规则推理—指定输入值,查看推断图和结果输出值。
控制面-绘制两个输入变量的所有组合的输出值。
上打开任一文档设计选项卡中,选择相应的图标模拟画廊。
规则推理
在规则推理文档,您可以为输入变量指定值,检查推断过程,并查看结果输出值。
例如,考虑服务很差(1/10)但食物很好(9/10)的情况。属性指定这些输入值输入值参数。或者,您可以在推断图中拖动输入栏。
低服务等级导致第一个规则以高发射强度发射,高食物等级导致第三个规则以高发射强度发射。当产生的输出隶属度函数进行聚合和解模糊时,最终提示值为15.2%。
有关模糊推理的更多信息,请参见模糊推理法.
控制面
的控制面文档显示了两个输入变量的所有可能组合的FIS输出值。在本例中,该图显示了所有服务和食品评级组合的小费值。
存储和修改设计
您可以在应用程序中存储多个FIS设计,这允许您探索可能的设计选项。所有存储的设计必须有相同数量的输入和相同数量的输出。
一种常见的设计方法是将Mamdani系统转换为Sugeno系统。一般来说,Sugeno系统的计算效率更高,这是部署FIS时的一个重要考虑因素。
要将FIS转换为Sugeno系统,请在设计选项卡上,选择Mamdani呼叫Sugeno.
在设计浏览器节,应用程序创建一个Sugeno版本的FIS称为tipper_1
.
要激活此设计,请在表中选择该设计并单击集主动设计.
的文件中手动存储当前FIS的副本设计浏览器.要做到这一点,就设计选项卡上,选择店铺当前设计.
然后,您可以以与第一个设计相同的方式分析备选设计。
苏格诺系统的情节控制面文档看起来类似于Mamdani系统的图。
使用规则推理文档,你可以看到,对于相同的服务和食物评级,Sugeno系统产生16.1%的小费,这与Mamdani系统的15.2%的小费相似。
出口FIS
一旦你设计了FIS使用模糊逻辑设计器,可以将活动和存储的设计导出到MATLAB中®用于进一步模拟和部署的工作空间。
要将FIS设计导出到MATLAB工作区,请在模糊逻辑设计器中,选择出口>导出模糊推理系统到工作空间.
“将模糊推理系统导出到工作区”对话框列出了活动FIS设计以及任何存储的设计。
在出口列中,选择一个或多个要导出的系统。
在出口的列中,指定工作区变量的名称。
点击出口.
该应用程序将FIS保存到MATLAB工作区。
有关导出和保存FIS的更多信息,请参见从模糊逻辑设计器导出FIS和仿真数据.