我们前面已经讨论了三角形、梯形、高斯型、S型、Z型、Π型6种隶属函数,下一步进入模糊推理阶段。
有关六种隶属函数的特点在“Pi型隶属函数(Π-shaped Membership Function)的详细介绍及python示例”都有详细讲解:https://lzm07.blog.csdn.net/article/details/146461397
模糊推理的核心是根据规则库将输入映射到输出,所以需要分步骤解释这个过程。需要将输入变量T和H的隶属度结合模糊规则库来计算输出Y的隶属度。
模糊推理是模糊逻辑系统的核心步骤,其目标是根据输入变量的隶属度和预先定义的模糊规则库,推导出输出变量的隶属度。整个过程分为以下四个关键阶段:模糊化、规则评估、聚合和解模糊化等步骤。
前面多次用空调控制系统举例,其中温度T和湿度H作为输入,冷气阀门的开度作为输出。在例子中,需要定义输入变量T和H的隶属函数,比如低温、中温、高温,低湿、中湿、高湿。然后建立规则库,例如如果温度高且湿度高,则阀门全开。接着,计算每个规则的激活强度,如何应用蕴含方法(比如最小操作),然后通过聚合所有规则的输出,最后解模糊化得到具体数值。比如假设输入温度为30度,湿度为70%,计算每个条件的隶属度,应用规则,得到每个规则的输出,再聚合和解模糊化。简化步骤为:
(1)定义输入变量T和H的隶属函数
(2)建立规则库
(3)计算每个规则的激活强度
(4)聚合所有规则的输出
(5)解模糊化得到具体数值
接下来对推理过程的各个阶段进行详细说明:
1. 模糊化 (Fuzzification)
(1)目标:将精确的输入值(如温度T=28∘C、湿度H=70%)转换为对应模糊集合的隶属度。
如前文使用三角形隶属函数对温度T进行处理的例子:
其中,a表示左边界(隶属度为0的点),b表示顶点(隶属度为1的点),c表示右边界(隶属度为0的点)。
(2)步骤:对每个输入变量(T和H)的模糊集合(如“低温”、“中温”、“高温”),计算输入值在这些集合中的隶属度。
例如:温度T=28∘C在模糊集合“中温”的隶属度为0.8,在“高温”的隶属度为0.2。湿度H=70% 在模糊集合“高湿”的隶属度为0.6,在“中湿”的隶属度为0.4。
2. 规则评估 (Rule Evaluation)
目标:根据模糊规则库中的每条规则,计算其激活强度(Firing Strength),并确定输出隶属度的初步形状。
模糊规则是自己建立的。
关键操作:
(1)激活强度计算:使用模糊逻辑操作(如“与”操作取最小值,“或”操作取最大值)。
(2)输出隶属度裁剪:将激活强度作用于输出隶属函数,通常使用最小蕴含法(Min-Implication)或乘积蕴含法(Product-Implication)。
示例规则库:
(1)规则1:如果T 是“高” 且H 是“高”,则Y 是“全开”。
(2)规则2:如果T 是“中” 或H是“中”,则Y是“半开”。
(3)规则3:如果T 是“低” 且H 是“低”,则Y 是“关闭”。
计算示例(假设T=28∘C, H=70%):
(1)规则1:
- T 是“高”的隶属度 = 0.2
- H 是“高”的隶属度 = 0.6
- 激活强度 = min(0.2, 0.6) = 0.2
- 输出隶属度:将激活强度 0.2 作用于“全开”隶属函数(如裁剪到高度0.2)
(2)规则2:
- T 是“中”的隶属度 = 0.8
- H 是“中”的隶属度 = 0.4
- 激活强度 = max(0.8, 0.4) = 0.8
- 输出隶属度:将激活强度 0.8 作用于“半开”隶属函数
(3)规则3:
- T 是“低”的隶属度 = 0
- H 是“低”的隶属度 = 0
- 激活强度 = min(0, 0) = 0
- 输出隶属度:无贡献。
3. 聚合 (Aggregation)
目标:将所有规则的输出隶属度合并为一个综合的模糊输出集合。
方法:将每条规则裁剪后的输出隶属函数取最大值或求和,得到最终的模糊输出隶属度分布。
示例:
规则1的裁剪输出为高度0.2的“全开”隶属函数。
规则2的裁剪输出为高度0.8的“半开”隶属函数。
聚合结果 = max(规则1输出, 规则2输出)。
4. 解模糊化 (Defuzzification)
目标:将模糊的输出隶属度转换为精确的控制值(如阀门开度Y=65%)。
常用方法:
(1)重心法 (Centroid):计算隶属度曲线下面积的质心。
(2)最大值平均法 (Mean of Maxima):取隶属度最大点的平均值。
示例:假设聚合后的输出隶属度分布如图,通过重心法计算得到Y=65%。
5.完整案例演示
(1)场景:空调阀门控制系统
(2)输入变量:
温度T=28∘C
湿度H=70%
(3)模糊规则库:
如果T 高 且 H 高,则 Y 全开。
如果T 中 或 H 中,则 Y 半开。
如果T 低 且 H 低,则 Y 关闭。
(4)步骤说明:
1)模糊化:T=28 ∘C 的隶属度:
中温(Medium):0.8
高温(High):0.2
2)H=70% 的隶属度:
中湿(Medium):0.4
高湿(High):0.6
(5)规则评估:
规则1:激活强度 = min(0.2, 0.6) = 0.2 → 裁剪“全开”隶属函数至高度0.2。
规则2:激活强度 = max(0.8, 0.4) = 0.8 → 裁剪“半开”隶属函数至高度0.8。
规则3:激活强度 = 0 → 无贡献。
(6)聚合:将规则1和规则2的裁剪结果取最大值,得到综合输出隶属度。
(7)解模糊化:使用重心法计算聚合后的隶属度曲线质心,假设得到Y=65%。
关键总结
(1)模糊规则库设计:规则需覆盖所有可能的输入组合,逻辑需符合实际控制需求。
(2)参数敏感性:激活强度计算方法(min/max)、蕴含方法(min/product)和解模糊化方法(重心法/MoM)直接影响输出结果。
(3)可视化调试:通过绘制聚合后的输出隶属度曲线,验证逻辑合理性(如是否出现意外多峰或隶属度突变)。
通过模糊推理,系统能够以人类可理解的规则处理不确定性,在复杂控制场景中表现出色(如温度控制、自动驾驶决策)。