完成:实验二
This commit is contained in:
@@ -0,0 +1,40 @@
|
|||||||
|
import numpy as np
|
||||||
|
|
||||||
|
# 定义模糊集合的隶属度参数
|
||||||
|
sludge = [0, 0.5, 1] # 污泥浓度模糊集
|
||||||
|
grease = [0, 0.5, 1] # 油脂浓度模糊集
|
||||||
|
time = [0, 0.25, 0.5, 0.75, 1] # 洗涤时间模糊集
|
||||||
|
|
||||||
|
# 构建污泥和油脂的模糊关系矩阵(取最大值)
|
||||||
|
sludgeandgrease = np.zeros((len(sludge), len(grease)))
|
||||||
|
for i in range(len(sludge)):
|
||||||
|
for j in range(len(grease)):
|
||||||
|
sludgeandgrease[i, j] = max(sludge[i], grease[j])
|
||||||
|
sludgeandgrease = sludgeandgrease.reshape(9, 1) # 展平为列向量
|
||||||
|
|
||||||
|
# 构建模糊关系矩阵 R(取最小值)
|
||||||
|
R = np.zeros((len(sludgeandgrease), len(time)))
|
||||||
|
for i in range(len(sludgeandgrease)):
|
||||||
|
for j in range(len(time)):
|
||||||
|
R[i, j] = min(sludgeandgrease[i], time[j])
|
||||||
|
|
||||||
|
# 输入模糊集的隶属度
|
||||||
|
x1 = [0, 0.83, 0.6] # 污泥浓度实际测量隶属度
|
||||||
|
y1 = [0, 0.71, 0.7] # 油脂浓度实际测量隶属度
|
||||||
|
|
||||||
|
# 计算输入条件的模糊关系(取最大值)
|
||||||
|
x1y1 = np.zeros((len(x1), len(y1)))
|
||||||
|
for i in range(len(x1)):
|
||||||
|
for j in range(len(y1)):
|
||||||
|
x1y1[i, j] = max(x1[i], y1[j])
|
||||||
|
x1y12 = x1y1.reshape(9) # 展平为一维数组
|
||||||
|
|
||||||
|
# 合成模糊推理结果
|
||||||
|
result = np.zeros(5)
|
||||||
|
a = np.zeros(9)
|
||||||
|
for i in range(5):
|
||||||
|
for j in range(9):
|
||||||
|
a[j] = x1y12[j] * R[j, i] # 模糊推理合成运算
|
||||||
|
result[i] = max(a) # 取最大值作为最终结果
|
||||||
|
|
||||||
|
print(result)
|
||||||
|
|||||||
Reference in New Issue
Block a user