mamfistype2

Тип 2 интервала Mamdani нечеткая система вывода

Описание

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

Как альтернатива типу 2 система Mamdani, можно создать a:

  • Тип 2 Система Sugeno с помощью a sugfistype2 объект

  • Тип 1 Система Mamdani с помощью a mamfis объект

  • Тип 1 Система Sugeno с помощью a sugfis объект

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

Создание

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

  • mamfistype2 функция.

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

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

Описание

пример

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

пример

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" (Гауссов MF). Для каждой переменной ввода и вывода функции принадлежности равномерно распределены по переменному диапазону приблизительно с 80%-м перекрытием в поддержках MF.

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

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

  • "none" — Создайте FIS без любых правил.

Свойства

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

FIS называют в виде строки или вектора символов.

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

  • "min" — Минимум fuzzified входных значений

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • "max" — Максимум последовательных нечетких множеств

  • "sum" — Сумма последовательных нечетких множеств

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

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

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

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

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

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

Для получения дополнительной информации о сокращении типа смотрите Тип 2 Нечеткие Системы Вывода.

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

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

Примеры

свернуть все

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

fis = mamfistype2;

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

fis.TypeReductionMethod = "ekm";

В качестве альтернативы можно задать одно из большего количества свойств FIS, когда вы создаете нечеткую систему.

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

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

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