evalfis

Оцените нечеткую систему вывода

Описание

пример

output = evalfis(fis,input) оценивает нечеткую систему вывода fis для входных значений в input и возвращает получившиеся выходные значения в output.

пример

output = evalfis(fis,input,options) оценивает нечеткую систему вывода с помощью заданных опций оценки.

пример

[output,fuzzifiedIn,ruleOut,aggregatedOut,ruleFiring] = evalfis(___) возвращается промежуточное звено следует из нечеткого процесса вывода. Этот синтаксис не поддержан когда fis fistree объект.

Примеры

свернуть все

Загрузите FIS.

fis = readfis('tipper');

Оцените FIS, когда первым входом будет 2 и вторым входом является 1.

output = evalfis(fis,[2 1])
output = 7.0169

Загрузите FIS.

fis = readfis('tipper');

Задайте входные комбинации, чтобы оценить использование массива с одной строкой на входную комбинацию.

input = [2 1;
         4 5;
         7 8];

Оцените FIS для заданных входных комбинаций.

output = evalfis(fis,input)
output = 3×1

    7.0169
   14.4585
   20.3414

Каждая строка output defuzzified выходное значение для соответствующей строки input.

Загрузите FIS.

fis = readfis('tipper');

Создайте evalfisOptions набор опции, задавая количество выборок в выходных нечетких множествах.

options = evalfisOptions('NumSamplePoints',50);

Оцените FIS, использующий этот набор опции.

output = evalfis(fis,[2 1],options);

Создайте пару Mamdani нечеткие системы вывода.

fis1 = mamfis('Name','fis1','NumInputs',2,'NumOutputs',1);
fis2 = mamfis('Name','fis2','NumInputs',2,'NumOutputs',1);

Задайте связь между двумя.

con = ["fis1/output1" "fis2/input1"];

Создайте дерево нечетких систем вывода.

tree = fistree([fis1 fis2],con);

Создайте evalfisOptions набор опции, задавая количество выборок в выходных нечетких множествах.

options = evalfisOptions('NumSamplePoints',50);

Оцените fistree объект с помощью заданной входной комбинации и этой опции установлен.

y = evalfis(tree,[0.5 0.2 0.7],options)
y = 0.1553

Загрузите FIS.

fis = readfis('tipper');

Оцените FIS и возвратите промежуточные результаты вывода.

[output,fuzzifiedIn,ruleOut,aggregatedOut,ruleFiring] = evalfis(fis,[2 1]);

Можно исследовать промежуточные результаты изучить или визуализировать нечеткий процесс вывода. Например, просмотрите агрегированное выходное нечеткое множество, которое является нечетким множеством что evalfis defuzzifies, чтобы найти выходное значение. Кроме того, постройте defuzzified выходное значение.

outputRange = linspace(fis.output.range(1),fis.output.range(2),length(aggregatedOut))'; 
plot(outputRange,aggregatedOut,[output output],[0 1])
xlabel('Tip')
ylabel('Output Membership')
legend('Aggregated output fuzzy set','Defuzzified output')

Длина aggregatedOutput соответствует количеству точек выборки, используемых, чтобы дискретизировать выходные нечеткие множества.

Создайте тип 2 Mamdani нечеткая система вывода.

fis = mamfistype2('NumInputs',2,'NumOutputs',1);

Оцените FIS, когда первым входом будет 0.4 и вторым входом является 0.72.

output = evalfis(fis,[0.4 0.72])
output = 0.1509

Выход типа 2 FIS является четким значением.

Когда вы получаете промежуточные нечеткие результаты вывода для типа 2 FIS, вы получаете промежуточные результаты, сгенерированные с помощью и верхних и более низких значений MF. Например, получите промежуточное звено fuzzified входные значения.

[output,fuzzifiedInput] = evalfis(fis,[0.5 0.75]);

Просмотрите fuzzified входные значения.

fuzzifiedInput
fuzzifiedInput = 9×4

         0         0         0         0
    1.0000         0    1.0000         0
         0         0         0         0
         0    0.4000         0    0.2500
    1.0000    0.4000    1.0000    0.2500
         0    0.4000         0    0.2500
         0    0.4000         0    0.2500
    1.0000    0.4000    1.0000    0.2500
         0    0.4000         0    0.2500

Первые два столбца содержат fuzzified значения первых и вторых входных параметров на основе верхнего MF для каждого входа. Вторые два столбца содержат fuzzified значения для на основе более низкого MF для каждого входа.

Входные параметры

свернуть все

Нечеткая система вывода, которая будет оценена, заданная как одно из следующего:

Входные значения, заданные как M-by-NU массив, где NU является количеством входных переменных в fis и M является количеством входных комбинаций, чтобы оценить.

evalfis поддержки входные значения с одинарной точностью или с двойной точностью.

Опции оценки, заданные как evalfisOptions объект.

Выходные аргументы

свернуть все

Выходные значения, возвращенные как M-by-NY массив, где NY является количеством выходных переменных в fis. evalfis оценивает fis для каждой строки input и возвращает получившиеся defuzzified выходные параметры в соответствующей строке output.

Входные значения Fuzzified, возвращенные как массив.

Когда fis тип 1 нечеткая система вывода, fuzzifiedIn NR-by-NU массив, где NR является количеством правил в fis. Элемент (i, j) fuzzifiedIn значение входной функции принадлежности для j th вход в i th правило.

Когда fis тип 2 нечеткая система вывода, fuzzifiedIn NR (2*NU) массив. Первые столбцы NU содержат fuzzified значения верхней функции принадлежности для каждого правила, и последние столбцы NU содержат fuzzified значения от более низких функций принадлежности.

