【模糊数学基础】Mamdani推理法
Mamdani 推理法
Mamdani 推理法是模糊控制中最常用的推理方法之一,特别适用于模糊控制器设计。它基于模糊逻辑,通过模糊化、模糊规则和去模糊化的过程进行推理和决策。
Mamdani 推理法的主要步骤如下:
-
模糊化(Fuzzification):
将输入变量( crisp inputs )转换为模糊集。也就是将实际的数值输入映射到一个模糊集合中,通常是通过隶属度函数进行转换。 -
规则库(Rule Base):
使用一组模糊规则来描述系统的行为,规则的格式通常为“如果 A,则 B”。这些规则采用语言变量(如“低”、“中”、“高”)来表示。 -
推理(Inference):
根据模糊规则库和输入的模糊集合,使用推理机制进行推理。推理的目的是计算每个输出的模糊值,通常是使用“最小-最大”或“乘法-加法”方法。 -
去模糊化(Defuzzification):
将推理得到的模糊集合转换为实际的输出(crisp output)。常见的去模糊化方法有“重心法”或“最大隶属度法”。
Mamdani 推理法步骤详解
1. 模糊化
将输入的实际数值(crisp input)转换为模糊集。例如,假设有输入变量“温度”,温度值为 30°C,假设温度的模糊化集合包括“低温”、“中温”和“高温”,每个模糊集合都有相应的隶属度函数,温度 30°C 对应的隶属度可能是:
- 低温:0.1
- 中温:0.7
- 高温:0.2
2. 应用规则库
假设有以下模糊规则:
- 规则 1:如果温度是“低温”,则风速是“慢”
- 规则 2:如果温度是“高温”,则风速是“快”
在规则应用时,我们根据输入的模糊值,确定规则的激活程度。例如,如果温度为 30°C 对应的隶属度是“低温 0.1”,“中温 0.7”,“高温 0.2”,则根据这些隶属度值激活相应的规则。
3. 推理(Inference)
对于每个规则,使用规则的隶属度进行推理。具体地,通过模糊乘法(通常是最小化运算)将输入的隶属度与规则的输出进行结合。例如:
- 对于“低温”规则,输出是“慢”,假设“慢”的隶属度函数是 0.4,则激活度为 0.1×0.4=0.040.1 \times 0.4 = 0.040.1×0.4=0.04。
- 对于“高温”规则,输出是“快”,假设“快”的隶属度函数是 0.8,则激活度为 0.2×0.8=0.160.2 \times 0.8 = 0.160.2×0.8=0.16。
4. 去模糊化
将推理得到的模糊结果转换为实际值。常用的去模糊化方法是重心法(Centroid method)。重心法的公式为:
y=∑(yi×μi)∑μiy=∑(yi×μi)∑μiy=∑(yi×μi)∑μiy = \frac{\sum (y_i \times \mu_i)}{\sum \mu_i}y=∑(yi×μi)∑μiy=∑μi∑(yi×μi)
其中 yiy_i 是输出值,μi\mu_i 是输出值的隶属度。
假设在“慢”和“快”之间的风速输出的隶属度分别为 0.04 和 0.16,且风速的范围是从 0 到 100,分别表示“慢”和“快”的模糊输出值为 10 和 90,那么:
y=(10×0.04)+(90×0.16)0.04+0.16=0.4+14.40.2=14.80.2=74y = \frac{(10 \times 0.04) + (90 \times 0.16)}{0.04 + 0.16} = \frac{0.4 + 14.4}{0.2} = \frac{14.8}{0.2} = 74y=0.04+0.16(10×0.04)+(90×0.16)=0.20.4+14.4=0.214.8=74
最终输出的风速为 74(单位是风速)。
示例问题
假设有一个简单的模糊控制系统,用来控制风速。输入变量为“温度”,输出变量为“风速”。我们使用 Mamdani 推理法来推导风速。
1. 输入:
- 温度:30°C
2. 模糊化:
- 温度的模糊集合为:
- 低温(0-20°C):隶属度函数为 μlow\mu_{\text{low}}μlow
- 中温(20-40°C):隶属度函数为 μmedium\mu_{\text{medium}}μmedium
- 高温(40-60°C):隶属度函数为 μhigh\mu_{\text{high}}μhigh
假设温度 30°C 的隶属度为:
- 低温:0.2
- 中温:0.8
- 高温:0.0
3. 规则库:
- 规则 1:如果温度是“低温”,则风速是“慢”。
- 规则 2:如果温度是“中温”,则风速是“中”。
- 规则 3:如果温度是“高温”,则风速是“快”。
4. 推理:
- 规则 1 激活度:0.2×0.4=0.08(低温 → 风速慢)
- 规则 2 激活度:0.8×0.6=0.48(中温 → 风速中)
- 规则 3 激活度:0.0×1.0=0.00(高温 → 风速快)
5. 去模糊化:
- 风速慢的隶属度为 0.4,表示风速为 10。
- 风速中的隶属度为 0.6,表示风速为 50。
- 风速快的隶属度为 1.0,表示风速为 90。
去模糊化计算:
y=(10×0.08)+(50×0.48)+(90×0.0)0.08+0.48+0.0=(0.8+24+0)0.56=24.80.56≈44.29y = \frac{(10 \times 0.08) + (50 \times 0.48) + (90 \times 0.0)}{0.08 + 0.48 + 0.0} = \frac{(0.8 + 24 + 0)}{0.56} = \frac{24.8}{0.56} \approx 44.29y=0.08+0.48+0.0(10×0.08)+(50×0.48)+(90×0.0)=0.56(0.8+24+0)=0.5624.8≈44.29
最终输出的风速为 44.29(单位:风速)。
总结
Mamdani 推理法是模糊控制中常用的推理方法,它能够有效处理输入和输出变量之间的模糊关系。通过模糊化、规则库、推理、去模糊化的过程,Mamdani 方法可以产生一个清晰的输出,用于实际控制。
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)