【问题标题】:How to define Traingular membership function for fuzzy controller design?如何定义模糊控制器设计的训练隶属函数?
【发布时间】:2018-07-21 22:49:28
【问题描述】:
我正在设计一个模糊控制器,为此,我必须定义 3 个三角函数集。它们是:
1 large
2 medium
3 small
但我的问题是我只有以下数据:
Maximum input = 3 Minimum input= 0.1
Maximum output = 5.5 Minimum output= 0.8
如何仅基于此给定信息定义 3 个三角形集合范围?
【问题讨论】:
标签:
matlab
controller
simulink
fuzzy-logic
control-theory
【解决方案1】:
这是三角隶属函数的公式
f=0 if x<=a
f=(x-a)/(b-a) if a<=x<=b
f=(c-x)/(c-b) if b<=x<=c
f=0 if x>c
where a is the min, c is the max and b is the midpoint.
在您的情况下,取最大值为3 且最小值为0.1 的最高情况。中点是(3+0.1)/2=1.55,所以你有
f=0 if x<=0.1
f=(x-0)/(1.55-1) if 0.1<=x<=1.55
f=(3-x)/(3-1.55) if 1.55<=x<=3
f=0 if x>3
您应该可以从此处获取第二个示例,但如果没有,请告诉我。值得指出的是,在您的情况下,中点可能不是理想的b。 a 和 c 之间的任何点都可以作为您的 b,只要知道它是隶属函数等于 1 的点。
很难说,但看起来您可能只是为其中两个函数提供了参数,可能是小型和大型或中型和大型。您可能需要对第 3 个隶属函数进行一些判断。