模糊推理系统:Mamdani与Mamdani Type-2的深入解析
1. 引言
在模糊逻辑领域,Mamdani模糊推理系统(FIS)是一种广泛应用的技术。它能够处理模糊信息,模拟人类的推理过程,在许多领域如控制工程、决策支持等发挥着重要作用。本文将详细介绍Type-1 Mamdani FIS和Interval Type-2 Mamdani FIS的相关内容,包括其创建方法、输入参数、属性以及对象函数等。
2. Type-1 Mamdani模糊推理系统
2.1 概述
可以使用
mamfis
对象来表示Type-1 Mamdani模糊推理系统。除了Type-1 Mamdani系统,还可以创建其他类型的模糊推理系统,如下表所示:
| 系统类型 | 对象 |
| ---- | ---- |
| Type-1 Sugeno系统 |
sugfis
对象 |
| Type-2 Mamdani系统 |
mamfistype2
对象 |
| Type-2 Sugeno系统 |
sugfistype2
对象 |
2.2 创建方法
创建Mamdani FIS对象有以下几种方法:
- 使用
mamfis
函数。
- 若有输入和输出训练数据(分别为
inputData
和
outputData
),可以使用
genfis
函数结合FCM聚类方法:
opt = genfisOptions('FCMClustering','FISType','mamdani');
fis = genfis(inputData,outputData,opt);
-
若有Mamdani系统的
.fis文件,可以使用readfis函数。
2.3 语法
-
fis = mamfis:创建具有默认属性值的Mamdani FIS。可以使用点符号修改模糊系统的属性。 -
fis = mamfis(Name,Value):使用名称 - 值对参数指定FIS配置信息或设置对象属性。可以指定多个名称 - 值对,名称需用引号括起来。
2.4 输入参数
输入参数以名称 - 值对的形式指定,常见的参数如下表所示:
| 参数名称 | 描述 | 默认值 | 取值范围 |
| ---- | ---- | ---- | ---- |
|
NumInputs
| FIS输入的数量 | 0 | 非负整数 |
|
NumInputMFs
| 每个FIS输入的隶属函数数量 | 3 | 正整数 |
|
NumOutputs
| FIS输出的数量 | 0 | 非负整数 |
|
NumOutputMFs
| 每个FIS输出的隶属函数数量 | 3 | 正整数 |
|
MFType
| 隶属函数类型 | “trimf” | “trimf”(三角隶属函数)或 “gaussmf”(高斯隶属函数) |
|
AddRules
| 自动添加规则的标志 | “allcombinations” | “allcombinations” 或 “none” |
下面是创建具有两个输入变量的模糊系统的示例:
fis = mamfis('NumInputs',2);
2.5 属性
Mamdani FIS的属性包括名称、AND和OR运算符方法、蕴含方法、聚合方法、去模糊化方法等,具体如下:
| 属性名称 | 描述 | 默认值 | 取值范围 |
| ---- | ---- | ---- | ---- |
|
Name
| FIS名称 | “fis” | 字符串或字符向量 |
|
AndMethod
| AND运算符方法 | “min” | “min”、”prod”、字符串、字符向量或函数句柄 |
|
OrMethod
| OR运算符方法 | “max” | “max”、”probor”、字符串、字符向量或函数句柄 |
|
ImplicationMethod
| 蕴含方法 | “min” | “min”、”prod”、字符串、字符向量或函数句柄 |
|
AggregationMethod
| 聚合方法 | “max” | “max”、”sum”、”probor”、字符串、字符向量或函数句柄 |
|
DefuzzificationMethod
| 去模糊化方法 | “centroid” | “centroid”、”bisector”、”mom”、”lom”、”som”、字符串、字符向量或函数句柄 |
|
Inputs
| FIS输入变量 | |
fisvar
对象的向量 |
|
Outputs
| FIS输出变量 | |
fisvar
对象的向量 |
|
Rules
| FIS规则 | |
fisrule
对象的向量 |
|
DisableStructuralChecks
| 禁用一致性检查的标志 | false | true 或 false |
以下是修改系统属性的示例:
fis = mamfis;
fis.DefuzzificationMethod = "centroid";
2.6 对象函数
mamfis
对象有一系列函数,用于添加和删除输入输出变量、规则、隶属函数,评估模糊推理系统等,如下表所示:
| 函数名称 | 描述 |
| ---- | ---- |
|
addInput
| 向模糊推理系统添加输入变量 |
|
removeInput
| 从模糊推理系统中移除输入变量 |
|
addOutput
| 向模糊推理系统添加输出变量 |
|
removeOutput
| 从模糊推理系统中移除输出变量 |
|
addRule
| 向模糊推理系统添加规则 |
|
addMF
| 向模糊变量添加隶属函数 |
|
removeMF
| 从模糊变量中移除隶属函数 |
|
evalfis
| 评估模糊推理系统 |
|
writeFIS
| 将模糊推理系统保存到文件 |
|
convertToType2
| 将Type-1模糊推理系统转换为Type-2模糊推理系统 |
创建Mamdani模糊推理系统的流程图如下:
graph TD;
A[开始] --> B{选择创建方法};
B -->|mamfis函数| C[创建默认属性的FIS];
B -->|genfis函数结合FCM| D[使用训练数据创建FIS];
B -->|readfis函数| E[从.fis文件创建FIS];
C --> F[可修改属性];
D --> F;
E --> F;
F --> G[添加输入输出变量、规则等];
G --> H[评估或保存FIS];
H --> I[结束];
2.7 示例
- 创建具有默认属性值的Mamdani模糊推理系统,并修改其属性:
fis = mamfis;
fis.DefuzzificationMethod = "centroid";
- 创建具有指定AND和OR方法的Mamdani模糊系统:
fis = mamfis("AndMethod","prod","OrMethod","probor");
- 创建具有三个输入和一个输出的Mamdani模糊推理系统:
fis = mamfis("NumInputs",3,"NumOutputs",1);
3. Interval Type-2 Mamdani模糊推理系统
3.1 概述
使用
mamfistype2
对象来表示Interval Type-2 Mamdani模糊推理系统。与Type-1 Mamdani系统类似,它也有多种创建方法和相关属性。
3.2 创建方法
创建Type-2 Mamdani FIS对象的方法如下:
- 使用
mamfistype2
函数。
- 若有输入和输出训练数据(分别为
inputData
和
outputData
),可以先使用
genfis
函数结合FCM聚类方法创建Type-1 FIS,再使用
convertToType2
将其转换为Type-2系统:
opt = genfisOptions('FCMClustering','FISType','mamdani');
fis1 = genfis(inputData,outputData,opt);
fis = convertToType2(fis1);
-
若有Type-2 Mamdani系统的
.fis文件,可以使用readfis函数。
3.3 语法
-
fis = mamfistype2:创建具有默认属性值的Type-2 Mamdani FIS。可以使用点符号修改模糊系统的属性。 -
fis = mamfistype2(Name,Value):使用名称 - 值对参数指定FIS配置信息或设置对象属性。可以指定多个名称 - 值对,名称需用引号括起来。
3.4 输入参数
输入参数的名称和取值与Type-1 Mamdani系统类似,如下表所示:
| 参数名称 | 描述 | 默认值 | 取值范围 |
| ---- | ---- | ---- | ---- |
|
NumInputs
| FIS输入的数量 | 0 | 非负整数 |
|
NumInputMFs
| 每个FIS输入的隶属函数数量 | 3 | 正整数 |
|
NumOutputs
| FIS输出的数量 | 0 | 非负整数 |
|
NumOutputMFs
| 每个FIS输出的隶属函数数量 | 3 | 正整数 |
|
MFType
| 隶属函数类型 | “trimf” | “trimf”(三角隶属函数)或 “gaussmf”(高斯隶属函数) |
|
AddRules
| 自动添加规则的标志 | “allcombinations” | “allcombinations” 或 “none” |
3.5 属性
Type-2 Mamdani FIS的属性与Type-1 Mamdani系统大部分相同,但有一个额外的
TypeReductionMethod
属性,用于将Type-2输出模糊集转换为区间Type-1模糊集,具体如下:
| 属性名称 | 描述 | 默认值 | 取值范围 |
| ---- | ---- | ---- | ---- |
|
Name
| FIS名称 | “fis” | 字符串或字符向量 |
|
AndMethod
| AND运算符方法 | “min” | “min”、”prod”、字符串、字符向量或函数句柄 |
|
OrMethod
| OR运算符方法 | “max” | “max”、”probor”、字符串、字符向量或函数句柄 |
|
ImplicationMethod
| 蕴含方法 | “min” | “min”、”prod”、字符串、字符向量或函数句柄 |
|
AggregationMethod
| 聚合方法 | “max” | “max”、”sum”、”probor”、字符串、字符向量或函数句柄 |
|
DefuzzificationMethod
| 去模糊化方法 | “centroid” | 仅支持 “centroid” |
|
Inputs
| FIS输入变量 | |
fisvar
对象的向量 |
|
Outputs
| FIS输出变量 | |
fisvar
对象的向量 |
|
Rules
| FIS规则 | |
fisrule
对象的向量 |
|
DisableStructuralChecks
| 禁用一致性检查的标志 | false | true 或 false |
|
TypeReductionMethod
| 类型约简方法 | “karnikmendel” | “karnikmendel”、”ekm”、”iasc”、”eiasc”、字符串或函数句柄 |
以下是修改Type-2 Mamdani系统属性的示例:
fis = mamfistype2;
fis.TypeReductionMethod = "ekm";
3.6 对象函数
mamfistype2
对象的函数与
mamfis
对象类似,但有一个额外的
convertToType1
函数,用于将Type-2模糊推理系统转换为Type-1模糊推理系统,如下表所示:
| 函数名称 | 描述 |
| ---- | ---- |
|
addInput
| 向模糊推理系统添加输入变量 |
|
removeInput
| 从模糊推理系统中移除输入变量 |
|
addOutput
| 向模糊推理系统添加输出变量 |
|
removeOutput
| 从模糊推理系统中移除输出变量 |
|
addRule
| 向模糊推理系统添加规则 |
|
addMF
| 向模糊变量添加隶属函数 |
|
removeMF
| 从模糊变量中移除隶属函数 |
|
evalfis
| 评估模糊推理系统 |
|
writeFIS
| 将模糊推理系统保存到文件 |
|
convertToType2
| 将Type-1模糊推理系统转换为Type-2模糊推理系统 |
|
convertToType1
| 将Type-2模糊推理系统转换为Type-1模糊推理系统 |
创建Type-2 Mamdani模糊推理系统的流程图如下:
graph TD;
A[开始] --> B{选择创建方法};
B -->|mamfistype2函数| C[创建默认属性的Type-2 FIS];
B -->|genfis结合FCM再转换| D[使用训练数据创建Type-1 FIS并转换];
B -->|readfis函数| E[从.fis文件创建Type-2 FIS];
C --> F[可修改属性];
D --> F;
E --> F;
F --> G[添加输入输出变量、规则等];
G --> H[评估或保存FIS];
H --> I[结束];
3.7 示例
- 创建具有默认属性值的Type-2 Mamdani模糊推理系统,并修改其类型约简方法:
fis = mamfistype2;
fis.TypeReductionMethod = "ekm";
- 创建具有指定类型约简方法的Type-2 Mamdani模糊系统:
fis = mamfistype2('TypeReductionMethod',"ekm");
- 创建具有三个输入和一个输出的Type-2 Mamdani模糊推理系统:
fis = mamfis("NumInputs",3,"NumOutputs",1);
4. 总结
本文详细介绍了Type-1 Mamdani模糊推理系统和Interval Type-2 Mamdani模糊推理系统的相关内容,包括其创建方法、输入参数、属性、对象函数和示例。通过这些信息,读者可以更好地理解和使用这两种模糊推理系统,在实际应用中根据需求选择合适的系统类型,并灵活配置其参数和属性。
模糊推理系统:Mamdani与Mamdani Type-2的深入解析
5. 两种系统的对比分析
5.1 创建方法对比
| 系统类型 | 创建方法 | 特点 |
|---|---|---|
| Type - 1 Mamdani |
1.
mamfis
函数;2.
genfis
函数结合FCM聚类方法;3.
readfis
函数读取
.fis
文件
|
较为直接,可根据有无训练数据和
.fis
文件灵活选择
|
| Type - 2 Mamdani |
1.
mamfistype2
函数;2.
genfis
结合FCM创建Type - 1 FIS后用
convertToType2
转换;3.
readfis
函数读取
.fis
文件
| 对于有Type - 1系统基础的情况,可通过转换得到,增加了灵活性 |
5.2 属性对比
Type - 2 Mamdani系统在属性上与Type - 1 Mamdani系统大部分相同,但有一些关键差异:
-
去模糊化方法
:Type - 1 Mamdani系统支持多种去模糊化方法,如 “centroid”、”bisector”、”mom” 等;而Type - 2 Mamdani系统仅支持 “centroid” 去模糊化方法。
-
类型约简方法
:Type - 2 Mamdani系统有额外的
TypeReductionMethod
属性,用于将Type - 2输出模糊集转换为区间Type - 1模糊集,取值包括 “karnikmendel”、”ekm” 等。
graph LR;
A[Type - 1 Mamdani属性] --> B[多种去模糊化方法];
C[Type - 2 Mamdani属性] --> D[仅支持centroid去模糊化];
C --> E[有TypeReductionMethod属性];
5.3 对象函数对比
两种系统的对象函数大部分相同,都有添加和删除输入输出变量、规则、隶属函数等功能。但Type - 2 Mamdani系统有一个额外的
convertToType1
函数,可将Type - 2模糊推理系统转换为Type - 1模糊推理系统,方便在不同类型系统之间切换。
6. 实际应用场景
6.1 Type - 1 Mamdani系统应用场景
- 控制工程 :在一些对模糊信息处理要求不是特别复杂的控制系统中,Type - 1 Mamdani系统可以快速构建模糊控制器。例如,简单的温度控制系统,根据环境温度和设定温度的差值,通过模糊规则输出控制信号来调节加热或制冷设备。
- 决策支持 :在一些决策场景中,如风险评估、资源分配等,Type - 1 Mamdani系统可以根据多个模糊因素进行推理,给出决策建议。
操作步骤:
1. 确定输入变量(如温度差值、风险因素等)和输出变量(如控制信号、决策结果等)。
2. 根据实际情况设置输入输出变量的隶属函数和模糊规则。
3. 使用
mamfis
函数创建模糊推理系统,并根据需要修改属性。
4. 调用
evalfis
函数进行评估,得到输出结果。
6.2 Type - 2 Mamdani系统应用场景
- 复杂不确定性环境 :当系统存在大量不确定性和模糊性时,Type - 2 Mamdani系统能够更好地处理这些信息。例如,在金融市场预测中,市场情况复杂多变,存在很多不确定因素,Type - 2 Mamdani系统可以更准确地模拟这种不确定性。
- 高精度控制 :在一些对控制精度要求较高的领域,如航空航天、机器人控制等,Type - 2 Mamdani系统可以通过更精确的模糊推理提供更准确的控制信号。
操作步骤:
1. 确定输入输出变量和训练数据(如果有)。
2. 若有训练数据,使用
genfis
结合FCM创建Type - 1 FIS,再用
convertToType2
转换为Type - 2系统;若无训练数据,使用
mamfistype2
函数创建系统。
3. 根据实际情况设置输入输出变量的隶属函数、模糊规则和类型约简方法等属性。
4. 调用
evalfis
函数进行评估,得到输出结果。
7. 注意事项
7.1 一致性检查
在使用
mamfis
和
mamfistype2
对象时,默认会进行一致性检查,确保属性值的更改与其他对象属性一致。但这些检查可能会影响性能,特别是在循环中创建和更新模糊系统时。可以通过设置
DisableStructuralChecks
属性为
true
来禁用这些检查,以加快FIS构建速度,但要注意禁用结构检查可能会导致无效的对象。若要重新启用一致性检查,需先确保对FIS所做的更改是一致的,能产生有效的对象,否则会生成错误。
7.2 自定义函数使用
两种系统都支持使用自定义函数,如自定义AND、OR、蕴含、聚合和去模糊化函数等。在使用自定义函数时,要确保函数位于当前工作文件夹或MATLAB路径中,并且函数的输入输出格式符合要求。
8. 总结与展望
本文全面介绍了Type - 1 Mamdani和Interval Type - 2 Mamdani模糊推理系统,通过对它们的创建方法、输入参数、属性、对象函数的详细阐述,以及对比分析和实际应用场景的介绍,让读者对这两种系统有了更深入的了解。在实际应用中,可根据系统的复杂程度、不确定性程度和对精度的要求等因素,选择合适的系统类型。
未来,随着模糊逻辑技术的不断发展,这两种模糊推理系统可能会在更多领域得到应用,并且可能会有更高效的创建方法和更强大的功能出现。例如,在人工智能和大数据领域,模糊推理系统可以与其他技术相结合,处理更复杂的问题。同时,对于Type - 2系统的研究可能会进一步深入,提高其处理不确定性的能力和计算效率。
希望读者通过本文的介绍,能够在实际项目中灵活运用这两种模糊推理系统,发挥它们的优势,解决各种模糊信息处理问题。
超级会员免费看
287

被折叠的 条评论
为什么被折叠?



