exponenta event banner

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. 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 объект - система нечеткого вывода Мамдани

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

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

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

Имя переменной, указанное как строковый или символьный вектор. В 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.

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

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

Нечеткая переменная, заданная как 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 объект - система нечеткого вывода Мамдани

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

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

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

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

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

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

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

В R2018b изменилось поведение

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

Представлен в R2018b