Вычислите систему нечеткого вывода
Fuzzy Logic Toolbox
Блок Fuzzy Logic Controller реализует систему нечеткого вывода (FIS) в Simulink®. Вы задаете FIS, который нужно вычислить, используя параметр FIS name.
Для получения дополнительной информации о нечетком выводе смотрите Процесс нечеткого вывода.
Чтобы отобразить процесс нечеткого вывода в Средство Просмотра во время симуляции, используйте блок Fuzzy Logic Controller with Ruleviewer.
in
- Входной сигналДля системы нечеткого вывода с одним входом, вход является скалярным сигналом. Для мультивхода нечеткой системы объедините входы в сигнал вектора с помощью таких блоков, как:
Mux (Simulink)
Vector Concatenate (Simulink)
Bus Creator (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 столбцы - нечеткие значения из нижних функций принадлежности.
Для получения дополнительной информации о нечеткости входных значений смотрите Fuzzify Inputs.
Чтобы включить этот порт, выберите параметр Fuzzified inputs (fi).
rfs
- Правила включения сильных сторонСила стрельбы по правилам, полученная путем оценки предшествующего значения каждого правила; то есть применение оператора нечеткости к значениям нечетких входов.
Для FIS типа 1, rfs
является векторным сигналом длины NR, где NR - количество правил, а i элемента - сила срабатывания i-го правила.
Для FIS типа 2, rfs
является NR -by-2 матричным сигналом. Первый столбец содержит сильные стороны запуска правил, сгенерированные с помощью функций верхнего уровня, а второй - сильные стороны запуска правил, сгенерированные с помощью функций нижнего уровня.
Для получения дополнительной информации о применении нечетких операторов смотрите Apply Fuzzy Operator.
Чтобы включить этот порт, выберите параметр Rule firing strengths (rfs).
ro
- выходы правилаПравило выходов, полученное путем применения сильных сторон запуска правила к функциям принадлежности к выходу с помощью метода 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.
ao
- Агрегированный выходСовокупный выход для каждой выходной переменной, полученный путем объединения соответствующих выходов из всех правил с помощью метода агрегации, заданного в 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.
FIS name
- Система нечеткого выводаmamfis
| объекта sugfis
| объекта mamfistype2
| объекта sugfistype2
объект | имя файлаСистема нечеткого вывода для вычисления, заданная как одно из следующего:
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'"
|
Number of samples for output discretization
- Число точек в выходных нечетких наборах1
Количество выборок для дискретизации области значений переменных выходов, заданное в виде целого числа, большего 1
. Это значение соответствует числу точек в выход нечетком наборе для каждого правила.
Чтобы уменьшить использование памяти при оценке Mamdani FIS, задайте меньшее количество выборок. Это жертвует точностью дефузифицированного выходного значения. Установка низкого количества выборок может сделать площадь выхода для дефаззификации нуля. В этом случае значение дефузорированного выхода является средней точкой переменного выхода области значений.
Примечание
Блок игнорирует этот параметр при оценке FIS Sugeno.
Параметры блоков:
OutputSampleNumber
|
Тип: строка, вектор символов |
По умолчанию:
"101"
|
Data type
- Тип данных сигналаdouble
(по умолчанию) | single
| fixed-point
| expression
Тип данных сигнала, заданный как один из следующих:
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"
|
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. Используйте эту опцию при симуляции нечетких систем для приложений генерации кода.
Для типов данных с фиксированной точкой блок Fuzzy Logic Controller всегда моделирует использование 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
- Не сообщать диагностическое сообщение.
Когда No rule fired warning
или none
и никакие правила не горят для заданного выхода, дефузифицированное выходное значение устанавливается на его среднее значение области значений.
Диагностические сообщения предоставляются только тогда, когда параметр Simulate using Interpreted execution
.
Параметры блоков:
NoRuleFiredMessage
|
Тип: строка, вектор символов |
Значения:
"warning" , "error" , "none" |
По умолчанию:
"warning"
|
Empty output fuzzy set
- Диагностическое поведение сообщения, когда выходной нечеткий набор пустwarning
(по умолчанию) | error
| none
Поведение диагностического сообщения, когда выходной нечеткий набор пуст, задается как одно из следующего:
warning
- Сообщите диагностическое сообщение как предупреждение.
error
- Сообщить о диагностическом сообщении как об ошибке.
none
- Не сообщать диагностическое сообщение.
Когда Empty output fuzzy set 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
| writeFIS
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.