如何用fuzzy函数创建一个有两个输入和一个输出的模糊逻辑系统具体示例
时间: 2024-05-25 17:16:05 浏览: 24
假设我们要创建一个模糊逻辑系统来决定一辆自动驾驶汽车何时应该停止。
我们将考虑两个输入变量:车速和距离。输出变量是停止程度。
1. 输入变量
车速:
- Universe (univ): 0-100 mph (英里/小时)
- 三角形函数 (triangular function):low (0-30 mph), medium (20-60 mph), high (40-100 mph)
距离:
- Universe (univ): 0-500 feet (英尺)
- 三角形函数 (triangular function):close (0-200 feet), medium (100-400 feet), far (300-500 feet)
2. 输出变量
停止程度:
- Universe (univ): 0-10
- 三角形函数 (triangular function):low (0-3), medium (2-7), high (5-10)
3. 规则
我们需要一组规则来决定停止程度。
规则 1:如果车速是高的并且距离是近的,那么停止程度是高的。
规则 2:如果车速是中等的并且距离是近的,那么停止程度是中等的。
规则 3:如果车速是低的并且距离是近的,那么停止程度是低的。
规则 4:如果车速是高的并且距离是远的,那么停止程度是中等的。
规则 5:如果车速是中等的并且距离是远的,那么停止程度是低的。
规则 6:如果车速是低的并且距离是远的,那么停止程度是低的。
4. 模糊化
我们需要将输入和输出变量模糊化,以便我们可以使用模糊逻辑进行推理。我们可以使用三角形函数来模糊化变量。
例如,如果车速是 40 mph,我们可以将其划分为 20-60 mph 的中等三角形函数。
5. 推理
我们可以使用模糊逻辑推理引擎根据规则进行推理。
例如,如果车速是高的并且距离是近的,那么我们可以使用两个输入变量的高值(high)来匹配规则 1,然后我们可以使用输出变量的高值(high)来计算停止程度。
6. 去模糊化
最后,我们需要将停止程度从模糊值转换为具体值。我们可以使用去模糊化方法,例如最大高度法(maximum height method)或重心法(centroid method)。
例如,如果停止程度的模糊值是 high (0.6),medium (0.3),low (0.1),我们可以使用重心法计算停止程度的具体值为 6.3。