exponenta event banner

sugfistype2

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

Описание

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

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

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

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

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

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

Создание

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

  • sugfistype2 функция.

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

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

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

Описание

пример

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

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

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

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

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

Свойства

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Метод агрегирования для объединения последующих правил, указанный как "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) = [];

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

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

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

Примечание

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

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

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

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

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

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

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

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

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

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

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

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

Примеры

свернуть все

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

fis = sugfistype2;

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

fis.TypeReductionMethod = "ekm";

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

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

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