Fuzzy Logic Controller

Вычислите систему нечеткого вывода

  • Библиотека:
  • Fuzzy Logic Toolbox

  • Fuzzy Logic Controller block

Описание

Блок Fuzzy Logic Controller реализует систему нечеткого вывода (FIS) в Simulink®. Вы задаете FIS, который нужно вычислить, используя параметр FIS name.

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

Чтобы отобразить процесс нечеткого вывода в Средство Просмотра во время симуляции, используйте блок Fuzzy Logic Controller with Ruleviewer.

Порты

Вход

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

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

Выход

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

Для FIS с одним выходом, выход является скалярным сигналом. Для мультивыхода FIS выход является вектором сигналом. Чтобы разделить выходы системы на скалярные сигналы, используйте блок Demux (Simulink).

Нечеткие входные значения, полученные путем оценки входа функций принадлежности каждого правила при текущих входах значениях.

Для FIS типа 1, fi является NR -by - NU матричным сигналом, где NR - количество правил FIS. Элемент (i, j) fi - значение входной функции членства для j-го входа в i-м правиле.

Для FIS типа 2, fi является NR -by- (2 * NU) матрица сигналом. Первые столбцы NU содержат нечеткие значения верхней функции принадлежности для каждого правила, а последние NU столбцы - нечеткие значения из нижних функций принадлежности.

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

Зависимости

Чтобы включить этот порт, выберите параметр Fuzzified inputs (fi).

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

Для FIS типа 1, rfs является векторным сигналом длины NR, где NR - количество правил, а i элемента - сила срабатывания i-го правила.

Для FIS типа 2, rfs является NR -by-2 матричным сигналом. Первый столбец содержит сильные стороны запуска правил, сгенерированные с помощью функций верхнего уровня, а второй - сильные стороны запуска правил, сгенерированные с помощью функций нижнего уровня.

Для получения дополнительной информации о применении нечетких операторов смотрите Apply Fuzzy Operator.

Зависимости

Чтобы включить этот порт, выберите параметр Rule firing strengths (rfs).

Правило выходов, полученное путем применения сильных сторон запуска правила к функциям принадлежности к выходу с помощью метода implication, заданного в FIS.

Для Mamdani FIS типа 1, ro является NS -by- (NR NY) матричным сигналом, где NR - количество правил, NY - количество выходов, а NS - количество выборочных точек, используемых для оценки выходных диапазонов переменных. Каждый столбец ro содержит выход нечеткий набор для одного правила. Первые столбцы NR содержат выходы правила для первой выходной переменной, следующие столбцы NR соответствуют второй выходной переменной и так далее.

Для Mamdani FIS типа 2, ro является NS -by- (2 * NR * NY) матричным сигналом. Первые столбцы NR * NY содержат выходы правила, сгенерированные с помощью функций верхнего уровня, а последние столбцы NR * NY - выходы правила, сгенерированные с помощью функций нижнего уровня.

Для системы Sugeno типа 1 каждый выход правил является скалярным значением. В этом случае ro является NR -by NY матричным сигналом. Элемент (j, k) ro - значение k-й выходной переменной для j-го правила.

Для системы Sugeno типа 2, ro является NR массивом -by- (3 * NY). Первые столбцы NY содержат выходные уровни правил. Следующие NY столбцы содержат соответствующие сильные стороны запуска правил, сгенерированные с помощью функций верхнего уровня. Последние NY столбцы содержат сильные стороны запуска правил, сгенерированные с помощью функций более низкого уровня принадлежности. Для примера в трехкомпонентной системе столбцы 4 и 7 содержат интенсивность стрельбы для уровней выхода в колонке 1.

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

Зависимости

  • Чтобы включить этот порт, выберите параметр Rule outputs (ro).

  • Чтобы задать NS, используйте параметр Number of samples for output discretization.

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

Для системы нечеткого вывода Mamdani типа 1 совокупным результатом для каждой выходной переменной является нечеткое множество. В этом случае ao is как NS -by - NY матричный сигнал, где NY - количество выходов, а NS - количество точек выборки, используемых для оценки выходных переменных областей значений. Каждый столбец ao содержит совокупный нечеткий набор для одной выходной переменной.

Для FIS Mamdani типа 2 совокупным результатом для каждой выходной переменной является нечеткий набор. В этом случае ao is как NS сигнал -by- (2 * NY) матрица. Первые столбцы NY содержат агрегированные выходы, сгенерированные с помощью функций верхнего уровня, а последние NY столбцы - агрегированные выходы, сгенерированные с помощью функций нижнего уровня.

Для системы Sugeno типа 1 совокупный результат для каждой выходной переменной является скалярным значением. В этом случае ao - вектор-строка длины NY, где k элемента - это сумма выходов правила для k-й выходной переменной.

Для системы Sugeno типа 2, ao является NR массивом -by- (3 * NY). aggregatedOut содержит те же данные, что и ro столбцы, отсортированные по уровням выхода. Для примера, в системе с тремя выходами, когда уровни выходных параметров в столбце 1 сортируются, соответствующие степени срабатывания в столбцах 4 и 7 корректируются соответственно.

Для получения дополнительной информации о нечеткой агрегации см. Раздел «Агрегирование всех выходов».

Зависимости

  • Чтобы включить этот порт, выберите параметр Aggregated outputs (ao).

  • Чтобы задать NS, используйте параметр Number of samples for output discretization.

Параметры

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

Общая информация

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

  • mamfis или sugfis object - Задайте имя объекта FIS типа-1 в MATLAB® рабочей области.

  • mamfistype2 или sugfistype2 объект - Задайте имя объекта FIS типа-2 в рабочем пространстве MATLAB.

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

    Чтобы сохранить систему нечеткого вывода типа 1 в .fis файл:

    • В Fuzzy Logic Designer или Neuro-Fuzzy Designer выберите File > Export > To File.

    • В командной строке используйте writeFIS.

    Чтобы сохранить систему нечеткого вывода типа 2 в .fis файл, использование wrtieFIS.

