sugfistype2

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

Описание

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

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

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

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

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

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

Создание

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

  • sugfistype2 функция.

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

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

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

Описание

пример

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

пример

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

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

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

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

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

Свойства

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

fis.Rules(10) = [];

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

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

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

Примечание

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

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

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

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

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

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

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

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

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

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

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

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

Примеры

свернуть все

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

fis = sugfistype2;

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

fis.TypeReductionMethod = "ekm";

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

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

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

fis = sugfistype2("NumInputs",3,"NumOutputs",1)
fis = 
  sugfistype2 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
        TypeReductionMethod: "karnikmendel"

	See 'getTunableSettings' method for parameter optimization.

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

Введенный в R2019b