主要内容

使用模糊逻辑设计器构建模糊系统

这个例子展示了如何交互式地创建一个type-1 Mamdani模糊推理系统(FIS)来解决中定义的倾倒问题模糊与非模糊逻辑.对于这个问题,我们用以下三个规则来定义给小费行为。

  1. 如果服务很差或者食物变质了,那么小费就很便宜。

  2. 如果服务很好,那么小费就一般了。

  3. 如果服务很好或者食物很美味,那么小费就会很慷慨。

虽然这个示例创建了一个type-1 Mamdani FIS,但使用的一般方法也适用于创建type-2和Sugeno系统。有关不同类型的模糊系统的更多信息,请参见Mamdani和Sugeno模糊推理系统而且2型模糊推理系统

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

对于本例,您将从头构建一个tippper FIS。或者,也可以从tipper.fis文件。为此,使用以下命令。

fuzzyLogicDesigner (“tipper.fis”

创建FIS结构

要自己构建FIS,首先打开应用程序应用程序选项卡,在控制系统设计与分析“,,点击应用程序图标。

应用程序打开一个“入门”对话框。有关创建初始FIS结构的选项的详细信息,请参见开始使用模糊逻辑设计器

对于本例,由于您正在创建一个具有两个输入和一个输出的type-1 Mamdani系统,您可以使用一个内置模板作为起点。这样做:

  1. 因为您将手动定义FIS的规则,所以清除自动生成规则复选框。

  2. 模板模糊推理系统中,选择Mamdani 1型

开始对话框-在右上角,自动生成规则参数被清除。type-1 mamdani模板高亮显示。

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

初始模糊逻辑设计器视图,显示模糊推理系统图文档中的输入和输出变量。

属性编辑器节中,您可以指定FIS的名称及其推理方法。对于本例,使用默认推断方法。有关可用推断方法的更多信息,请参见模糊推理法而且模糊逻辑基础

的名字字段,输入名称给小费的人

属性编辑器,名称字段高亮显示,名称值设置为“tipper”

定义输入变量

对于本例,模板FIS已经有两个输入变量。在系统浏览器部分中,点击输入.程序中显示输入变量的属性属性编辑器

左边的系统浏览器中选择了input标签的应用程序,右边的属性编辑器中列出了相应的输入变量属性

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

  • 的名字—输入变量名。对于本例,命名第一个输入服务第二个输入食物

  • 范围-输入变量范围。对于本例,两个输入都按0到10的刻度进行评分。因此,将每个变量范围指定为10 [0]

属性编辑器的输入表有三列,包括左边的Name列,中间的Range列和右边的Number of mf列。两个输入变量的更新设置在Name和Range列中指定。

如果您的应用程序需要输入变量,您可以添加更多的输入变量。要做到这一点,就设计选项卡,在添加组件画廊,点击输入

App工具条的输入选项被列为添加组件库中唯一的选项

定义输出变量

对于本例,模板FIS已经有一个输入变量。在系统浏览器部分中,点击输出.程序中显示输出变量的属性属性编辑器

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

  • 的名字—输出变量名称。对于本例,为输出变量命名提示

  • 范围-输出变量范围。对于本例,将输出变量范围指定为30 [0]

属性编辑器输入表,其中包含在“名称”和“范围”列中指定的输出变量的更新设置。

如果应用程序需要输出变量,则可以添加它们。这样做,在添加组件画廊,点击输出

应用程序工具条的输出选项被列为添加组件库中唯一的选项

定义成员函数

属性中的变量,可为给定变量添加或删除成员函数系统浏览器或单击模糊推理系统文档。例如,选择食物输入变量。在属性编辑器, app显示输入变量和隶属度函数属性。

左边的是模糊推理系统Plot文档,显示了选择的食物输入,右边的属性编辑器显示了食物输入的三个默认mf。

默认情况下,模板为每个变量添加三个成员函数。对于本例,使用服务输入变量和提示输出变量都需要三个隶属度函数。

然而,食物变量需要两个成员函数。方法中删除一个默认成员关系函数系统浏览器下,食物,右键单击成员函数并选择删除

系统浏览器的food变量被展开以显示MF,右击菜单显示第二个MF的Delete选项。

如果应用程序需要成员函数,则可以向给定变量添加成员函数。这样做,在添加组件画廊,点击曼氏金融

在添加组件库中,MF选项被列为唯一选项的应用工具条

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

  • 的名字-隶属函数名称

  • 类型-隶属函数类型

  • 参数-隶属函数参数

控件中的变量,选择该变量即可查看给定变量的隶属度函数图系统浏览器打开会员功能编辑文档。对象的成员函数服务输入变量。

属性的成员关系函数服务使用下图所示的属性进行输入。

左边的隶属度函数编辑器显示了三个高斯mf的图:图的左边很差,中间很好,右边很好。右边的属性编辑器表列出了mf及其参数:参数差[1.5 0],参数好[1.5 5],参数优[1.5 10]。

属性的属性也可以配置食物输入变量。

左边的成员函数编辑器显示了两个梯形mf的情节:在情节的左边是rancid,在右边是delicious。右边的属性编辑器表列出了mf及其参数:rancid的参数[0 0 1 3]和delicious的参数[7 9 10 10]。

的成员函数提示输出。

左边的隶属度函数编辑器显示了一个由三个三角形mf组成的图:图的左边是便宜的,中间是平均的,右边是慷慨的。右边的属性编辑器表列出了mf及其参数:廉价的参数[0 5 10],平均的参数[10 15 20],慷慨的参数[20 25 30]。

有关定义成员函数的详细信息,请参见使用模糊逻辑设计器定义隶属函数

定义规则库

一旦为FIS定义了变量和隶属函数,就可以为系统定义if-then规则库。

对于本例,使用以下规则。

  1. 如果服务很差或者食物变质了,那么小费就很便宜。

  2. 如果服务很好,那么小费就一般了。

  3. 如果服务很好或者食物很美味,那么小费就会很慷慨。

打开规则编辑器文档。

规则编辑器,表中当前没有列出规则。在规则编辑器的右边缘靠近规则表顶部的地方有一个加号图标

单击,添加规则加上图标.应用程序将规则添加到规则表中,并在属性编辑器

在左侧的Rule Editor中显示选中的规则表中的单个默认规则。在右侧,Property Editor显示了该规则的属性。

修改第一条规则-的规则属性如果服务很差或者食物变质了,那么小费就很便宜

  1. 设置连接参数

  2. 服务输入,选择可怜的作为语言术语。

  3. 食物输入,选择令人作呕的作为语言术语。

  4. 提示输出,选择便宜的作为语言术语。

Property Editor显示第一条规则的更新参数

类似地,添加下一个规则-如果服务很好,那么小费就一般了.对于这条规则:

  1. 服务输入,选择作为语言术语。

  2. 提示输出,选择平均作为语言术语。

  3. 因为这个规则只有服务输入先行词,忽略食物通过将其语言术语设置为来输入没有一个

最后,添加规则-如果服务很好或者食物很美味,那么小费就会很慷慨.对于这条规则:

  1. 设置连接参数

  2. 服务输入,选择优秀的作为语言术语。

  3. 食物输入,选择美味的作为语言术语。

  4. 提示输出,选择慷慨的作为语言术语。

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

规则编辑器显示规则表中的最后三条规则。

有关为FIS指定规则的详细信息,请参见使用模糊逻辑设计器定义模糊规则

分析设计

定义了规则库之后,就可以使用以下文档分析设计了。

  • 规则推理—指定输入值,查看推断图和结果输出值。

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

上打开任一文档设计选项卡中,选择相应的图标模拟画廊。

应用程序工具条突出显示规则推断和控制面选项在模拟画廊。

规则推理

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

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

输入值的规则推断文档[1 9]。对于每条规则,都有一行,按照从左到右的顺序有三个图:服务输入、食物输入和小费输出。每个图都显示了该规则的MF。有垂直的线表示每个变量的输入值,这些线与图中的mf相交。模糊交集值使用OR推理算子(最大值)组合,并用于剪辑输出mf。总输出MF显示在文档右下方的图表中。

低服务等级导致第一个规则以高发射强度发射,高食物等级导致第三个规则以高发射强度发射。当产生的输出隶属度函数进行聚合和解模糊时,最终提示值为15.2%。

有关模糊推理的更多信息,请参见模糊推理法

控制面

控制面文档显示了两个输入变量的所有可能组合的FIS输出值。在本例中,该图显示了所有服务和食品评级组合的小费值。

控制面文档,显示尖端值的非线性曲面图。一般来说,当食物和服务投入都接近0时,小费低(5%),当食物和服务投入都接近10时,小费高(25%)。

存储和修改设计

您可以在应用程序中存储多个FIS设计,这允许您探索可能的设计选项。所有存储的设计必须有相同数量的输入和相同数量的输出。

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

要将FIS转换为Sugeno系统,请在设计选项卡上,选择Mamdani呼叫Sugeno

在转换FIS工具条部分突出显示Mamdani到Sugeno选项的应用程序工具条。

设计浏览器节,应用程序创建一个Sugeno版本的FIS称为tipper_1

“设计浏览器”表显示两行,每行有一个设计。该表有三列,从左到右列出:Active、Design、Type。第一行是原始FIS设计,在Active列中有一个复选标记,在design列中有它的名称tipper,在Type列中有Mamdani Type-1。第二行是转换后的FIS设计,它有一个空的Active列,它的名称tipper在design列中,Sugeno Type-1在Type列中。

要激活此设计,请在表中选择该设计并单击集主动设计

的文件中手动存储当前FIS的副本设计浏览器.要做到这一点,就设计选项卡上,选择店铺当前设计

应用程序工具条,在设计工具条部分突出显示存储当前设计选项。

然后,您可以以与第一个设计相同的方式分析备选设计。

苏格诺系统的情节控制面文档看起来类似于Mamdani系统的图。

控制面文档,显示尖端值的非线性曲面图。一般来说,当食物和服务投入都接近0时,小费低(5%),当食物和服务投入都接近10时,小费高(25%)。

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

输入值的规则推断文档[1 9]。输入MF图与之前的Mamdani规则推断图相匹配。不同之处在于输出mf现在是单例mf而不是模糊集。

出口FIS

一旦你设计了FIS使用模糊逻辑设计器,可以将活动和存储的设计导出到MATLAB中®用于进一步模拟和部署的工作空间。

要将FIS设计导出到MATLAB工作区,请在模糊逻辑设计器中,选择出口>导出模糊推理系统到工作空间

在工具条最右侧的导出下拉菜单中显示将模糊推理系统导出到工作区的应用程序工具条。

“将模糊推理系统导出到工作区”对话框列出了活动FIS设计以及任何存储的设计。

“导出模糊推理系统到工作区”对话框,列出两个要导出的FIS设计。该表包含三列:左侧为Export,其中包含用于选择设计的复选框;中间为Fuzzy Inference System,其中包含设计名称;右侧为Export As,其中包含与设计名称匹配的默认变量名称。

出口列中,选择一个或多个要导出的系统。

出口的列中,指定工作区变量的名称。

点击出口

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

有关导出和保存FIS的更多信息,请参见从模糊逻辑设计器导出FIS和仿真数据

另请参阅

相关的话题