Добавьте функцию принадлежности в нечеткую переменную
fisOut = addMF(fisIn,varName)
fisOut = addMF(fisIn,varName,type,parameters)
fisOut = addMF(___,Name,Value)
varOut = addMF(varIn)
varOut = addMF(varIn,type,parameters)
varOut = addMF(___,Name,Value)
добавляет функция принадлежности с заданным типом и параметрами.fisOut
= addMF(fisIn
,varName
,type
,parameters
)
конфигурирует функцию принадлежности с помощью одного или нескольких аргументов пары "имя-значение".fisOut
= addMF(___,Name,Value
)
добавляет функция принадлежности с заданным типом и параметрами.varOut
= addMF(varIn
,type
,parameters
)
задает имя функции принадлежности с помощью аргумента пары "имя-значение" varOut
= addMF(___,Name,Value
)Name
.
Создайте Mamdani нечеткая система и добавьте три входных переменные и одну выходную переменную. В данном примере дайте второй входной переменной и выходной переменной то же имя.
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)
Создайте нечеткую переменную с заданной областью значений.
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: Name Type Parameters 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];
fisIn
— Нечеткая система выводаmamfis
| объект sugfis
Нечеткая система вывода, заданная как объект mamfis
или sugfis
.
varName
Имя переменнойИмя переменной, заданное как строка или вектор символов. Можно задать имя любого переменная ввода или вывода в FIS. Если ваша система имеет входную переменную с тем же именем как выходная переменная, задайте тип переменной, вы хотите добавить функцию принадлежности в использование пары "имя-значение" VariableType
.
ввод
Тип функции принадлежности"trimf"
(значение по умолчанию) | представляет в виде строки | вектор символов | указатель на функциюТип функции принадлежности, заданный как строка или вектор символов, который содержит имя функции в текущей рабочей папке или на пути MATLAB®. Можно также задать указатель на такую функцию. Когда вы задаете type
, необходимо также задать parameters
.
Эта таблица описывает значения, которые можно задать для type
.
Тип функции принадлежности | Описание | Для получения дополнительной информации |
---|---|---|
"gbellmf" | Обобщенная колоколообразная функция принадлежности | gbellmf |
"gaussmf" | Гауссова функция принадлежности | gaussmf |
"gauss2mf" | Гауссова функция принадлежности комбинации | gauss2mf |
"trimf" | Треугольная функция принадлежности | trimf |
"trapmf" | Трапециевидная функция принадлежности | trapmf |
"sigmf" | Сигмовидная функция принадлежности | sigmf |
"dsigmf" | Различие между двумя сигмовидными функциями принадлежности | dsigmf |
"psigmf" | Продукт двух сигмовидных функций принадлежности | psigmf |
"zmf" | Z-образная функция принадлежности | zmf |
"pimf" | Функция принадлежности, имеющая форму пи | pimf |
"smf" | S-образная функция принадлежности | smf |
"constant" | Постоянная функция принадлежности (не поддерживаемый для выходных переменных систем Mamdani или для любых входных переменных) | Что такое Sugeno-тип нечеткий вывод? |
"linear" | Линейная функция принадлежности (не поддерживаемый для выходных переменных систем Mamdani или для любых входных переменных) | |
Строка или вектор символов | Имя пользовательской функции принадлежности в текущей рабочей папке или на пути MATLAB. Пользовательские функции не поддерживаются для выходных переменных систем Sugeno. | Создайте нечеткие системы Используя пользовательские функции |
Указатель на функцию | Обработайте к пользовательской функции принадлежности в текущей рабочей папке или на пути MATLAB. Пользовательские функции не поддерживаются для выходных переменных систем Sugeno. |
параметры
Параметры функции принадлежности[0 0.5 1]
(значение по умолчанию) | векторПараметры функции принадлежности, заданные как вектор. Длина вектора параметра зависит от типа функции принадлежности. Когда вы задаете parameters
, необходимо также задать type
.
varIn
— Fuzzyfisvar
Нечеткая переменная, заданная как объект fisvar
.
Укажите необязательные аргументы в виде пар ""имя, значение"", разделенных запятыми.
Имя (Name) — это имя аргумента, а значение (Value) — соответствующее значение.
Name
должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.
'Name',"large"
указывает, что функция принадлежности называет "large"
Имя
Имя функции принадлежностиИмя функции принадлежности, заданное как пара, разделенная запятой, состоящая из 'Name'
и строки или вектора символов. Именем функции принадлежности по умолчанию является "mf<uniqueIndex>"
, где uniqueIndex
автоматически сгенерирован на основе текущего количества функций принадлежности в связанной переменной.
'VariableType'
— Тип переменной"input"
| "output"
Тип переменной, заданный как пара, разделенная запятой 'VariableType'
и одно из следующего:
входной параметр
Входная переменная
вывод
Выходная переменная
Если ваша система имеет входную переменную с тем же именем как выходная переменная, задайте который переменная добавить функцию принадлежности в VariableType
.
Эта пара "имя-значение" применяется только при добавлении функции принадлежности в объект mamfis
или sugfis
.
fisOut
— Нечеткая система выводаmamfis
| объект sugfis
Нечеткая система вывода, возвращенная как объект mamfis
или sugfis
. fisOut
содержит добавленную функцию принадлежности со всеми другими свойствами, совпадающими со свойствами fisIn
.
varOut
— Fuzzyfisvar
Нечеткая переменная, возвращенная как объект fisvar
. varOut
содержит добавленную функцию принадлежности со всеми другими свойствами, совпадающими со свойствами varIn
.
Поведение изменяется в 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") |
Не рекомендуемый запуск в R2018b
Поддержка представления нечетких систем вывода как структуры будет удалена в будущем релизе. Используйте mamfis
и объекты sugfis
вместо этого. Существуют различия между этими представлениями, которые требуют обновлений вашего кода. Эти различия включают:
Имена свойства объекта, которые отличаются от соответствующих полей структуры.
Объекты хранят текстовые данные как строки, а не как векторы символов.
Кроме того, все функции Fuzzy Logic Toolbox™, которые приняли или возвратили нечеткие системы вывода как структуры теперь, принимают и возвращают или mamfis
или объекты sugfis
.
Чтобы преобразовать существующие нечеткие структуры системы вывода в объекты, используйте функцию convertfis
.
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.