Оценка нечеткой системы вывода
Панель инструментов нечеткой логики
Блок контроллера нечеткой логики реализует систему нечеткого вывода (FIS) в Simulink ®. FIS задается для вычисления с помощью параметра FIS name.
Дополнительные сведения о нечетком выводе см. в разделе Процесс нечеткого вывода.
Чтобы отобразить процесс нечеткого вывода в средстве просмотра правил во время моделирования, используйте контроллер нечеткой логики с блоком Ruleviewer.
in - Входной сигналДля системы нечеткого вывода с одним входом вход является скалярным сигналом. Для многозаходной нечеткой системы объедините входы в векторный сигнал, используя такие блоки, как:
Мукс (Симулинк)
Конкатенат вектора (Simulink)
Автор шины (Simulink)
out - Дефазифицированный выходной сигналДля FIS с одним выходом выход является скалярным сигналом. Для FIS с множеством выходов выходной сигнал является векторным сигналом. Для разделения системных выходов на скалярные сигналы используйте блок Demux (Simulink).
fi - Нечеткие входные значенияНечеткие входные значения, полученные путем оценки входных функций членства каждого правила при текущих входных значениях.
Для FIS типа 1, fi - матричный сигнал NR-by-NU, где NR - количество правил FIS. Элемент (i, j) fi - значение входной функции членства для j-го входа в i-ом правиле.
Для FIS типа 2, fi - сигнал матрицы NR-by- (2 * NU). Первые столбцы NU содержат нечеткие значения верхней функции членства для каждого правила, а последние столбцы NU содержат нечеткие значения нижних функций членства.
Дополнительные сведения о нечеткости входных значений см. в разделе Нечеткость входных данных.
Чтобы включить этот порт, выберите параметр Нечеткие входы (fi).
rfs - Сила стрельбы правилаСила срабатывания правила, полученная путем оценки предшествующей силы каждого правила; то есть применение нечеткого оператора к значениям нечетких входов.
Для FIS типа 1, rfs - сигнал вектора столбца длиной NR, где NR - число правил, а элемент i - сила стрельбы i-го правила.
Для FIS типа 2, rfs - NR-by-2 матричный сигнал. Первый столбец содержит уровни запуска правила, сгенерированные с помощью верхних функций членства, а второй столбец содержит уровни запуска правила, сгенерированные с помощью нижних функций членства.
Дополнительные сведения о применении нечетких операторов см. в разделе Применение нечеткого оператора.
Чтобы включить этот порт, выберите параметр Rule firming strong (rfs).
ro - Выходные данные правилаВыходные данные правила, полученные путем применения уровней возбуждения правила к функциям членства на выходе с использованием метода импликации, указанного в 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, используйте параметр Количество выборок для дискретизации вывода.
ao - Агрегированные выходные данныеАгрегирование выходных данных для каждой выходной переменной, получаемое путем объединения соответствующих выходных данных из всех правил с использованием метода агрегирования, указанного в 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, используйте параметр Количество выборок для дискретизации вывода.
FIS name - Система нечеткого выводаmamfis объект | sugfis объект | mamfistype2 объект | sugfistype2 объект | имя файлаВычисляемая система нечеткого вывода, заданная как одно из следующих значений:
mamfis или sugfis object - укажите имя объекта FIS типа 1 в рабочей области MATLAB ®.
mamfistype2 или sugfistype2 object - укажите имя объекта FIS типа-2 в рабочей области MATLAB.
Имя файла - укажите имя файла .fis в текущей рабочей папке или по пути MATLAB. Включение расширения файла в имя файла является необязательным.
Сохранение системы нечеткого вывода типа 1 в .fis файл:
В конструкторе нечеткой логики или нейро-нечетком конструкторе выберите «Файл» > «Экспорт» > «В файл».
В командной строке используйте writeFIS.
Сохранение системы нечеткого вывода типа 2 в .fis файл, использование wrtieFIS.
Параметр блока:
FIS |
| Тип: строка, символьный вектор |
По умолчанию:
"'tipper.fis'" |
Number of samples for output discretization - Количество точек в выходных нечетких наборах1Число выборок для дискретизации диапазона выходных переменных, указанных как целое число, большее, чем 1. Это значение соответствует количеству точек в выходном нечетком наборе для каждого правила.
Чтобы уменьшить использование памяти при оценке FIS Mamdani, укажите меньшее количество образцов. Это приводит к снижению точности выходного значения по умолчанию. Задание небольшого числа выборок может сделать область вывода для дефузификации нулевой. В этом случае значение выходного сигнала по умолчанию является средней точкой диапазона выходных переменных.
Примечание
Блок игнорирует этот параметр при оценке FIS Sugeno.
Параметр блока:
OutputSampleNumber |
| Тип: строка, символьный вектор |
По умолчанию:
"101" |
Data type - Тип данных сигналаdouble (по умолчанию) | single | fixed-point | expressionТип данных сигнала, указанный как один из следующих:
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" |
Fuzzified inputs (fi) - Включить fi выходной портoff (по умолчанию) | onВключить выходной порт для доступа к промежуточным нечетким входным данным.
Параметр блока:
FuzzifiedInputs |
| Тип: строка, символьный вектор |
Значения:
"off", "on" |
По умолчанию:
"off" |
Rule firing strengths (rfs) - Включить rfs выходной портoff (по умолчанию) | onВключить выходной порт для доступа к промежуточным данным о мощности запуска правила.
Параметр блока:
RuleFiringStrengths |
| Тип: строка, символьный вектор |
Значения:
"off", "on" |
По умолчанию:
"off" |
Rule outputs (ro) - Включить ro выходной портoff (по умолчанию) | onВключить выходной порт для доступа к промежуточным выходным данным правила.
Параметр блока:
RuleOutputs |
| Тип: строка, символьный вектор |
Значения:
"off", "on" |
По умолчанию:
"off" |
Aggregated outputs (ao) - Включить ao выходной портoff (по умолчанию) | onВключить порт вывода для доступа к промежуточным агрегатным выходным данным.
Параметр блока:
AggregatedOutputs |
| Тип: строка, символьный вектор |
Значения:
"off", "on" |
По умолчанию:
"off" |
Simulate using - Режим моделированияInterpreted execution (по умолчанию) | Code generationРежим моделирования, указанный как одно из следующих:
Interpreted execution - Моделирование нечетких систем с использованием предварительно скомпилированных файлов MEX для single и double типы данных. Использование этой опции сокращает время начальной компиляции модели.
Code generation - Моделирование нечеткой системы без предварительной компиляции файлов MEX. Эта опция используется при моделировании нечетких систем для приложений генерации кода.
Для типов данных с фиксированной точкой блок контроллера нечеткой логики всегда моделируется с помощью Code generation режим.
Параметр блока:
SimulateUsing |
| Тип: строка, символьный вектор |
Значения:
"Interpreted execution", "Code generation" |
По умолчанию:
"Interpreted execution" |
Out of range input value - поведение диагностического сообщения, когда входной сигнал выходит за пределы допустимого диапазона;warning (по умолчанию) | error | noneПоведение диагностического сообщения, когда входной сигнал выходит за пределы допустимого диапазона, определяется как одно из следующих значений:
warning - Выдать диагностическое сообщение в виде предупреждения.
error - Сообщение о диагностическом сообщении как об ошибке.
none - Не сообщайте диагностическое сообщение.
Когда входное значение выходит за пределы диапазона, соответствующие правила в нечеткой системе могут иметь неожиданные уровни срабатывания.
Диагностические сообщения предоставляются только в том случае, если параметр Simulate using имеет значение Interpreted execution.
Параметр блока:
OutOfRangeInputValueMessage |
| Тип: строка, символьный вектор |
Значения:
"warning", "error", "none" |
По умолчанию:
"warning" |
No rule fired - поведение диагностического сообщения при отсутствии запуска правил;warning (по умолчанию) | error | noneПоведение диагностического сообщения при отсутствии правил для данной выходной переменной, указанное как одно из следующих:
warning - Выдать диагностическое сообщение в виде предупреждения.
error - Сообщение о диагностическом сообщении как об ошибке.
none - Не сообщайте диагностическое сообщение.
Когда правило не запущено warning или none и нет правил запуска для данного выходного сигнала, значение defuzzified выходного сигнала устанавливается равным его среднему значению диапазона.
Диагностические сообщения предоставляются только в том случае, если параметр Simulate using имеет значение Interpreted execution.
Параметр блока:
NoRuleFiredMessage |
| Тип: строка, символьный вектор |
Значения:
"warning", "error", "none" |
По умолчанию:
"warning" |
Empty output fuzzy set - поведение диагностического сообщения, когда выходной нечеткий набор пуст;warning (по умолчанию) | error | noneПоведение диагностического сообщения, когда выходной нечеткий набор пуст, указано как одно из следующих:
warning - Выдать диагностическое сообщение в виде предупреждения.
error - Сообщение о диагностическом сообщении как об ошибке.
none - Не сообщайте диагностическое сообщение.
Когда пустой выходной нечеткий набор warning или none и выходной нечеткий набор пуст, значение по умолчанию для соответствующего выхода устанавливается равным его среднему значению диапазона.
Это диагностическое сообщение относится только к системам Mamdani.
Диагностические сообщения предоставляются только в том случае, если параметр Simulate using имеет значение Interpreted execution.
Параметр блока:
EmptyOutputFuzzySetMessage |
| Тип: строка, символьный вектор |
Значения:
"warning", "error", "none" |
По умолчанию:
"warning" |
Предупреждает, начиная с R2019b
Поддержка представления нечетких систем вывода как структур будет удалена в будущем выпуске. Использовать mamfis и sugfis вместо этого объекты. Между этими представлениями существуют различия, требующие обновления кода. Эти различия включают в себя:
Имена свойств объекта, отличающиеся от соответствующих полей структуры.
Объекты хранят текстовые данные в виде строк, а не в виде векторов символов.
Кроме того, все функции Fuzzy Logic Toolbox™, которые принимали или возвращали системы нечеткого вывода в качестве структур, теперь принимают и возвращают либо mamfis или sugfis объекты.
Чтобы преобразовать существующие структуры системы нечеткого вывода в объекты, используйте convertfis функция.
evalfis | genfis | mamfis | mamfistype2 | readfis | sugfis | sugfistype2 | writeFIS1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.



