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)