主要内容

建立模糊系统使用自定义函数

当你建立一个模糊推理系统(FIS),您可以取代内置的成员函数或推理函数使用自定义函数。您可以创建一个金融中间人,使用这些定制函数模糊逻辑设计应用MATLAB®命令行。

创建FIS的更多信息,请参阅使用模糊逻辑构建模糊系统设计师在命令行构建模糊系统

自定义隶属度函数

您可以创建自定义隶属度函数和模糊推理过程中使用它们。这些函数的值必须介于0和1。隶属度函数的属性的更多信息,参见隶属度函数

当你创建一个自定义隶属函数,必须将其保存在您当前的工作目录或MATLAB路径。然后你可以设计一个FIS,使用自定义命令行或隶属函数模糊逻辑设计应用程序。

下面是一个多步自定义隶属函数的一个例子custmf1,这取决于8参数之间010

%函数来生成一个多步自定义隶属函数使用8参数为输入参数x %函数= custmf1 (x, params)i = 1:长度(x)如果x(我)< params (1) y (i) =参数(1);elseifx(我)< params (2) y (i) =参数(2);elseifx(我)< params (3) y (i) = params (3);elseifx(我)< params (4) y (i) =参数(4);elseifx(我)< params (5) y (i) = params (5);elseifx(我)< params (6) y (i) = params (6);elseifx(我)< params (7) y (i) = params (7);elseifx(我)< = params (8) y (i) = params (8);其他的y (i) = 0;结束结束%的规模输出区间[0,1]。= 0.1 * y ';结束

使用模糊逻辑设计师指定自定义隶属度函数

使用一个自定义成员函数在设计FIS时使用模糊逻辑设计应用程序,首先选择相应的变量系统浏览器。然后,在添加组件画廊,点击曼氏金融

与第一个输入应用程序在系统中选择浏览器和MF选项高亮显示在将来发布画廊

应用程序添加一个默认三角形隶属函数选择的变量。

属性编辑器:

  1. 范围字段中,指定一个输入范围相匹配的预期范围的隶属函数。

  2. 的名字隶属函数列,指定一个名称。

  3. 类型列,指定自定义隶属函数的名称。

  4. 参数列中,输入隶属函数参数。

属性编辑器显示一个输入范围(1,10)和一个定制的MF wof custmf1类型与参数[0 1 2 4 6 8 9 10]

来验证你的隶属函数的外观,选择的隶属函数系统浏览器并打开隶属函数编辑器

应用程序的自定义选择曼氏金融系统浏览器和步进式增加MF隶属函数编辑器中的情节

以下特性不支持自定义隶属度函数:金宝app

  • 交互地调整参数的自定义隶属函数隶属函数编辑器

  • 自动分配自定义隶属度函数在一个变量的范围。

定义定制的推理功能

根据FIS你设计的类型,您可以取代内置的,或者暗示,聚合和去模糊化推理方法使用自定义函数。为每种类型的推理功能,下表列出了FIS支持使用自定义函数的对象。金宝app

推理函数 金宝app支持FIS对象
所有FIS对象
含义
  • 1型Mamdani FIS

  • 2型Mamdani FIS

聚合
去模糊化 1型Mamdani FIS
Type-reduction
  • 2型Mamdani FIS

  • 2型Sugeno FIS

当你创建一个定制的推理功能,您必须将它保存在你当前的工作目录或MATLAB路径。然后你可以设计一个FIS,使用自定义在命令行或推理功能模糊逻辑设计应用程序。

创建自定义和或功能

自定义和或推理功能必须列在一个矩阵操作一样MATLAB函数马克斯,最小值,刺激。例如:

  • 行或列向量x,最小值返回最小元素。

    x = (1 2 3 4);分钟(x)
    ans = 1
  • 为一个矩阵x,最小值返回一个行向量,其中包含每一列的最小元素。

    x = (1 2 3 4 5 6 7 8; 9 10 11 12);分钟(x)
    ans = 1 2 3 4
    一天的矩阵,最小值沿着第一单体运营维度。

  • 两个数组,xy,最小值返回一个数组的大小一样大xy与最低的元素xy。的输入参数可以是一个标量。

    x = [1 2;3 4];y = [2 2;2 2];min (x, y)
    ans = 1 2 2 2

在模糊逻辑工具箱™软件:

  • 和推理函数执行一个元素,元素的矩阵操作,类似于命令min (x, y)

  • 或推理函数执行一个元素,元素的矩阵操作,类似于命令max (x, y)

创建自定义暗示功能

定制意味着函数必须以相同的方式操作的MATLAB函数马克斯,最小值,刺激。您的自定义含义必须是一个函数T规范模糊交叉操作。有关更多信息,请参见额外的模糊算子

一个影响函数必须支持一个或两个输入,因为软件调用函数在两个金宝app方面。

  • 计算输出模糊集值使用的发射强度规则和相应的输出隶属度函数。在这种情况下,软件调用意味着函数使用两个输入如下。

    outputmf impvals = customimp (w)
    • w——发射强度的多个规则,指定为一个Nr——- - - - - -N年代矩阵。在这里,Nr规则和数量吗N年代是样品的数量的输出隶属度函数。

      w (:, j) = w (: 1)对所有jw(我,1)的发射强度吗规则。

    • outputmf——输出隶属函数值,指定为一个Nr——- - - - - -N年代矩阵。outputmf(我,:)包含的数据输出隶属函数。

  • 计算输出模糊值使用单一规则的发射强度和相应的输出隶属函数,对于一个给定的样本。在这种情况下,软件调用意味着函数使用一个输入,类似于下面的例子:

    impval = customimp ([w outputmf])

    woutputmf的发射强度标量值代表一个规则和相应的输出隶属函数值,对于一个给定的样本。

