mamfistype2

Интервал тип-2 Система нечеткого вывода Мамдани

Описание

Используйте mamfistype2 объект для представления интервала типа 2 системы нечеткого вывода (FIS) Mamdani.

В качестве альтернативы системе Мамдани 2 типа можно создать:

  • Type-2 систему Sugeno с помощью a sugfistype2 объект

  • Type-1 систему Мамдани с помощью a mamfis объект

  • Type-1 систему Sugeno с помощью a sugfis объект

Для получения дополнительной информации о различных типах систем нечеткого вывода, см. Mamdani и Sugeno Fuzzy Inference Systems и Type-2 Fuzzy Inference Systems.

Создание

Чтобы создать объект Mamdani FIS типа 2, используйте один из следующих методов:

  • mamfistype2 функция.

  • Если у вас есть входные и выходные обучающие данные (inputData и outputData, соответственно) можно создать FIS типа 1 с помощью genfis функция с методом кластеризации FCM. Затем можно преобразовать эту FIS в систему типа 2 с помощью convertToType2.

    opt = genfisOptions('FCMClustering','FISType','mamdani');
    fis1 = genfis(inputData,outputData,opt);
    fis = convertToType2(fis1);
  • Если у вас есть .fis файл для системы Mamdani типа 2, можно использовать readfis функция.

Описание

пример

fis = mamfistype2 создает FIS типа 2 Mamdani со значениями свойств по умолчанию. Чтобы изменить свойства нечеткой системы, используйте запись через точку.

пример

fis = mamfistype2(Name,Value) задает информацию о строении FIS или устанавливает свойства объекта с помощью аргументов пары "имя-значение". Можно задать несколько пары "имя-значение". Имена заключаются в кавычки.

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

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

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

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

Пример: 'NumInputs',2 конфигурирует нечеткую систему таким образом, чтобы она имела две входные переменные

Количество входов FIS, заданное как разделенная разделенными запятой парами, состоящая из 'NumInputs' и неотрицательное целое число.

Количество функций членства для каждого входа FIS, заданное как разделенная разделенными запятой парами, состоящая из 'NumInputMFs' и положительное целое число.

Количество выходов FIS, заданное как разделенная разделенными запятой парами, состоящая из 'NumOutputs' и неотрицательное целое число.

Количество функций принадлежности для каждого выхода FIS, заданное как разделенная разделенными запятой парами, состоящая из 'NumOutputMFs' и положительное целое число.

Тип функции принадлежности для входных и выходных переменных, заданный как разделенная разделенными запятой парами, состоящая из "MFType" и любой из них "trimf" (треугольный MF) или "gaussmf" (Гауссов МФ). Для каждой входной и выходной переменной функции принадлежности равномерно распределены по области значений переменных с приблизительно 80% перекрытием в поддержках MF.

Флаг для автоматического добавления правил, заданный как разделенная разделенными запятой парами, состоящая из "AddRules" и одно из следующих:

  • "allcombinations" - Если оба NumInputs и NumOutputs больше нуля, создайте правила с предшествующими элементами, которые содержат все вход комбинации функций принадлежности. Каждое последующее правило содержит все выходные переменные и использует первую функцию принадлежности для каждого выхода.

  • "none" - Создание FIS без каких-либо правил.

Свойства

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

Имя FIS, заданное как строковый или символьный вектор.

И способ оператора для объединения нечетких входных значений в предшествующем нечетком правиле, заданный как одно из следующего:

  • "min" - Минимум нечетких входных значений

  • "prod" - Продукт нечетких входных значений

  • Строка или вектор символов - имя пользовательской функции AND в текущей рабочей папке или в MATLAB® путь

  • Указатель на функцию - Пользовательская функция AND в текущей рабочей папке или на пути MATLAB

Дополнительные сведения об использовании пользовательских функций см. в разделе Создание нечетких систем с использованием пользовательских функций.

Для получения дополнительной информации о нечетких операторах и процессе нечеткого вывода, см. Процесс нечеткого вывода.

ИЛИ метод оператора для объединения нечетких входных значений в предшествующем нечетком правиле, заданный как одно из следующего:

  • "max" - Максимум нечетких входных значений.

  • "probor" - Вероятностный ИЛИ нечетких входных значений. Для получения дополнительной информации см. probor.

  • Строка или вектор символов - имя пользовательской функции OR в текущей рабочей папке или в пути MATLAB.

  • Указатель на функцию - Пользовательская функция OR в текущей рабочей папке или на пути MATLAB.

Дополнительные сведения об использовании пользовательских функций см. в разделе Создание нечетких систем с использованием пользовательских функций.

Для получения дополнительной информации о нечетких операторах и процессе нечеткого вывода, см. Процесс нечеткого вывода.

Импликационный метод для вычисления последующего нечеткого множества, заданный как одно из следующего:

  • "min" - Обрезать последующую функцию принадлежности по предшествующему значению результата.

  • "prod" - Масштабируйте последующую функцию принадлежности по предшествующему значению результата.

  • Строка или вектор символов - имя пользовательской функции-импликации в текущей рабочей папке или в пути MATLAB.

  • Указатель на функцию - Пользовательская функция импликации в текущей рабочей папке или на пути MATLAB.

Дополнительные сведения об использовании пользовательских функций см. в разделе Создание нечетких систем с использованием пользовательских функций.

