Добавьте функцию принадлежности в нечеткую переменную
добавляет функция принадлежности с заданным типом и параметрами.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
аргумент пары "имя-значение".
Создайте 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)
Создайте тип 2 Sugeno нечеткая система и добавьте две входных переменные и одну выходную переменную.
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
объект — Тип 2 Mamdani нечеткая система вывода
sugfistype2
объект — Тип 2 Sugeno нечеткая система вывода
varName
— Имя переменнойИмя переменной, заданное как строка или вектор символов. Можно задать имя любого переменная ввода или вывода в FIS. Если ваша система имеет входную переменную с тем же именем как выходная переменная, задайте тип переменной, вы хотите добавить функцию принадлежности в использование VariableType
пара "имя-значение".
type
— Тип функции принадлежности"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. |
parameters
— Параметры функции принадлежности
(значение по умолчанию) | векторПараметры функции принадлежности, заданные как вектор. Длина вектора параметра зависит от типа функции принадлежности. Когда вы задаете parameters
, необходимо также задать type
.
Когда fisIn
тип 1 FIS или varIn
содержит функции принадлежности типа 1, parameters
устанавливает Parameters
свойство добавленной функции принадлежности.
Когда fisIn
тип 2 FIS или varIn
содержит функции принадлежности типа 2, parameters
устанавливает UpperParameters
свойство добавленной функции принадлежности.
varIn
— Нечеткая переменнаяfisvar
объектНечеткая переменная, заданная как 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
Более низкий масштабный коэффициент функции принадлежности для функций принадлежности типа 2, заданных как положительная скалярная величина, меньше чем или равная 1
. Используйте LowerScale
задавать максимальное значение более низкой функции принадлежности.
В зависимости от значения LowerLag
, фактическое максимальное более низкое значение функции принадлежности может быть меньше LowerScale
.
Эта пара "имя-значение" применяется только при добавлении функций принадлежности типа 2.
'LowerLag'
— Более низкая величина задержки функции принадлежности
(значение по умолчанию) | скалярное значение между 0
и 1
| вектор длины 2Более низкая величина задержки функции принадлежности для функций принадлежности типа 2, заданных как скалярное значение или вектор длины два. Можно задать значения задержки между 0
и 1
, включительно.
Эта пара "имя-значение" применяется только при добавлении функций принадлежности типа 2.
Следующие типы функции принадлежности поддерживают только скалярный LowerLag
значение:
Симметричный MFS — gaussmf
и gbellmf
Односторонний MFS — sigmf
, smf
, и zmf
Все другие встроенные функции принадлежности поддерживают или скалярный или векторный LowerLag
значение. Для этих функций принадлежности, когда вы задаете a:
Скалярное значение, то же значение задержки используется в обоих левая и правая сторона функции принадлежности.
Векторное значение, можно задать различные значения задержки для левых и правых сторон функции принадлежности.
Значение задержки задает точку, в которой более низкое значение функции принадлежности начинает увеличиваться с нуля на основе значения верхней функции принадлежности. Например, значение задержки 0.1
указывает, что более низкая функция принадлежности становится положительной, когда верхняя функция принадлежности имеет значение членства 0.1
.
Когда значение задержки является нулем, более низкая функция принадлежности начинает увеличиваться в той же точке как верхняя функция принадлежности.
Некоторые типы функции принадлежности ограничивают максимальное значение задержки. Например, LowerLag
должен быть меньше 1
для gaussmf
, gauss2mf
, gbellmf
, sigmf
, dsigmf
, и psigmf
функции принадлежности.
fisOut
— Нечеткая система выводаmamfis
возразите | sugfis
возразите | mamfistype2
возразите | sugfistype2
объектНечеткая система вывода, заданная как одно из следующего:
mamfis
объект — Mamdani нечеткая система вывода
sugfis
объект — Sugeno нечеткая система вывода
mamfistype2
объект — Тип 2 Mamdani нечеткая система вывода
sugfistype2
объект — Тип 2 Sugeno нечеткая система вывода
fisOut
содержит добавленную функцию принадлежности, со всеми другими свойствами, совпадающими со свойствами fisIn
fisOut
содержит добавленную функцию принадлежности, со всеми другими свойствами, совпадающими со свойствами fisIn
varOut
— Нечеткая переменнаяfisvar
объектНечеткая переменная, возвращенная как 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") |
Предупреждает запуск в R2019b
Поддержка представления нечетких систем вывода как структуры будет удалена в будущем релизе. Используйте mamfis
и sugfis
объекты вместо этого. Существуют различия между этими представлениями, которые требуют обновлений вашего кода. Эти различия включают:
Имена свойства объекта, которые отличаются от соответствующих полей структуры.
Объекты хранят текстовые данные как строки, а не как векторы символов.
Кроме того, все функции Fuzzy Logic Toolbox™, которые приняли или возвратили нечеткие системы вывода как структуры теперь, принимают и возвращают любой mamfis
или sugfis
объекты.
Чтобы преобразовать существующие нечеткие структуры системы вывода в объекты, используйте convertfis
функция.
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.