Нечеткая логика / Нечеткий вывод |
в палитре | на схеме |
Блок предназначен для вычисления значения нечеткого вывода по вектору, состоящему из результатов расчета степени истинности для правил нечеткого вывода. Блок осуществляет аккумуляцию всех правил в единую функцию и дефазификацию выходной переменной в конечное значение. В качестве функции принадлежности термов выходной лингвистической переменной используются треугольные функции, параметры которых задаёт пользователь.
Выходная величина рассчитывается в зависимости от заданных параметров по алгоритму Мамдани:
где:Y - значение выходной переменной, результат нечеткого вывода.
MaxX, MinX - границы диапазона для расчета выходной переменной;
M(x) = max{μ'1(x), μ'2(x) ... μ'N_term} – общая функция принадлежности выходной переменной по всем термам с учетом результатов активизации правил μ'i(x);
μ'i(x) – результат активизации под-заключения из правила нечёткого вывода для i-го терма выходной переменной;
min-активация
prod-активизация
average-активизация
μ(x) – функция принадлежности терма выходной переменной (определяется величинами a, b, c из параметров блока);
k - степень истинности для правила нечеткого вывода (значение из входного вектора).
Функции принадлежности рассчитываются по следующей формуле:
где:Y – значение функции принадлежности i-го терма в выходном векторе;
X – значение входной величины;
C, sigma – параметры функций, задаваемые Пользователем.
Функции принадлежности термов выходной переменной описываются следующей схемой:
При включенной анимации на блоке отображается вид результата аккумуляции правил (синяя фигура) и значение выходной величины (красная линия).