0

据我所知,如果我要使用 Mamdani 方法对值进行去模糊化,我会这样写一个 FCL 文件:

TERM T1 :=        (0,  1) (1,  0);
TERM T2 := (1, 0) (2,  1) (2,  0);
TERM T3 := (4, 0) (5,  1) (5,  0);
TERM T4 := (6, 0) (7,  1) (7,  0);
TERM T5 := (9, 0) (10, 1) (10, 0);

注意:这些值本身可能没有实际意义,因为我在模糊控制去模糊化逻辑中没有使用 Mamdani 方法。

我想要做的,或者说我确实有义务做的,就是用 Sugeno 的方法说:

TERM T1 := (0,  1);
TERM T2 := (2,  1);
TERM T3 := (5,  1);
TERM T4 := (7,  1);
TERM T5 := (10, 1);

或者为了更清楚地说明,我希望有一个介于 0 和 10 之间的范围,并且我希望我的术语在 x 轴上以点为单位的值为 1:0、2、5、7 和 10。

如何在 FCL 文件中编码?我相信方法是 COGS?

DEFUZZIFY DFZF
    // what to do here?
END_DEFUZZIFY

当我输入 Sugeno 的术语时,就像我刚才所做的那样,我在 x 轴上从 0 - 10 和在 y 轴上从 0 - 1 得到一个完全填充的正方形,这没有任何意义。

我在谷歌上找不到任何东西,所以我决定在这里寻求帮助。

4

1 回答 1

0

编辑 ::

我找到了解决方案。使用 SUGENO 风格时,需要写:

DEFUZZIFY attribute
    TERM T1 := 0;
    TERM T2 := 2;
    // and so on.
END_DEFUZZIFY
于 2019-06-20T15:30:42.543 回答