【问题标题】:Defining custom membership function using Python skfuzzy library使用 Python skfuzzy 库定义自定义隶属函数
【发布时间】:2018-04-13 06:43:08
【问题描述】:

我正在尝试使用 skfuzzy ctrl 库在 python 中构建一个模糊决策模块。我正在定义一个前因和 5 个结果。但问题是我无法为前件定义我自己的三角隶属函数。代码如下。

# Import libraries
import math as M
import numpy as np
import matplotlib.pyplot as plt
import serial
import time
import skfuzzy as fuzz
x_pos = ctrl.Antecedent(np.arange(-0.25, 0.25, 0.001),'x_pos')

# x_serv = np.arange(0, 11, 1)
L1 = ctrl.Consequent(np.arange(0, 100, 0.001),'L1')
L2 = ctrl.Consequent(np.arange(0, 100, 0.001),'L2')
R1 = ctrl.Consequent(np.arange(0, 100, 0.001),'R1')
R2 = ctrl.Consequent(np.arange(0, 100, 0.001),'R2')
T = ctrl.Consequent(np.arange(0, 100, 0.001),'T')

我尝试过这种方式,但正如预期的那样,它显示错误。

x_pos['left']=fuzz.trimf(x_pos,[-0.25,-0.25,0])
x_pos['center']=fuzz.trimf(x_pos,[-0.1,0,0.1])
x_pos['right']=fuzz.trimf(x_pos,[0,0.25,0.25])

无论如何我可以在不使用 automf 函数的情况下定义自己的先行词。 automf 函数不能让我灵活地定义自己的先行词。 谢谢。

【问题讨论】:

    标签: python fuzzy-logic


    【解决方案1】:

    我不确定你想要什么,但是,你可以使用 automf 在你的 Antecedent 中定义标签,例如:

    names = ['nb', 'ns', 'ze', 'ps', 'pb']
    x_pos.automf(names=names)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-06-30
      • 1970-01-01
      • 2015-09-22
      • 2021-09-17
      • 2014-01-28
      • 2022-08-05
      • 1970-01-01
      相关资源
      最近更新 更多