下面是一个例子,一个有界产品定制的含义与二进制映射函数 T ( 一个 , b ) = 马克斯 { 0 , 一个 + b 1 } [1]

函数y = customimp (x1, x2)如果输入参数个数= = 1% x1假定为非空的列向量或矩阵。minVal = 0(1、大小(x1, 2));y = 1(1、尺寸(x1, 2));i = 1:尺寸(x1, 1) y = max (minVal, sum ((y; x1(我,:)))1);结束其他的% x1和x2假定为非空的矩阵。minVal = 0(1、大小(x1, 2));y = 0(大小(x1));i = 1:尺寸(x1, 1) y(我:)= max (minVal, sum ((x1(我:);x2(我,:)))1);结束结束结束

请注意

定制意味着函数为Sugeno系统不支持。金宝app

创建自定义聚合函数

自定义聚合函数必须以相同的方式操作的MATLAB函数马克斯,最小值,刺激和必须的形式y = customagg (x)。您的自定义含义必须是一个函数T-conorm (年代规范)模糊交叉操作。有关更多信息,请参见额外的模糊算子

x是一个Nv——- - - - - -Nr矩阵,截断的列表输出函数返回的每个规则的暗示方法。Nv输出变量的数量和吗Nr是规则的数量。聚合方法的输出是一个每个输出变量的模糊集。

下面是一个例子,一个有界和自定义聚合函数与二进制映射 年代 ( 一个 , b ) = 最小值 { 一个 + b , 1 } [1]

函数y = customagg (x) maxVal =(1、尺寸(x, 2));y = 0(1、尺寸(x, 2));i = 1:尺寸(x, 1) y = min (maxVal, sum ((y; x(我,:))));结束结束

请注意

Sugeno系统不支持自定义聚合函数。金宝app

创建自定义去模糊化函数

自定义表单的去模糊化函数必须y = customdefuzz (x, ymf),在那里x是向量中的值的隶属函数的输入范围和ymf包含每个的隶属函数的值x价值。

下面是一个定制的去模糊化函数的一个例子。

函数defuzzfun = customdefuzz (x, ymf) total_area =总和(ymf);defuzzfun = (ymf。* x) / total_area总和;结束

请注意

定制的去模糊化函数为Sugeno系统不支持。金宝app

创建自定义Type-Reduction函数

对于2型模糊推理系统,您可以指定一个自定义type-reduction函数。这个函数必须的形式y = customtr (x, umf lmf),在那里x是向量中的值的隶属函数的输入范围。umflmf各自的价值观是上下隶属函数为每个x价值。输出y是一个双元素质心的行向量cl,cR]。

减少有关类型的更多信息,请参阅2型模糊推理系统

默认情况下,2型Sugeno系统只支持一种加权平均的类型。金宝app下面的自定义type-reduction函数实现了加权和的形式还原Sugeno系统类型。

函数y = customtr (x, umf lmf) y = 0 (1、2);y (1) = (x。* umf)总和;y (2) = (x。* lmf)总和;结束

指定自定义使用模糊逻辑推理函数设计师

使用自定义推理功能在设计FIS时使用模糊逻辑设计应用程序,第一个选择的金融中间人系统浏览器。然后,在属性编辑器,输入自定义函数的名称在相应的推理功能。

与2型FIS应用在系统中选择浏览器左边和FIS属性突出显示在右边。

此表显示了属性编辑器为每种类型的推理功能。

推理函数 属性编辑器领域
和方法
或方法
含义 暗示的方法
聚合 聚合方法
去模糊化 去模糊化方法
Type-reduction Type-reduction方法

在命令行中指定自定义推理功能

使用自定义推理功能在设计FIS MATLAB命令行,设置对应的FIS对象属性的自定义推理函数名。例如,下面的命令集FIS的聚合函数myFIScustomagg函数。

myFIS。AggregationMethod =“customagg”;

此表显示了每种类型的推理的FIS对象属性的功能。

推理函数 FIS对象属性
AndMethod
OrMethod
含义 ImplicationMethod
聚合 AggregationMethod
去模糊化 DefuzzificationMethod
Type-reduction TypeReductionMethod

使用自定义函数代码生成

您可以使用自定义函数在模糊推理系统为您生成代码。在代码生成的模糊系统的更多信息,见部署模糊推理系统

如果你使用nondouble数据类型生成的代码,您必须传播数据类型定制函数输入参数的输出参数。例如,下面的自定义聚合函数维护的数据类型xy使用0功能与“喜欢”论点。

函数y = customagg (x)% # codegenmaxVal = 1(1、大小(x, 2),“喜欢”,x);y = 0(1、大小(x, 2),“喜欢”,x);i = 1:尺寸(x, 1) y = min (maxVal, sum ((y; x(我,:))));结束结束

有关编写函数的更多信息,支持C / c++代码生成,明白了金宝appMATLAB编程代码生成(MATLAB编码器)

引用

[1]Mizumoto Masaharu。“模糊的图像表示连接词,第二部分:补偿算子和自对偶算子的病例。”模糊集和系统32岁的没有。1(1989年8月):45 - 79。https://doi.org/10.1016/0165 - 0114 (89) 90087 - 0

另请参阅

相关的话题