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 аргумент пары "имя-значение".

Примеры

свернуть все

Создайте нечеткую систему Мамдани и добавьте три входные переменные и одну выходную переменную. В данном примере присвойте второй входной переменной и выходной переменной то же имя.

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. The axes 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. The axes 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. The axes contains 2 objects of type line, text.

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

Figure contains an axes. The axes 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 объект - Type-2 системы нечеткого вывода Мамдани

  • sugfistype2 объект - Type-2 системы нечеткого вывода Sugeno

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

свернуть все

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

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

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

  • mamfistype2 объект - Type-2 системы нечеткого вывода Мамдани

  • sugfistype2 объект - Type-2 системы нечеткого вывода Sugeno

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

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

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

расширить все

Поведение изменено в R2018b

Предупреждает, начиная с R2019b

Введенный в R2018b