Для получения дополнительной информации о подразумеваемости и процессе нечеткого вывода, см. Процесс нечеткого вывода.

Метод агрегации для объединения последствий правил, заданный как одно из следующего:

  • "max" - Максимум последующих нечетких множеств

  • "sum" - Сумма последующих нечетких множеств

  • "probor" - Вероятностный OR последующих нечетких множеств. Для получения дополнительной информации см. probor.

  • Строка или вектор символов - имя пользовательской функции агрегации в текущей рабочей папке или в пути MATLAB

  • Указатель на функцию - Пользовательская функция агрегации в текущей рабочей папке или в пути MATLAB

Дополнительные сведения об использовании пользовательских функций см. в разделе Создание нечетких систем с использованием пользовательских функций.

Для получения дополнительной информации о агрегации и процессе нечеткого вывода смотрите Процесс нечеткого вывода.

Метод дефаззификации для вычисления четких выходных значений из агрегированного выходного нечеткого набора. Type-2 Mamdani поддерживают только центроидную дефаззификацию.

FIS входные переменные, заданные как вектор fisvar объекты. Чтобы добавить и удалить входные переменные, используйте addInput и removeInput, соответственно.

Можно также создать вектор из fisvar Объекты и присвоение его в Inputs использование записи через точку.

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

FIS выходные переменные, заданные как вектор fisvar объекты. Чтобы добавить и удалить выходные переменные, используйте addOutput и removeOutput, соответственно.

Можно также создать вектор из fisvar Объекты и присвоение его в Outputs использование записи через точку.

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

FIS входные переменные, заданные как вектор fisrule объекты. Чтобы добавить нечеткие правила, используйте addRule функция.

Можно также создать вектор из fisrule Объекты и присвоение его в Rules использование записи через точку.

Чтобы удалить правило, установите соответствующий векторный элемент правила равным []. Для примера, чтобы удалить десятое правило из списка правил, введите:

fis.Rules(10) = [];

Флаг для отключения проверки согласованности при изменении значений свойств, заданный как логическое значение.

По умолчанию, когда вы изменяете значение свойства a mamfistype2 объект, программное обеспечение проверяет, соответствует ли новое значение свойства другим свойствам объекта. Эти проверки могут повлиять на эффективность, особенно при создании и обновлении нечетких систем в циклах.

Чтобы отключить эти проверки, что приводит к ускорению конструкции FIS, установите DisableSturcturalChecks на true.

Примечание

Отключение структурных проверок может привести к ошибке mamfistype2 объект.

Чтобы снова включить проверки согласованности, сначала проверьте, что внесенные в FIS изменения согласованы, и создайте допустимое mamfistype2 объект. Затем установите DisableSturcturalChecks на false. Если mamfistype2 объект недопустим, повторное включение проверок согласованности создает ошибку.

Метод сокращения типа для преобразования выходного нечеткого набора типа 2 в интервал нечеткого набора типа 1, заданный как одно из следующего:

  • "karnikmendel" - Карник-Мендель

  • "ekm" - Усиленный Карник-Мендель

  • "iasc" - Итерационный алгоритм с условием остановки

  • "eiasc" - Расширенный итерационный алгоритм

  • Строка - имя пользовательской функции сокращения типа в текущей рабочей директории или в пути MATLAB.

  • Указатель на функцию - указатель на функцию для пользовательской функции сокращения типа в текущей рабочей папке или на пути MATLAB.

Для получения дополнительной информации о сокращении типа см. Type-2 систем нечеткого вывода.

Функции объекта

addInputДобавьте входную переменную в систему нечеткого вывода
removeInputУдалите входную переменную из системы нечеткого вывода
addOutputДобавьте выходную переменную в систему нечеткого вывода
removeOutputУдалите выходную переменную из системы нечеткого вывода
addRuleДобавьте правило в систему нечеткого вывода
addMFДобавьте функцию принадлежности к нечеткой переменной
removeMFУдалите функцию принадлежности из нечеткой переменной
evalfisВычислите систему нечеткого вывода
writeFISСохраните систему нечеткого вывода в файл
convertToType1Преобразуйте систему нечеткого вывода типа 2 в систему нечеткого вывода типа 1

Примеры

свернуть все

Создайте систему нечеткого вывода Mamdani type-2 со значениями свойств по умолчанию.

fis = mamfistype2;

Измените свойства системы с помощью записи через точку. Например, установите метод сокращения типа, чтобы использовать расширенный метод Карника-Менделя.

fis.TypeReductionMethod = "ekm";

Кроме того, можно задать одно из нескольких свойств FIS при создании нечеткой системы.

fis = mamfistype2('TypeReductionMethod',"ekm");

Создайте систему нечеткого вывода Mamdani типа 2 с тремя входами и одним выходом.

fis = mamfis("NumInputs",3,"NumOutputs",1)
fis = 
  mamfis with properties:

                       Name: "fis"
                  AndMethod: "min"
                   OrMethod: "max"
          ImplicationMethod: "min"
          AggregationMethod: "max"
      DefuzzificationMethod: "centroid"
                     Inputs: [1x3 fisvar]
                    Outputs: [1x1 fisvar]
                      Rules: [1x27 fisrule]
    DisableStructuralChecks: 0

	See 'getTunableSettings' method for parameter optimization.

По умолчанию программа создает правило для каждой возможной входной комбинации.

Введенный в R2019b