Files
2025-03-20 18:52:44 +08:00

41 lines
1.3 KiB
Python

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)