Если input задает несколько входных комбинаций, затем fuzzifiedIn соответствует комбинации в последней строке input.

Для получения дополнительной информации о fuzzifying входных значениях см. Входные параметры Fuzzify.

Этот выходной аргумент не поддержан когда fis fistree объект.

Управляйте выходными параметрами, возвращенными как массив. Получить выход для каждого правила, evalfis применяет силу увольнения от антецедента правила до выходной функции принадлежности с помощью метода значения, заданного в fis.

Когда fis тип 1 система Mamdani, ruleOut NS (NR NY) массив, где NR является количеством правил, NY является количеством выходных параметров, и NS является количеством точек выборки, используемых в оценке областей значений выходной переменной. Каждый столбец ruleOut содержит выходное нечеткое множество для одного правила. Первые столбцы NR содержат правило выходные параметры для первой выходной переменной, следующие столбцы NR соответствуют второй выходной переменной и так далее.

Когда fis тип 2 система Mamdani, ruleOut NS (2*NR*NY) массив. Первый NR *NY столбцы содержит правило выходные параметры, сгенерированные с помощью верхних функций принадлежности, и последний NR *NY столбцы содержит правило выходные параметры, сгенерированные с помощью более низких функций принадлежности.

Когда fis тип 1 система Sugeno, каждое правило, выход является скалярным значением. В этом случае, ruleOut NR-by-NY массив. Элемент (j, k) ruleOut значение k th выходная переменная для j th правило.

Когда fis тип 2 система Sugeno, ruleOut NR (3*NY) массив. Первые столбцы NY содержат уровни на выходе правила. Следующие столбцы NY содержат соответствующее правило, запускающее сильные места, сгенерированные с помощью верхних функций принадлежности. Последние столбцы NY содержат правило, запускающее сильные места, сгенерированные с помощью более низких функций принадлежности. Например, в системе с тремя выходами, столбцы 4 и 7 содержат сильные места увольнения для уровней на выходе в столбце 1.

Если input задает несколько входных комбинаций, затем ruleOut соответствует комбинации в последней строке input.

Для получения дополнительной информации о нечетком значении смотрите, Применяют Метод Значения.

Этот выходной аргумент не поддержан когда fis fistree объект.

Агрегированный выход для каждой выходной переменной, возвращенной как массив.

NS-by-NY массив или вектор-строка из длины NY. Для каждой выходной переменной, evalfis комбинирует соответствующие выходные параметры от всех правил с помощью метода агрегации, заданного в fis.

Для типа 1 система Mamdani итоговым результатом для каждой выходной переменной является нечеткое множество. В этом случае, aggregatedOut как NS-by-NY массив, где NY является количеством выходных параметров, и NS является количеством точек выборки, используемых в оценке областей значений выходной переменной. Каждый столбец aggregatedOut содержит совокупное нечеткое множество для одной выходной переменной.

Для типа 2 система Mamdani итоговым результатом для каждой выходной переменной является нечеткое множество. В этом случае, aggregatedOut как NS (2*NY) массив. Первые столбцы NY содержат агрегированные выходные параметры, сгенерированные с помощью верхних функций принадлежности, и последние столбцы NY содержат агрегированные выходные параметры, сгенерированные с помощью более низких функций принадлежности.

Когда fis тип 1 система Sugeno, итоговым результатом для каждой выходной переменной является скалярное значение. В этом случае, aggregatedOut вектор-строка из длины NY, где элемент k является суммой правила выходные параметры для k th выходная переменная.

Когда fis тип 2 система Sugeno, aggregatedOut NR (3*NY) массив. aggregatedOut содержит те же данные как ruleOut со столбцами, отсортированными на основе уровней на выходе. Например, в системе с тремя выходами, когда уровни на выходе в столбце 1 сортируются, соответствующие сильные места увольнения в столбцах 4 и 7 настроены соответственно.

Если input задает несколько входных комбинаций, затем aggregatedOut соответствует комбинации в последней строке input.

Для получения дополнительной информации о нечеткой агрегации смотрите Агрегат Все Выходные параметры.

Этот выходной аргумент не поддержан когда fis fistree объект.

Управляйте силой увольнения, возвращенной как вектор-столбец или массив. Получить силу увольнения для каждого правила, evalfis оценивает антецеденты правила; то есть, это применяет нечеткий оператор к значениям входных параметров fuzzified.

Для типа 1 нечеткая система, ruleFiring вектор-столбец длины NR, где NR является количеством правил и элементом, i является силой увольнения i th правило.

Для типа 2 нечеткая система, ruleFiring NR-by-2 массив. Первый столбец содержит правило, запускающее сильные места, сгенерированные с помощью верхних функций принадлежности, и второй столбец содержит правило, запускающее сильные места, сгенерированные с помощью более низких функций принадлежности.

Если input задает несколько входных комбинаций, затем ruleFiring соответствует комбинации в последней строке input.

Для получения дополнительной информации о применении нечеткого оператора смотрите, Применяют Нечеткий Оператор.

Этот выходной аргумент не поддержан когда fis fistree объект.

Альтернативная функциональность

Приложение

Можно оценить тип 1 нечеткие системы вывода с помощью Rule Viewer в приложении Fuzzy Logic Designer.

Блок Simulink

Можно оценить нечеткие системы вывода с помощью блока Fuzzy Logic Controller. Для получения дополнительной информации об отображении аргументов evalfis с блоком Fuzzy Logic Controller смотрите, Симулируют Нечеткие Системы Вывода в Simulink.

Вопросы совместимости

развернуть все

Поведение изменяется в R2018b

Поведение изменяется в R2018a

Поведение изменяется в R2018a

Поведение изменяется в R2018a

Расширенные возможности

Представлено до R2006a