Программное использование

Параметры блоков: FIS
Тип: строка, вектор символов
По умолчанию: "'tipper.fis'"

Количество выборок для дискретизации области значений переменных выходов, заданное в виде целого числа, большего 1. Это значение соответствует числу точек в выход нечетком наборе для каждого правила.

Чтобы уменьшить использование памяти при оценке Mamdani FIS, задайте меньшее количество выборок. Это жертвует точностью дефузифицированного выходного значения. Установка низкого количества выборок может сделать площадь выхода для дефаззификации нуля. В этом случае значение дефузорированного выхода является средней точкой переменного выхода области значений.

Примечание

Блок игнорирует этот параметр при оценке FIS Sugeno.

Программное использование

Параметры блоков: OutputSampleNumber
Тип: строка, вектор символов
По умолчанию: "101"

Тип данных сигнала, заданный как один из следующих:

  • double - Сигналы двойной точности

  • single - Одноточные сигналы

  • fixdt(1,16,0) - Сигналы с фиксированной точкой с двоичным масштабированием точек

  • fixdt(1,16,2^0,0) - Сигналы с фиксированной точкой с масштабированием наклона и смещения

  • Выражение - выражение, которое вычисляет один из следующих типов данных

Для типов данных с фиксированной точкой можно сконфигурировать параметры сигнальности, размера слова и масштабирования с помощью Data Type Assistant. Для получения дополнительной информации смотрите Задание типа данных с фиксированной точкой (Simulink).

Программное использование

Параметры блоков: DataType
Тип: строка, вектор символов
Значения: "double", "single", "fixdt(1,16,0)", "fixdt(1,16,2^0,0)"
По умолчанию: "double"

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

Программное использование

Параметры блоков: FuzzifiedInputs
Тип: строка, вектор символов
Значения: "off", "on"
По умолчанию: "off"

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

Программное использование

Параметры блоков: RuleFiringStrengths
Тип: строка, вектор символов
Значения: "off", "on"
По умолчанию: "off"

Включите выход порт для доступа к данным выходам промежуточных правил.

Программное использование

Параметры блоков: RuleOutputs
Тип: строка, вектор символов
Значения: "off", "on"
По умолчанию: "off"

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

Программное использование

Параметры блоков: AggregatedOutputs
Тип: строка, вектор символов
Значения: "off", "on"
По умолчанию: "off"

Режим симуляции, заданный как один из следующих:

  • Interpreted execution - Симулируйте нечеткие системы, используя предварительно скомпилированные файлы MEX для single и double типы данных. Использование этой опции сокращает время начальной компиляции модели.

  • Code generation - Симулируйте нечеткую систему без предварительно скомпилированных файлов MEX. Используйте эту опцию при симуляции нечетких систем для приложений генерации кода.

Для типов данных с фиксированной точкой блок Fuzzy Logic Controller всегда моделирует использование Code generation режим.

Программное использование

Параметры блоков: SimulateUsing
Тип: строка, вектор символов
Значения: "Interpreted execution", "Code generation"
По умолчанию: "Interpreted execution"

Диагностика

Поведение диагностического сообщения, когда вход находится вне области значений, задается как одно из следующего:

  • warning - Сообщите диагностическое сообщение как предупреждение.

  • error - Сообщить о диагностическом сообщении как об ошибке.

  • none - Не сообщать диагностическое сообщение.

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

Зависимости

  • Диагностические сообщения предоставляются только тогда, когда параметр Simulate using Interpreted execution.

Программное использование

Параметры блоков: OutOfRangeInputValueMessage
Тип: строка, вектор символов
Значения: "warning", "error", "none"
По умолчанию: "warning"

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

  • warning - Сообщите диагностическое сообщение как предупреждение.

  • error - Сообщить о диагностическом сообщении как об ошибке.

  • none - Не сообщать диагностическое сообщение.

Когда No rule fired warning или none и никакие правила не горят для заданного выхода, дефузифицированное выходное значение устанавливается на его среднее значение области значений.

Зависимости

  • Диагностические сообщения предоставляются только тогда, когда параметр Simulate using Interpreted execution.

Программное использование

Параметры блоков: NoRuleFiredMessage
Тип: строка, вектор символов
Значения: "warning", "error", "none"
По умолчанию: "warning"

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

  • warning - Сообщите диагностическое сообщение как предупреждение.

  • error - Сообщить о диагностическом сообщении как об ошибке.

  • none - Не сообщать диагностическое сообщение.

Когда Empty output fuzzy set warning или none и выходной нечеткий набор пуст, дефузорированное значение для соответствующего выхода устанавливается на его среднее значение области значений.

Зависимости

  • Это диагностическое сообщение применяется только к системам Mamdani.

  • Диагностические сообщения предоставляются только тогда, когда параметр Simulate using Interpreted execution.

Программное использование

Параметры блоков: EmptyOutputFuzzySetMessage
Тип: строка, вектор символов
Значения: "warning", "error", "none"
По умолчанию: "warning"

Вопросы совместимости

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

Предупреждает, начиная с R2019b

Расширенные возможности

Генерация кода C/C + +
Сгенерируйте код C и C++ с помощью Coder™ Simulink ®

.

Генерация кода ПЛК
Сгенерируйте структурированный текстовый код с помощью Coder™ Simulink ® PLC

.

Преобразование с фиксированной точкой
Разрабатывайте и моделируйте системы с фиксированной точкой с помощью Fixed-Point Designer™.

Представлено до R2006a