Аппроксимация одномерной функции
AUTOSAR Blockset/Классическая платформа/Библиотечные процедуры/Интерполяция
Блок Curve выполняет одномерный интерполированный поиск по таблице, включая поиск по индексу. Таблица является выборочным представлением функции. Наборы точек по оси Х связывают входные значения с положениями в таблице. Можно также использовать блоки Prelookup и Prelookup Using Curve вместе, чтобы выполнить те же операции, что и этот блок.
Если для модели AUTOSAR выбрана библиотека замещения кода 4,0 (CRL), код, сгенерированный из этого блока, заменяется библиотечной стандартной программой AUTOSAR, которую вы конфигурируете в диалоговом окне параметров блоков.
u1
- входы первого измеренияРеальные входные параметры для порта u1, сопоставленные с выходом значением путем просмотра или интерполяции таблицы значений, которые вы задаете.
Пример: 0:10
Типы данных: single
| double
| int8
| int16
| int32
| uint8
| uint16
| uint32
| fixed point
Port_1
- Выход вычисляется путем просмотра или оценки значений таблицыВыход, сгенерированное путем просмотра или оценки значений таблицы на основе входа значений. Если входы соответствуют значениям индексов наборов точек по оси Х, блок кривой предоставляет значение таблицы как выход. Если входы блоков не совпадают со значениями индексов в наборах точек по оси Х, но находятся в областях значений, блок выполняет выбранный вами метод интерполяции и предоставляет предполагаемое значение из значений таблицы в качестве выходных данных.
Типы данных: single
| double
| int8
| int16
| int32
| uint8
| uint16
| uint32
| fixed point
Targeted Routine Library
- Указывает библиотеку процедур AUTOSAR, используемую для замены блочного кода Если для модели выбрана библиотека замены кода (CRL) AUTOSAR 4.0, код, сгенерированный из этого блока, заменяется из выбранной библиотеки процедур AUTOSAR. Этот параметр позволяет вам выбрать замену и проверку валидации с фиксированной точкой (IFX) или с плавающей точкой (IFL).
Targeted Routine
- стандартная программа библиотеки AUTOSAR, используемая для замены кодаIfx_IntIpoMap
(по умолчанию)Этот параметр отражает имя стандартной программы библиотеки замещения кода AUTOSAR (CRL), используемой для замены кода, сгенерированного этим блоком. Соглашение об именовании включает целевую библиотеку процедур, метод интерполяции и тип блоков. Этот параметр предназначен только для ссылок и не должен редактироваться.
Data specification
- Метод спецификации таблицы и точки остановаTable and breakpoints
(по умолчанию) | Lookup table object
В списке выберите:
Table and breakpoints
- Укажите данные таблицы и точки останова. Выбор этой опции включает следующие параметры:
Table data
Breakpoints specification
Breakpoints
Edit table and breakpoints
Lookup table object
- Использовать существующую интерполяционную таблицу (Simulink.LookupTable
) объект. Выбор этой опции включает поле Name и кнопку Edit table and breakpoints.
Параметры блоков:
DataSpecification
|
Тип: Вектор символов |
Значения:
'Table and breakpoints' | 'Lookup table object' |
По умолчанию:
'Table and breakpoints' |
Name
- Имя объекта интерполяционной таблицы[]
(по умолчанию) | Simulink.LookupTable
объектВведите имя интерполяционной таблицы (Simulink.LookupTable
) объект.
Чтобы включить этот параметр, установите Data specification равным Lookup table object
.
Параметры блоков:
LookupTableObject
|
Тип: Вектор символов |
Значения: имя Simulink.LookupTable объект |
По умолчанию:
''
|
Table data
- Определите таблицу выходных значений[1 2 4]
(по умолчанию) | вектор символовВведите таблицу выхода значений.
Во время симуляции матрица должна быть одномерной. Однако во время редактирования блока схемы можно ввести пустую матрицу (заданную как []
) или неопределенная переменная рабочей области. Этот метод позволяет отложить указание правильно измеренной матрицы для данных таблицы и продолжить редактирование блока.
Чтобы включить этот параметр, установите Data specification равным Table and breakpoints
.
Параметры блоков:
Table
|
Тип: Вектор символов |
Значения: матрица значений таблицы |
По умолчанию:
'[1 2 4]'
|
Breakpoints specification
- Метод спецификации точек остановаExplicit values
(по умолчанию) | Even spacing
Задайте, вводить ли данные как явные точки по оси Х или как параметры, которые генерируют равномерно расположенные точки по оси Х.
Чтобы явным образом задать данные точек по оси Х, установите этот параметр равным Explicit values
и введите данные точек по оси Х в текстовое поле рядом с параметрами Breakpoints.
Чтобы задать параметры, которые генерируют равномерно расположенные точки останова, установите этот параметр равным Even spacing
и введите значения параметров First point и Spacing для каждой размерности данных точек по оси Х. Блок вычисляет число точек для генерации из данных таблицы.
Чтобы включить этот параметр, установите Data specification равным Table and breakpoints
.
Параметры блоков:
BreakpointsSpecification |
Тип: Вектор символов |
Значения:
'Explicit values' | 'Even spacing' |
По умолчанию:
'Explicit values'
|
Breakpoints
- Явные значения точек по оси Х или первая точка и интервалы между точками Х[10,22,31]
(по умолчанию) | вектор 1 на n или n на 1 монотонно увеличивающихся значенийЗадайте данные точек по оси Х явно или как равномерно разнесенные точки Х на основе значения параметра Breakpoints specification.
Если вы задаете Breakpoints specification Explicit values
введите набор точек по оси Х, который соответствует каждой размерности данных таблицы в каждой Breakpoints строке. Для каждой размерности задайте точки останова как вектор 1 на n или n на 1, значения которого строго монотонно увеличиваются.
Если вы задаете Breakpoints specification Even spacing
введите First point и Spacing параметров в каждой строке Breakpoints, чтобы сгенерировать равномерно разнесенные точки останова в соответствующей размерности. Данные таблицы определяют количество равномерно разнесенных точек.
Чтобы включить этот параметр, установите Data specification равным Table and breakpoints
.
Параметры блоков:
BreakpointsForDimension1 |
Тип: Вектор символов |
Значения: 1 на n или n на 1 вектор монотонно увеличивающихся значений |
По умолчанию:
'[10, 22, 31]'
|
First point
- Первая точка равномерно разнесенных данных точек по оси Х1
(по умолчанию) | скаляромЗадайте первую точку в ваших равномерно разнесенных данных точек по оси Х как действительный, конечный или скаляр. Этот параметр доступен, когда вы устанавливаете Breakpoints specification на Even spacing
.
Чтобы включить этот параметр, установите Data specification равным Table and breakpoints
и Breakpoints specification к Even spacing
.
Параметры блоков:
BreakpointsForDimension1FirstPoint |
Тип: Вектор символов |
Значения: вещественное, конечное, скаляр |
По умолчанию:
'1'
|
Spacing
- Интервал между равномерно расположенными точками останова1
(по умолчанию) | скаляромЗадайте интервал между точками в данных точек останова с равномерными интервалами.
Чтобы включить этот параметр, установите Data specification равным Table and breakpoints
и Breakpoints specification к Even spacing
.
Параметры блоков:
BreakpointsForDimension1Spacing |
Тип: Вектор символов |
Значения: положительные, реальные, конечные, скалярные |
По умолчанию:
'1'
|
Edit table and breakpoints
- Запуск диалогового окна «Редактор интерполяционных таблиц»Нажмите эту кнопку, чтобы открыть редактор интерполяционных таблиц. Затем можно отредактировать объект и сохранить новые значения для объекта. Для получения дополнительной информации см. «Редактирование интерполяционных таблиц в Simulink» ® документация.
Index search method
- Метод вычисления индексов таблицыLinear search
(по умолчанию) | Evenly spaced points
| Binary search
Выберите Evenly spaced points
, Linear search
, или Binary search
. Каждый метод поиска имеет преимущества скорости в разных обстоятельствах:
Для равномерно разнесенных наборов точек по оси Х (для примера, 10, 20, 30 и так далее) вы достигаете оптимальной скорости, выбирая Evenly spaced points
для вычисления индексов таблицы. Этот алгоритм использует только первые две точки прерывания множества, чтобы определить смещение и интервалы между остальными точками.
Примечание
При использовании Simulink.LookupTable
объект для задания таблицы данных и параметра Breakpoints Specification ссылочного Simulink.LookupTable
для объекта задано значение Even spacing
, установите Index search method равным Evenly spaced points
.
Для неравномерно расположенных наборов точек по оси Х следуйте следующим рекомендациям:
Если входные сигналы не изменяются значительно между временными шагами, выбор Linear search
с Begin index search using previous index result обеспечивает лучшую эффективность.
Если входные сигналы перехода более одного или две таблицы интервалов на временной шаг, выбор Binary search
обеспечивает лучшую эффективность.
Неоптимальный выбор метода поиска по индексу может привести к медленной эффективности моделей, которые полагаются в большой степени на интерполяционные таблицы.
Сгенерированный код хранит только первую точку останова, интервалы и количество точек останова, когда:
Данные точек по оси Х не настраиваются.
Метод поиска по индексу Evenly spaced points
.
Параметры блоков:
IndexSearchMethod
|
Тип: Вектор символов |
Значения:
'Binary search' | 'Evenly spaced points' | 'Linear search' |
По умолчанию:
'Linear search'
|
Begin index search using previous index result
- Начните использовать индекс с предыдущего временного шагаoff
(по умолчанию) | on
Установите этот флажок, когда необходимо, чтобы блок начал поиск с помощью индекса, найденного на предыдущем временном шаге. Для входов, которые изменяются медленно относительно размера интервала, включение этой опции может улучшить эффективность. В противном случае линейный поиск и двоичные методы поиска могут занять больше времени, особенно для больших наборов точек по оси Х.
Чтобы включить этот параметр, установите Index search method равным Linear search
или Binary search
.
Параметры блоков:
BeginIndexSearchUsing PreviousIndexResult |
Тип: Вектор символов |
Значения:
'off' | 'on' |
По умолчанию:
'off'
|
Interpolation method
- Метод интерполяции между значениями точек по оси ХLinear point-slope
(по умолчанию) | Flat
Когда вход падает между значениями точек по оси Х, блок интерполирует выходное значение с помощью соседних точек по оси Х. Для получения дополнительной информации см. «Методы интерполяции».
Параметры блоков:
InterpMethod
|
Тип: Вектор символов |
Значения:
'Linear point-slope' | 'Flat' |
По умолчанию:
'Linear point-slope' |
Integer rounding mode
- Режим округления для операций с фиксированной точкойRound
(по умолчанию) | Zero
Задайте режим округления для вычислений интерполяционной таблицы с фиксированной точкой или с плавающей точкой, которые происходят во время симуляции или выполнения кода, сгенерированного из модели.
Эта опция не влияет на округление параметров блоков значений. Simulink округляет такие значения до ближайшего представимого целого значения. Чтобы контролировать округление параметров блоков, введите выражение с помощью MATLAB™ функции округления в поле редактирования в диалоговом окне блока.
Параметры блоков:
RndMeth
|
Тип: Вектор символов |
Значения:
'Round' | 'Zero'
|
По умолчанию:
'Round'
|
Table data
- Тип данных табличных данныхInherit: Same as output
(по умолчанию) | double
| single
| int8
| uint8
| int16
| uint16
| int32
| uint32
| fixdt(1,16)
| fixdt(1,16,0)
| fixdt(1,16,2^0,0)
| <data type expression>
Задайте тип данных таблицы. Блок подтверждает, что выбранные типы совместимы с спецификацией целевой стандартной программы. Можно задать тип данных таблицы:
Правило, которое наследует тип данных, например Inherit: Same as output
Имя встроенного типа данных, например single
Имя объекта типа данных, например, Simulink.NumericType
объект
Выражение, которое вычисляется как тип данных, например fixdt(1,16,0)
Нажмите кнопку Show data type assistant, чтобы отобразить Data Type Assistant, которая помогает вам задать атрибуты type данных. Для получения дополнительной информации смотрите Задать типы данных Используя Data Type Assistant.
Совет
Задайте тип данных таблицы, отличный от типа выходных данных в следующих случаях:
Более низкие требования к памяти для хранения данных таблицы, которая использует меньший тип, чем выходной сигнал.
Совместное использование предварительных данных таблицы между двумя блоками Map, которые имеют различные типы выходных данных.
Совместное использование данных пользовательской таблицы хранения в сгенерированном коде для блоков с различными типами выходных данных.
Параметры блоков:
TableDataTypeStr
|
Тип: Вектор символов |
Значения:
'Inherit: Inherit from 'Table data'' | 'Inherit: Same as output' | 'double' | 'single' | 'int8' | 'uint8' | 'int16' | 'uint16' | 'int32' | 'uint32' | 'fixdt(1,16)' | 'fixdt(1,16,0)' | 'fixdt(1,16,2^0,0)'|'<data type expression>' |
По умолчанию:
'Inherit: Same as output' |
Breakpoints
- Тип данных точек по оси ХInherit: Same as corresponding input
(по умолчанию) | double
| single
| int8
| uint8
| int16
| uint16
| int32
| uint32
| fixdt(1,16)
| fixdt(1,16,0)
| fixdt(1,16,2^0,0)
| Enum: <class name>
| <data type expression>
Укажите тип данных для набора данных точек по оси Х. Можно задать тип данных точек по оси Х:
Правило, которое наследует тип данных, например Inherit: Same as corresponding input
Имя встроенного типа данных, например single
Имя класса типа данных, например, класса перечисленных типов данных
Имя объекта типа данных, например, Simulink.NumericType
объект
Выражение, которое вычисляется как тип данных, например fixdt(1,16,0)
Ограничение для использования перечисленных данных с этим блоком заключается в том, что он не поддерживает вход вне области допустимого для перечисленной даты. При указании перечисленных данных включите весь набор перечислений в набор данных точек по оси Х.
Нажмите кнопку Show data type assistant, чтобы отобразить Data Type Assistant, которая помогает вам задать атрибуты type данных. Для получения дополнительной информации смотрите Задать типы данных Используя Data Type Assistant.
Параметры блоков:
BreakpointsForDimension1DataTypeStr | BreakpointsForDimension2DataTypeStr |
Тип: Вектор символов |
Значения:
'Inherit: Same as corresponding input' | 'Inherit: Inherit from 'Breakpoint data'' | 'double' | 'single' | 'int8' | 'uint8' | 'int16' | 'uint16' | 'int32' | 'uint32' | 'fixdt(1,16)' | 'fixdt(1,16,0)' | 'fixdt(1,16,2^0,0)'|'<data type expression>' |
По умолчанию:
'Inherit: Same as corresponding input' |
Curve Using Prelookup | Map | Map Using Prelookup | Prelookup
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.