Добавьте функцию принадлежности к нечеткой переменной
добавляет функцию принадлежности с заданными типом и параметрами.fisOut = addMF(fisIn,varName,type,parameters)
настраивает функцию принадлежности с помощью одного или нескольких аргументов пары "имя-значение".fisOut = addMF(___,Name,Value)
добавляет функцию принадлежности по умолчанию к нечеткой переменной varOut = addMF(varIn)varIn и возвращает полученную нечеткую переменную в varOut.
Если varIn не содержит никаких функций членства, этот синтаксис добавляет функцию членства типа 1 по умолчанию. В противном случае тип добавленной функции членства совпадает с типом существующих функций членства в varIn.
добавляет функцию принадлежности с заданными типом и параметрами.varOut = addMF(varIn,type,parameters)
задает имя функции членства, использующей varOut = addMF(___,Name,Value)Name аргумент пары "имя-значение".
Чтобы добавить функцию принадлежности типа 2 к нечеткой переменной без существующих функций принадлежности, необходимо задать LowerLag или LowerScale аргумент пары "имя-значение".
Создайте нечеткую систему Мамдани и добавьте три входные переменные и одну выходную переменную. В данном примере присвойте второй входной переменной и выходной переменной то же имя.
fis = mamfis; fis = addInput(fis,[0 80],"Name","speed"); fis = addInput(fis,[0 100],"Name","throttle"); fis = addInput(fis,[0 10],"Name","distance"); fis = addOutput(fis,[0 100],"Name","throttle");
Добавьте функцию принадлежности к первой входной переменной, задав трапециевидную функцию принадлежности и установите параметры функции принадлежности.
fis = addMF(fis,"speed","trapmf",[-5 0 10 30]);
Вы также можете задать имя вашего участника при добавлении его в нечеткую систему. Добавьте функцию членства, называемую "high" к первой входной переменной.
fis = addMF(fis,"speed","trapmf",[50 70 80 85],'Name',"high");
Просмотрите функции принадлежности для первой входной переменной.
plotmf(fis,"input",1)
Если ваша система имеет переменный вход с таким же именем, что и переменный выход, необходимо задать тип переменной при добавлении функции принадлежности. Для примера добавьте функцию принадлежности к переменному выходу.
fis = addMF(fis,"throttle","trimf",[0 20 40],'VariableType',"output"); plotmf(fis,"output",1)

Также можно добавить функцию принадлежности по умолчанию к нечеткой системе и задать ее параметры с помощью записи через точку. Для примера добавьте и сконфигурируйте функцию принадлежности для переменной третьего входа.
fis = addMF(fis,"distance"); fis.Inputs(3).MembershipFunctions(1).Type = "trapmf"; fis.Inputs(3).MembershipFunctions(1).Parameters = [-1 0 2 4]; plotmf(fis,"input",3)

