exponenta event banner

Контроллер нечеткой логики

Оценка нечеткой системы вывода

  • Библиотека:
  • Панель инструментов нечеткой логики

  • Fuzzy Logic Controller block

Описание

Блок контроллера нечеткой логики реализует систему нечеткого вывода (FIS) в Simulink ®. FIS задается для вычисления с помощью параметра FIS name.

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

Чтобы отобразить процесс нечеткого вывода в средстве просмотра правил во время моделирования, используйте контроллер нечеткой логики с блоком 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 содержат нечеткие значения нижних функций членства.

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

Зависимости

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

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

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

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

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

Зависимости

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

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

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

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

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

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

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

Зависимости

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

  • Чтобы указать NS, используйте параметр Количество выборок для дискретизации вывода.

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

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

Для FIS Мамдани типа 2 совокупный результат для каждой выходной переменной является нечетким набором. В этом случае ao представляет собой сигнал матрицы 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, используйте параметр Количество выборок для дискретизации вывода.

Параметры

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

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

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

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

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

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

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

    • В конструкторе нечеткой логики или нейро-нечетком конструкторе выберите «Файл» > «Экспорт» > «В файл».

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

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

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

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

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

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

Примечание

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

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

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

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

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

  • single - Сигналы одинарной точности

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

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

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

Для типов данных с фиксированной точкой можно настроить параметры подписи, длины слова и масштабирования с помощью помощника по типам данных. Дополнительные сведения см. в разделе Указание типа данных с фиксированной точкой (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. Эта опция используется при моделировании нечетких систем для приложений генерации кода.

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

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

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

Диагностика

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

  • warning - Выдать диагностическое сообщение в виде предупреждения.

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

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

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

Зависимости

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

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

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

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

  • warning - Выдать диагностическое сообщение в виде предупреждения.

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

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

Когда правило не запущено warning или none и нет правил запуска для данного выходного сигнала, значение defuzzified выходного сигнала устанавливается равным его среднему значению диапазона.

Зависимости

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

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

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

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

  • warning - Выдать диагностическое сообщение в виде предупреждения.

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

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

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

Зависимости

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

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

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

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

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

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

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

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

Создание кода C/C + +
Создайте код C и C++ с помощью Simulink ® Coder™

.

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

.

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

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