exponenta event banner

mamfistype2

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

Описание

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

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

  • Type-2 Система Sugeno с использованием sugfistype2 объект

  • Type-1 система Mamdani с использованием mamfis объект

  • Type-1 Система Sugeno с использованием sugfis объект

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

Создание

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

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

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

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

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

Свойства

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • "probor" - Вероятностное ИЛИ последовательных нечетких множеств. Дополнительные сведения см. в разделе 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) = [];

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

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

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

Примечание

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

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

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

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

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

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

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

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

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

Для получения дополнительной информации о сокращении типа посмотрите Тип 2 Fuzzy Inference Systems.

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

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

Примеры

свернуть все

Создайте систему нечеткого вывода Mamdani типа 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