addMF

Добавьте функцию принадлежности в нечеткую переменную

Синтаксис

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) добавляет функция принадлежности по умолчанию в переменную varName ввода или вывода в нечеткой системе вывода fisIn и возвращает получившуюся нечеткую систему в fisOut.

пример

fisOut = addMF(fisIn,varName,type,parameters) добавляет функция принадлежности с заданным типом и параметрами.

пример

fisOut = addMF(___,Name,Value) конфигурирует функцию принадлежности с помощью одного или нескольких аргументов пары "имя-значение".

пример

varOut = addMF(varIn) добавляет функция принадлежности по умолчанию к нечеткой переменной varIn и возвращает получившуюся нечеткую переменную в varOut.

пример

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];

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

свернуть все

Нечеткая система вывода, заданная как объект mamfis или sugfis.

Имя переменной, заданное как строка или вектор символов. Можно задать имя любого переменная ввода или вывода в FIS. Если ваша система имеет входную переменную с тем же именем как выходная переменная, задайте тип переменной, вы хотите добавить функцию принадлежности в использование пары "имя-значение" VariableType.

Тип функции принадлежности, заданный как строка или вектор символов, который содержит имя функции в текущей рабочей папке или на пути 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, необходимо также задать type.

Нечеткая переменная, заданная как объект fisvar.

Аргументы в виде пар имя-значение

Укажите необязательные аргументы в виде пар ""имя, значение"", разделенных запятыми. Имя (Name) — это имя аргумента, а значение (Value) — соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Пример: 'Name',"large" указывает, что функция принадлежности называет "large"

Имя функции принадлежности, заданное как пара, разделенная запятой, состоящая из 'Name' и строки или вектора символов. Именем функции принадлежности по умолчанию является "mf<uniqueIndex>", где uniqueIndex автоматически сгенерирован на основе текущего количества функций принадлежности в связанной переменной.

Тип переменной, заданный как пара, разделенная запятой 'VariableType' и одно из следующего:

  • входной параметр Входная переменная

  • вывод Выходная переменная

Если ваша система имеет входную переменную с тем же именем как выходная переменная, задайте который переменная добавить функцию принадлежности в VariableType.

Эта пара "имя-значение" применяется только при добавлении функции принадлежности в объект mamfis или sugfis.

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

свернуть все

Нечеткая система вывода, возвращенная как объект mamfis или sugfis. fisOut содержит добавленную функцию принадлежности со всеми другими свойствами, совпадающими со свойствами fisIn.

Нечеткая переменная, возвращенная как объект fisvar. varOut содержит добавленную функцию принадлежности со всеми другими свойствами, совпадающими со свойствами varIn.

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

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

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

Не рекомендуемый запуск в R2018b

Введенный в R2018b