主要内容

Fisrule.

模糊规则

描述

采用Fisrule.对象表示将输入成员资格函数条件相关的模糊IF-DOT规则,以将输入成员函数条件相关给相应的输出隶属函数。这如果模糊规则的一部分是前一种,指定每个输入变量的成员资格函数。这然后模糊规则的一部分是结果,它指定每个输出变量的成员资格函数。有关会员函数和模糊规则的更多信息,请参阅模糊逻辑的基础

创建

要创建模糊规则对象,请使用Fisrule.功能。使用此功能,您可以创建一个模糊规则或多个模糊规则的向量。

描述

例子

规则= fisrule.使用默认说明创建一个模糊规则“输入1 == MF1 => OUTPUT1 = MF1”

例子

规则= fisrule(ruleText.使用文本描述创建一个或多个模糊规则ruleText.

例子

规则= fisrule(Rulevalues.numinputs.使用数字规则值创建一个或多个模糊规则Rulevalues.。指定使用的规则输入变量的数量numinputs.

输入参数

展开全部

文本规则说明,指定为以下之一:

  • 指定单个规则的字符串或字符矢量

    规则=“如果服务差或食物是腐臭然后提示很便宜”;
  • 字符串数组,其中每个元素对应于规则。例如:

    rulelist = [“如果服务很差或食物是腐臭然后提示很便宜”;“如果服务好,那么提示是平均”;“如果服务是优秀的或食物很美味然后提示是慷慨的”];
  • 每行对应于规则的字符数组。例如:

    规则1 ='如果服务穷人或食物是腐臭然后提示很便宜';规则2 ='如果服务良好,那么提示是平均';规则3 ='如果服务是优秀的或食物很美味,那么提示很大;rulelist = char(Rule1,Rule2,Rule3);

对于每个规则,请使用以下规则文本格式之一:

  • verbose - 语言表达以以下格式,使用如果然后关键词:

    “如果<前一种>然后<结果>(<重量>)”

    <191.,使用该输入变量指定每个输入变量的隶属函数要么不是关键词。使用该条件使用该条件要么要么关键词。如果规则不使用给定的输入变量,请从前进状态省略它。

    <结果>,使用使用的每个输出变量为每个输出变量指定条件要么不是关键字,并使用逗号分隔这些条件。这不是Sugeno输出不支持关键字。金宝app如果规则不使用给定的输出变量,请从后果省略它。

    使用正数值指定权重。

    例如:

    “如果A是A和B不是B,则x是x,y不是y(1)”
  • 符号 - 使用下表中符号而不是关键字的符号表达式。没有象征如果关键词。

    象征 关键词
    ==. (在规则前)
    〜= 不是
    | 要么
    => 然后
    = (在规则中发生)

    例如,以下符号规则等同于上一个详细规则。

    “a == a&b〜= b => x = x,y〜= y(1)”

使用文本描述指定规则时,Fisrule.设置描述重量, 和联系基于描述的规则属性。

数字规则描述,指定为以下之一:

  • 行向量指定单个模糊规则

  • 数组,每行Rulevalues.指定一个规则

对于每行,数字规则描述具有m+N+2列,在哪里m是输入变量的数量和N是输出变量的数量。每列包含以下信息:

  • 首先m列指定输入隶属函数索引并对应于前一种规则的财产。表示A.不是条件,指定负值。如果规则不使用给定的输入,请将相应的索引设置为0.。对于每个规则,至少一个输入隶属函数索引必须是非零。

  • 下一个N列指定输出隶属函数指数并对应于结果规则的财产。表示A.不是Mamdani系统的条件,指定负值。不是Sugeno输出不支持条件。金宝app如果规则不使用给定的输出,请将相应的索引设置为0.。对于每个规则,至少一个输出隶属函数索引必须是非零。

  • 柱子m+N+1指定规则权重,对应于重量规则的财产。

  • 最终列指定前一种模糊操作员,并对应于联系规则的财产。

使用使用规则时Rulevlaues.Fisrule.设置描述属性使用默认变量和成员身份名称。

规则的输入变量数,指定为正整数。如果指定使用规则描述Rulevalues.,您还必须指定输入变量的数量。Fisrule.将规则的前一种值解析为使用的输入和输出变量的成员函数索引numinputs.

特性

展开全部

文本规则描述,指定为字符串或字符向量。无论如何指定规则,规则描述都存储为符号表达式。例如,如果您使用以下使用以下详细规则ruleText.

“如果A是A和B不是B,则x是x,y不是y(1)”

存储的规则是:

“a == a&b〜= b => x = x,y〜= y(1)”

有关详细和符号规则格式的更多信息,请参阅ruleText.输入参数。

使用使用规则时Rulevlaues.Fisrule.设置描述属性使用默认变量和成员身份名称。在使用模糊系统中的规则之前,必须更新说明以使用该模糊系统的变量和成员身份名称使用更新功能。

规则前,指定为长度的数字矢量m, 在哪里m是输入变量的数量。每个元素前一种包含以下值之一:

  • 正整数 - 输入成员函数的索引,代表一个状况

  • 负整数 - 输入成员资格函数的负数,代表一个不是状况

  • 0.- 一种不在乎条件,这意味着规则不使用相应的输入变量

使用模糊规则使用时设置此值Rulevalues.。如果您使用模糊规则ruleText.,在使用模糊系统中使用规则之前,必须填充前一种财产使用更新功能。

如果您使用点表示法更新规则前的索引,则描述未更新属性以反映更改。要更新规则描述,请使用更新功能。

结果,指定为长度的数字矢量N, 在哪里N是输出变量的数量。每个元素结果包含以下值之一:

  • 正整数 - 输出成员函数的索引,代表一个状况

  • 负整数 - 输出隶属函数的负数,代表一个不是状况

  • 0.- 一种不在乎条件,这意味着规则不使用相应的输出变量

使用模糊规则使用时设置此值Rulevalues.。如果您使用模糊规则ruleText.,在使用模糊系统中使用规则之前,必须填充结果财产使用更新功能。

如果您使用点表示法更新规则中的索引,则描述未更新属性以反映更改。要更新规则描述,请使用更新功能。

规则权重,指定为范围的正数标量[0.1]。

如果使用点表示法更新规则权重,则重量值描述房地产文本也更新。

规则前一种连接,指定为以下内容之一:

  • 1- 使用AND Operator评估规则前书。

  • 2- 使用或运算符评估规则前书。

如果使用点表示法更新规则连接,则前进的运营商描述房地产文本也会更新。

对象功能

更新 使用模糊推理系统更新模糊规则

例子

全部收缩

创建默认模糊规则。

规则= fisrule.
规则=具有属性的FISRule:描述:“输入1 == MF1 => OUTPUT1 = MF1(1)”前所未有:1因此:1重量:1连接:1

要修改规则属性,请使用点表示法。例如,指定规则权重0.5

规则.weight = 0.5;

使用详细文本描述创建模糊规则。

规则= fisrule(“如果服务很差,食物很美味,那么提示是平均(1)”);

或者,您可以使用符号文本描述指定相同的规则。

规则= fisrule(“服务==贫困和食物==美味=>提示=平均”
规则=具有属性的fisrule:“服务==差和食物== otion =>提示=平均(1)”前所未有:[]因此:[]重量:1连接:1

在使用之前规则使用模糊系统,更新规则前一种结果属性使用更新功能。

fis = readfis(“蒂珀”);规则=更新(规则,FIS)
规则=具有属性的fisrule:描述:“服务==差和食物== otion =>提示=平均(1)”前所未有:[1 2]因此:2重量:1连接:1

使用数字描述创建模糊规则。指定规则有两个输入变量。

规则= fisrule([1 2 2 0.5 1],2)
规则=具有属性的FISRule:“输入”== MF1和INPUT2 == MF2 => OUTPUT1 = MF2(0.5)“前所未知:[1 2]因此:2重量:0.5000连接:1

在使用之前规则使用模糊系统,更新规则描述财产使用更新功能。

fis = readfis(“蒂珀”);规则=更新(规则,FIS)
规则=具有属性的Fisrule:描述:“服务==差和食物==美味=>提示=平均(0.5)”前所未有:[1 2]因此:2重量:0.5000连接:1

创建字符串数组的文本规则说明。

规则1 = [“如果服务很差或食物是腐臭的那么提示很便宜(0.5)”......“如果服务是优秀的并且食物不是腐臭然后提示很大(0.75)”];

使用这些描述创建一系列模糊规则。

fuzzyrules1 = fisrule(规则1)
FuzzyleS1 = 1x2具有属性的Fisrule阵列:描述_________________________________________________________________提示=慷慨(0.75)“

或者,您可以使用数字规则描述数组指定多个规则。

规则2 = [1 1 0.5 2;2 -1 3 0.75 1];fuzzyrules2 = fisrule(规则2,2)
fuzzyrules2 = 1x2 fisrule阵列具有属性:说明前所可及的重量连接详细信息:描述____________________________________________mf1 |输入2 == mf1 =>输出1 = mf1(0.5)“2”输入1 == mf2和输入2〜= mf1 = mf1 = mf1 =>OUTPUT1 = MF3(0.75)“
在R2018B中介绍