Оцените нечеткую систему вывода
[
возвращается промежуточное звено следует из нечеткого процесса вывода. Этот синтаксис не поддержан когда 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 для каждого входа.
fis
— Нечеткая система выводаmamfis
возразите | sugfis
возразите | mamfistype2
возразите | sugfistype2
возразите | fistree
объектНечеткая система вывода, которая будет оценена, заданная как одно из следующего:
mamfis
объект — Mamdani нечеткая система вывода
sugfis
объект — Sugeno нечеткая система вывода
mamfistype2
объект — Тип 2 Mamdani нечеткая система вывода
sugfistype2
объект — Тип 2 Sugeno нечеткая система вывода
fistree
объект - Дерево взаимосвязанных нечетких систем вывода
Гомогенная структура, созданная с помощью getFISCodeGenerationData
. Для примера смотрите, Генерируют Код для Нечеткой Системы Используя MATLAB Coder.
input
— Входные значенияВходные значения, заданные как M-by-NU массив, где NU является количеством входных переменных в fis
и M является количеством входных комбинаций, чтобы оценить.
evalfis
поддержки входные значения с одинарной точностью или с двойной точностью.
options
— Опции оценкиevalfisOptions
объектОпции оценки, заданные как evalfisOptions
объект.
fuzzifiedIn
— Входные значения FuzzifiedВходные значения 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
объект.
ruleOut
— Управляйте выходными параметрамиУправляйте выходными параметрами, возвращенными как массив. Получить выход для каждого правила, 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
объект.
aggregatedOut
— Aggregated выходАгрегированный выход для каждой выходной переменной, возвращенной как массив.
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
объект.
ruleFiring
— Управляйте сильными местами увольненияУправляйте силой увольнения, возвращенной как вектор-столбец или массив. Получить силу увольнения для каждого правила, 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.
Можно оценить нечеткие системы вывода с помощью блока Fuzzy Logic Controller. Для получения дополнительной информации об отображении аргументов evalfis
с блоком Fuzzy Logic Controller смотрите, Симулируют Нечеткие Системы Вывода в Simulink.
Поведение изменяется в R2018b
Порядок входных параметров для evalfis
изменился, который требует обновлений вашего кода.
Ранее оценивать нечеткую систему вывода, fis
, вы задали значения входной переменной, input
, как первый входной параметр. Например:
output = evalfis(input,fis); output = evalfis(input,fis,options);
Обновите свой код, чтобы задать нечеткую систему вывода как первый входной параметр. Например:
output = evalfis(fis,input); output = evalfis(fis,input,options);
Поведение изменяется в R2018a
Задавать количество точек выборки для выходных нечетких множеств, вы теперь нас evalfisOptions
объект, который требует обновлений вашего кода.
Ранее задавать количество точек выборки, numPts
, использовать когда оценка выходные нечеткие множества нечеткой системы вывода fis
, вы использовали входной параметр. Например:
output = evalfis(input,fis,numPts);
Обновите свой код, чтобы задать количество точек выборки с помощью evalfisOptions
объект. Например:
opt = evalfisOptions('NumSamplePoints',numPts);
output = evalfis(input,fis,opt);
Поведение изменяется в R2018a
Диагностическое поведение сообщения evalfis
функция изменилась. Ранее evalfis
функция имела следующие поведения для диагностических условий.
Диагностическое условие | Предыдущее поведение |
---|---|
Входные значения за пределами их указанных переменных диапазонов | Предупреждение MATLAB® |
Никакие правила, уволенные за данный выход в текущих входных значениях | Сообщение Окна Команды MATLAB |
Пустые выходные нечеткие множества | Сообщение Окна Команды MATLAB |
Начиная в R2018a, об этих диагностических условиях сообщают как предупреждения MATLAB по умолчанию. Можно изменить это поведение путем определения соответствующих опций в evalfisOptions
объект.
Чтобы отключить предупреждающие сообщения по умолчанию, обновите свой код, чтобы использовать evalfisOptions
объект, и задает диагностические опции сообщения. Например, отключите пустое выходное сообщение нечеткого множества.
opt = evalfisOptions('EmptyOutputFuzzySetMessage',"none"); output = evalfis(input,fis,opt);
Поведение изменяется в R2018a
При оценке системы Sugeno с помощью следующего синтаксиса промежуточные нечеткие результаты вывода теперь походят на промежуточные результаты для систем Mamdani.
[output,fuzzifiedInputs,ruleOutputs,aggregatedOutput] = evalfis(input,fis);
Для системы Sugeno:
ruleOutputs
теперь возвращает массив, который содержит скалярное выходное значение для каждого правила; то есть, продукт правила, запускающего силу и уровень на выходе правила.
aggregatedOutput
теперь возвращает сумму всех выходных значений правила для каждой выходной переменной.
Ранее для Sugeno нечеткая система:
ruleOutputs
возвращенный массив, который содержал уровень на выходе для каждого правила.
aggregatedOutput
возвращенный массив, который содержал силу увольнения для каждого правила.
Запуск в R2018a, если код возвращает промежуточные нечеткие результаты вывода при оценке системы Sugeno с помощью evalfis
, измените свой код, чтобы использовать новый ruleOutputs
и aggregatedOutput
результаты.
Указания и ограничения по применению:
Весь evalfis
синтаксисы поддерживаются для генерации кода. Однако mamfis
, sugfis
, и fistree
объекты не поддержаны. Использовать evalfis
для генерации кода необходимо преобразовать объекты FIS в гомогенные структуры с помощью getFISCodeGenerationData
.
В отличие от блока Fuzzy Logic Controller, evalfis
не поддерживает данные фиксированной точки для симуляции или генерации кода.
При оценке нечеткой системы вывода в Simulink® рекомендуется не использовать evalfis
или evalfisOptions
в блоке MATLAB Function. Вместо этого оцените свою нечеткую систему вывода с помощью блока Fuzzy Logic Controller.
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.