addMF

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

Описание

пример

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

пример

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)

Figure contains an axes object. The axes object contains 4 objects of type line, text.

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

fis = addMF(fis,"throttle","trimf",[0 20 40],'VariableType',"output");
plotmf(fis,"output",1)

Figure contains an axes object. The axes object contains 2 objects of type line, text.

В качестве альтернативы можно добавить функцию принадлежности по умолчанию в нечеткую систему и установить ее параметры с помощью записи через точку. Например, добавьте и сконфигурируйте функцию принадлежности для третьей входной переменной.

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)

Figure contains an axes object. The axes object contains 2 objects of type line, text.

Создайте тип 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)

Figure contains an axes object. The axes object with title Footprint of uncertainty (FOU) contains 12 objects of type line, patch, text. These objects represent UpperMF, LowerMF, FOU.

Создайте нечеткую переменную с заданной областью.

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

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

свернуть все

Нечеткая система вывода в виде одного из следующего:

  • mamfis объект — Mamdani нечеткая система вывода

  • sugfis объект — Sugeno нечеткая система вывода

  • mamfistype2 объект — Тип 2 Mamdani нечеткая система вывода

  • sugfistype2 объект — Тип 2 Sugeno нечеткая система вывода

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

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

Когда fisIn тип 1 FIS или varIn содержит функции принадлежности типа 1, parameters устанавливает Parameters свойство добавленной функции принадлежности.

Когда fisIn тип 2 FIS или varIn содержит функции принадлежности типа 2, parameters устанавливает UpperParameters свойство добавленной функции принадлежности.

Нечеткая переменная в виде a fisvar объект.

Аргументы name-value

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

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

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

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

  • "input" — Входная переменная

  • "output" — Выходная переменная

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

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

Более низкий масштабный коэффициент функции принадлежности для функций принадлежности типа 2 в виде положительной скалярной величины, меньше чем или равной 1. Используйте LowerScale задавать максимальное значение более низкой функции принадлежности.

В зависимости от значения LowerLag, фактическое максимальное более низкое значение функции принадлежности может быть меньше LowerScale.

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

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

свернуть все

Нечеткая система вывода в виде одного из следующего:

  • mamfis объект — Mamdani нечеткая система вывода

  • sugfis объект — Sugeno нечеткая система вывода

  • mamfistype2 объект — Тип 2 Mamdani нечеткая система вывода

  • sugfistype2 объект — Тип 2 Sugeno нечеткая система вывода

fisOut содержит добавленную функцию принадлежности, со всеми другими свойствами, совпадающими со свойствами fisInfisOut содержит добавленную функцию принадлежности, со всеми другими свойствами, совпадающими со свойствами fisIn

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

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

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

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

Предупреждает запуск в R2019b

Введенный в R2018b