Создайте систему Sugeno 2 нечеткой и добавьте две входные переменные и одну выходную переменную.
fis = sugfistype2; fis = addInput(fis,[0 80],"Name","speed"); fis = addInput(fis,[0 10],"Name","distance"); fis = addOutput(fis,[0 100],"Name","braking");
Добавьте функцию принадлежности к первой входной переменной, задав трапециевидную функцию принадлежности и установите параметры функции принадлежности. Эта функция принадлежности 2 типа использует по умолчанию более низкую задержку функции принадлежности и параметры шкалы.
fis = addMF(fis,"speed","trapmf",[-5 0 10 30]);
Можно также задать строение нижнего MF при добавлении функции принадлежности типа 2.
fis = addMF(fis,"speed","trapmf",[10 30 50 70],'LowerScale',0.8,'LowerLag',0.1);
Вы также можете задать имя функции членства при ее добавлении в нечеткую систему. Добавьте функцию членства, называемую "high" к первой входной переменной.
fis = addMF(fis,"speed","trapmf",[50 70 80 85],'Name',"high");
Просмотрите функции принадлежности для первой входной переменной.
plotmf(fis,"input",1)
Создайте нечеткую переменную с заданной областью.
var = fisvar([0 1]);
Добавьте функцию принадлежности к переменной, задав трапециевидную функцию принадлежности и установите параметры функции принадлежности.
var = addMF(var,"trapmf",[-0.5 0 0.2 0.4]);Можно также задать имя членства при добавлении его к нечеткой переменной. Например, добавьте функцию принадлежности, называемую "large".
var = addMF(var,"trapmf",[0.6 0.8 1 1.5],'Name',"large");
Просмотрите функции членства.
var.MembershipFunctions
ans =
1x2 fismf array with properties:
Type
Parameters
Name
Details:
Name Type Parameters
_______ ________ ____________________________
1 "mf1" "trapmf" -0.5 0 0.2 0.4
2 "large" "trapmf" 0.6 0.8 1 1.5
Также можно добавить функцию принадлежности по умолчанию к нечеткой переменной и задать ее параметры с помощью записи через точку.
var = fisvar([0 1]);
var = addMF(var);
var.MembershipFunctions(1).Type = "trapmf";
var.MembershipFunctions(1).Parameters = [-0.5 0 0.2 0.4];Создайте нечеткую переменную с заданной областью. По умолчанию эта переменная не имеет функций принадлежности.
var = fisvar([0 9]);
Чтобы добавить функцию принадлежности типа 2 к переменной, не имеющей функций членства, задайте LowerLag или LowerScale значение функции членства. Для примера задайте более низкое значение шкалы.
var = addMF(var,"trimf",[0 3 6],'LowerScale',1);
Если переменная содержит функцию членства типа 2, можно добавить дополнительные функции членства типа 2, не задавая один из этих параметров.
var = addMF(var,"trimf",[3 6 9]);Просмотрите функции членства.
var.MembershipFunctions
ans =
1x2 fismftype2 array with properties:
Type
UpperParameters
LowerScale
LowerLag
Name
Details:
Name Type Upper Parameters Lower Scale Lower Lag
_____ _______ ________________ ___________ __________
1 "mf1" "trimf" 0 3 6 1 0.2 0.2
2 "mf2" "trimf" 3 6 9 1 0.2 0.2
fisIn - Система нечеткого выводаmamfis | объекта sugfis | объекта mamfistype2 | объекта sugfistype2 объектСистема нечеткого вывода, заданная как одно из следующего:
mamfis объект - система нечеткого вывода Mamdani
sugfis объект - система нечеткого вывода Sugeno
mamfistype2 объект - Type-2 системы нечеткого вывода Мамдани
sugfistype2 объект - Type-2 системы нечеткого вывода Sugeno
varName - Имя переменнойИмя переменной, заданное как строковый или символьный вектор. Имя входной или выходной переменной можно задать в FIS. Если ваша система имеет переменный вход с таким же именем, что и переменный выход, укажите тип переменной, к которой вы хотите добавить функцию принадлежности, используя VariableType Пара "имя-значение".
type - Тип функции принадлежности"trimf" (по умолчанию) | строку | вектор символов | указатель на функциюТип функции принадлежности, заданный как строковый или символьный вектор, содержащий имя функции в текущей рабочей папке или в MATLAB® путь. Можно также задать указатель на такую функцию. Когда вы задаете type, вы также должны задать parameters.
В этой таблице описываются значения, которые можно задать для type.
| Тип функции принадлежности | Описание | Для получения дополнительной информации |
|---|---|---|
"gbellmf" | Обобщенная функция принадлежности в форме колокола | gbellmf |
"gaussmf" | Функция Гауссова членства | gaussmf |
"gauss2mf" | Комбинация Гауссов | gauss2mf |
"trimf" | Треугольная функция принадлежности | trimf |
"trapmf" | Функция трапеций членства | trapmf |
"sigmf" | Функция Sigmoidal принадлежности | sigmf |
"dsigmf" | Различие между двумя сигмоидальными функциями принадлежности | dsigmf |
"psigmf" | Продукт двух сигмоидальных функций принадлежности | psigmf |
"zmf" | Z-образная функция принадлежности | zmf |
"pimf" | Функция Pi-образного членства | pimf |
"smf" | S-образная функция принадлежности | smf |
"constant" | Функция постоянного членства (не поддерживается для выходных переменных систем Мамдани или для каких-либо входных переменных) | Системы нечеткого вывода Sugeno |
"linear" | Линейная функция принадлежности (не поддерживается для выходных переменных систем Мамдани или для каких-либо входных переменных) | |
| Строка или вектор символов | Имя пользовательской функции членства в текущей рабочей папке или в пути MATLAB. Пользовательские функции не поддерживаются для выходных переменных систем Sugeno. | Создайте нечеткие системы с помощью пользовательских функций |
| Указатель на функцию | Указатель на пользовательскую функцию членства в текущей рабочей папке или в пути MATLAB. Пользовательские функции не поддерживаются для выходных переменных систем Sugeno. |
parameters - Параметры функции принадлежности[0 0.5 1] (по умолчанию) | векторПараметры функции принадлежности, заданные как вектор. Длина вектора параметра зависит от типа функции принадлежности. Когда вы задаете parameters, вы также должны задать type.
Когда fisIn является FIS или varIn типа 1 содержит функции членства типа 1, parameters устанавливает Parameters свойство добавленной функции членства.
Когда fisIn является FIS или varIn типа 2 содержит функции членства 2 типа, parameters устанавливает UpperParameters свойство добавленной функции членства.
varIn - Нечеткая переменнаяfisvar объектНечеткая переменная, заданная как a fisvar объект.
Задайте необязательные разделенные разделенными запятой парами Name,Value аргументы. Name - имя аргумента и Value - соответствующее значение. Name должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN.
'Name',"large" задает имя функции членства "large"'Name' - Имя функции принадлежностиИмя функции принадлежности, заданное как разделенная разделенными запятой парами, состоящая из 'Name' и строка или вектор символов. Имя функции принадлежности по умолчанию "mf<uniqueIndex>", где uniqueIndex автоматически генерируется на основе текущего количества функций членства в связанной переменной.
'VariableType' - Тип переменной"input" | "output"Тип переменной, заданный как разделенная разделенными запятой парами 'VariableType' и одно из следующих:
"input" - Входная переменная
"output" - Выходная переменная
Если ваша система имеет переменный вход с таким же именем, что и переменный выход, задайте, к какой переменной добавить функцию принадлежности VariableType.
Эта пара "имя-значение" не применяется при добавлении при добавлении функции принадлежности к fisvar объект.
'LowerScale' - Более низкий коэффициент масштабирования функции принадлежности1 (по умолчанию) | положительная скалярная величина меньше или равен 1Более низкий коэффициент масштабирования функции членства для функций типа 2, заданный как положительная скалярная величина, меньше или равная 1. Использование LowerScale для определения максимального значения функции более низкого уровня.
В зависимости от значения LowerLagфактическое максимальное более низкое значение функции членства может быть меньше LowerScale.
Эта пара "имя-значение" применяется только при добавлении функций принадлежности типа 2.
'LowerLag' - Более низкий коэффициент задержки функции принадлежности[0.2 0.2] (по умолчанию) | скалярное значение между 0 и 1 | вектор длины 2Более низкий коэффициент задержки функции принадлежности для функций типа 2, заданный как скалярное значение или вектор длины два. Можно задать запаздывающие значения между 0 и 1, включительно.
Эта пара "имя-значение" применяется только при добавлении функций принадлежности типа 2.
Следующие типы функций принадлежности поддерживают только скаляр LowerLag значение:
Симметричные MF - gaussmf и gbellmf
Односторонние MF - sigmf, smf, и zmf
Все другие встроенные функции принадлежности поддерживают скаляр или вектор LowerLag значение. Для этих функций членства, когда вы задаете:
Скалярное значение, то же значение задержки используется как для левой, так и для правой стороны функции принадлежности.
Векторное значение, можно задать различные значения задержки для левой и правой сторон функции принадлежности.
Значение задержки определяет точку, в которой нижнее значение функции принадлежности начинает увеличиваться с нуля на основе значения верхней функции принадлежности. Для примера значение задержки 0.1 указывает, что нижняя функция членства становится положительной, когда верхняя функция членства имеет значение принадлежности 0.1.
Когда значение задержки меньше нуля, функция нижнего уровня начинает увеличиваться в той же точке, что и функция верхнего уровня.
Некоторые типы функций принадлежности ограничивают максимальное значение задержки. Для примера, LowerLag должно быть меньше 1 для gaussmf, gauss2mf, gbellmf, sigmf, dsigmf, и psigmf функции членства.
fisOut - Система нечеткого выводаmamfis | объекта sugfis | объекта mamfistype2 | объекта sugfistype2 объектСистема нечеткого вывода, заданная как одно из следующего:
mamfis объект - система нечеткого вывода Mamdani
sugfis объект - система нечеткого вывода Sugeno
mamfistype2 объект - Type-2 системы нечеткого вывода Мамдани
sugfistype2 объект - Type-2 системы нечеткого вывода Sugeno
fisOut содержит добавленную функцию принадлежности со всеми другими свойствами, соответствующими свойствам fisInfisOut содержит добавленную функцию принадлежности со всеми другими свойствами, соответствующими свойствам fisIn
varOut - Нечеткая переменнаяfisvar объектНечеткая переменная, возвращенная как a fisvar объект. varOut содержит добавленную функцию принадлежности со всеми другими свойствами, соответствующими свойствам varIn.
addmf сейчас addMF и синтаксис его функции изменилсяПоведение изменено в R2018b
Имя и поведение addmf функция изменилась. Сейчас:
addmf является addMF
Вы задаете переменную, к которой вы хотите добавить функцию принадлежности по имени, а не по индексу.
Имя функции принадлежности задается с помощью аргумента пары "имя-значение".
Эти изменения требуют обновления вашего кода.
В следующей таблице показаны некоторые типичные виды использования addmf для добавления функций принадлежности к нечетким переменным и как обновить код. В этой таблице fis является системой нечеткого вывода с двумя входами, service и food, и один выход, tip.
| Если ваш код имеет эту форму: | Вместо этого используйте этот код: |
|---|---|
fis = addmf(fis'input',1,...
'poor',...
'gaussmf',[1.5 0]) |
fis = addMF(fis,"service",...
"gaussmf",[1.5 0],
'Name',"poor") |
fis = addmf(fis,'input',2,...
'rancid',...
'trapmf',[-2 0 1 3]) |
fis = addMF(fis,"food",...
"trapmf",[-2 0 1 3],...
'Name',"rancid") |
fis = addmf(fis,'output',1,...
'cheap',...
'trimf',[0 5 10]) |
fis = addMF(fis,"tip",...
"trimf",[0 5 10],...
'Name',"cheap") |
Предупреждает, начиная с R2019b
Поддержка представления систем нечеткого вывода в качестве структур будет удалена в следующем релизе. Использовать mamfis и sugfis вместо этого объекты. Существуют различия между этими представлениями, которые требуют обновления вашего кода. Эти различия включают:
Имена свойства объектов, которые отличаются от соответствующих полей структуры.
Объекты хранят текстовые данные как строки, а не как векторы символов.
Кроме того, все функции Fuzzy Logic Toolbox™, которые приняли или вернули системы нечеткого вывода, поскольку структуры теперь принимают и возвращают либо mamfis или sugfis объекты.
Чтобы преобразовать существующие структуры системы нечеткого вывода в объекты, используйте convertfis функция.
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.