提问人:rorra 提问时间:9/17/2023 更新时间:9/17/2023 访问量:25
无法获得正确的方法来使模糊逻辑问题与妈妈去模糊方法一起工作
Cannot get the right way to make a fuzzy logic problem to work with the mom defuzzy method
问:
我是模糊逻辑的新手,我正在尝试在温度为 27 度时用妈妈去模糊方法获得加热器的功率
我遇到了错误,因为该方法的第一个和第二个元素应该是相同大小的数组,但我不确定如何编写问题/代码defuzz
import numpy as np
import skfuzzy as fuzz
from skfuzzy import control as ctrl
# Definir el universo de discurso para temperatura y potencia
temperatura = ctrl.Antecedent(np.arange(0, 41, 1), 'temperatura')
potencia = ctrl.Consequent(np.arange(0, 101, 1), 'potencia')
# Definir las funciones de membresía para temperatura
temperatura['baja'] = fuzz.trimf(temperatura.universe, [0, 10, 15])
temperatura['media'] = fuzz.trapmf(temperatura.universe, [10, 15, 25, 30])
temperatura['alta'] = fuzz.trimf(temperatura.universe, [25, 30, 40])
# Definir las funciones de membresía para potencia
potencia['baja'] = fuzz.trimf(potencia.universe, [0, 20, 30])
potencia['media'] = fuzz.trapmf(potencia.universe, [20, 30, 60, 70])
potencia['alta'] = fuzz.trimf(potencia.universe, [60, 70, 100])
# Visualización de las funciones de membresía
temperatura.view()
potencia.view()
# Definir las reglas difusas
regla1 = ctrl.Rule(temperatura['baja'], potencia['alta'])
regla2 = ctrl.Rule(temperatura['media'], potencia['media'])
regla3 = ctrl.Rule(temperatura['alta'], potencia['baja'])
# Crear el sistema de control difuso
sistema_control = ctrl.ControlSystem([regla1, regla2, regla3])
# Crear el simulador del sistema de control difuso
simulador = ctrl.ControlSystemSimulation(sistema_control)
# Establecer la temperatura de entrada
simulador.input['temperatura'] = 27 # Temperatura de ejemplo
# Realizar la inferencia
simulador.compute()
# Obtener el valor de potencia de salida
potencia_mom = fuzz.defuzz(potencia.universe, simulador.output['potencia'], 'mom')
答: 暂无答案
评论