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® path

  • Указатель на функцию — Пользовательская функция И в текущей рабочей папке или на пути 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)

Figure contains an axes object. The axes object contains 4 objects of type line, text.

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

gensurf(fis)

Figure contains an axes object. The axes object contains an object of type line.

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

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

Приложение

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

Введенный в R2018b