exponenta event banner

sugfis

Sugeno нечеткая система вывода

Описание

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

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

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

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

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

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

Создание

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

  • sugfis функция.

  • Если у вас есть данные о вводе/выводе, можно использовать genfis функция.

  • Если у вас есть .fis файл для системы Sugeno, можно использовать readfis функция.

  • Преобразуйте существующий Mamdani FIS в использование Sugeno FIS convertToSugeno.

Описание

пример

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

пример

fis = sugfis(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.

Выходные функции принадлежности установлены в "constant" и равномерно распределенный в областях значений выходной переменной.

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

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

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

Свойства

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Метод значения для вычислительного последовательного нечеткого множества в виде "prod". Системы Sugeno всегда используют "prod" метод значения, который масштабирует последовательную функцию принадлежности предшествующим значением результата.

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

Метод агрегации для объединения следствий правила в виде "sum". Системы Sugeno всегда используют "sum" метод агрегации, который является суммой последовательных нечетких множеств.

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

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

  • "wtaver" — Взвешенное среднее всего правила выходные параметры

  • "wtsum" — Взвешенная сумма всего правила выходные параметры

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

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

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

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

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

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

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

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

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

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

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

fis.Rules(10) = [];

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

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

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

Примечание

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

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

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

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

Примеры

свернуть все

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

fis = sugfis;

Измените системные свойства с помощью записи через точку. Например, сконфигурируйте fis использовать дефаззификацию взвешенной суммы.

fis.DefuzzificationMethod = "wtsum";

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

fis = sugfis("AndMethod","min","OrMethod","max");

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

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

                       Name: "fis"
                  AndMethod: "prod"
                   OrMethod: "probor"
          ImplicationMethod: "prod"
          AggregationMethod: "sum"
      DefuzzificationMethod: "wtaver"
                     Inputs: [1x3 fisvar]
                    Outputs: [1x1 fisvar]
                      Rules: [1x27 fisrule]
    DisableStructuralChecks: 0

	See 'getTunableSettings' method for parameter optimization.

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

Загрузите Sugeno FIS из файла.

fis = readfis('sugeno1');

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

fis.Outputs(1).MembershipFunctions(1)
ans = 
  fismf with properties:

          Type: "linear"
    Parameters: [-1 -1]
          Name: "line1"

Просмотрите свойства второй функции принадлежности.

fis.Outputs(1).MembershipFunctions(2)
ans = 
  fismf with properties:

          Type: "linear"
    Parameters: [1 -1]
          Name: "line2"

Входные функции принадлежности и правила задают, какая из этих выходных функций описывается и когда.

fis.Rules
ans = 
  1x2 fisrule array with properties:

    Description
    Antecedent
    Consequent
    Weight
    Connection

  Details:
                    Description           
         _________________________________

    1    "input==low => output=line1 (1)" 
    2    "input==high => output=line2 (1)"

Постройте входные функции принадлежности этой системы. low функция принадлежности обычно отсылает к входным значениям меньше, чем нуль, в то время как high относится к значениям, больше, чем нуль.

plotmf(fis,'input',1)

Постройте выходную поверхность для этого FIS.

gensurf(fis)

Полная нечеткая система вывела переключатели гладко от линии под названием line1 к линии под названием line2.

Альтернативная функциональность

Приложение

Можно в интерактивном режиме создать Sugeno FIS с помощью приложений Neuro-Fuzzy Designer или Fuzzy Logic Designer. Можно затем экспортировать систему в рабочее пространство MATLAB.

Введенный в R2018b