Map

Аппроксимация двумерной функции

  • Библиотека:
  • AUTOSAR Blockset/Классическая платформа/Библиотечные процедуры/Интерполяция

  • Map block

Описание

Блок Map выполняет двумерный интерполированный поиск по таблице, включая поиск по индексу. Таблица является выборочным представлением функции в двух переменных. Наборы точек по оси Х связывают входные значения с положениями в таблице. Можно также использовать блоки Prelookup и Prelookup Using Map вместе, чтобы выполнить те же операции, что и этот блок.

Когда вы устанавливаете параметр конфигурации Math and Data Types > Use algorithms optimized for row-major array layout , поведение блока изменяется с большого столбца на большую строку. Для этих блоков алгоритмы основной и основной строки могут отличаться в порядке выходных вычислений, что, возможно, приводит к слегка различным числовым значениям. Для этой возможности требуется программное обеспечение Simulink Coder™ или Embedded Coder™. Для получения дополнительной информации о поддержке основной строки, смотрите Генерация кода матриц и массивов (Simulink Coder ).

Если для модели AUTOSAR выбрана библиотека замещения кода 4,0 (CRL), код, сгенерированный из этого блока, заменяется библиотечной стандартной программой AUTOSAR, которую вы конфигурируете в диалоговом окне параметров блоков.

Порты

Вход

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

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

Пример: 0:10

Типы данных: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32 | fixed point

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

Пример: 0:10

Типы данных: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32 | fixed point

Выход

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

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

Типы данных: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32 | fixed point

Параметры

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

Если для модели выбрана библиотека замены кода (CRL) AUTOSAR 4.0, код, сгенерированный из этого блока, заменяется из выбранной библиотеки процедур AUTOSAR. Этот параметр позволяет вам выбрать замену и проверку валидации с фиксированной точкой (IFX) или с плавающей точкой (IFL).

Этот параметр отражает имя библиотеки замены кода AUTOSAR (CRL) стандартной программы используемой для замены кода, сгенерированного этим блоком. Соглашение об именовании включает целевую библиотеку процедур, метод интерполяции и тип блоков. Этот параметр предназначен только для ссылок и не должен редактироваться.

Спецификация таблицы

В списке выберите:

  • Table and breakpoints - Укажите данные таблицы и точки останова. Выбор этой опции включает следующие параметры:

    • Table data

    • Breakpoints specification

    • Breakpoints 1

    • Breakpoints 2

    • Edit table and breakpoints

  • Lookup table object - Использовать существующую интерполяционную таблицу (Simulink.LookupTable) объект. Выбор этой опции включает поле Name и кнопку Edit table and breakpoints.

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

Параметры блоков: DataSpecification
Тип: Вектор символов
Значения: 'Table and breakpoints' | 'Lookup table object'
По умолчанию: 'Table and breakpoints'

Введите имя интерполяционной таблицы (Simulink.LookupTable) объект.

Зависимости

Чтобы включить этот параметр, установите Data specification равным Lookup table object.

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

Параметры блоков: LookupTableObject
Тип: Вектор символов
Значения: имя Simulink.LookupTable объект
По умолчанию: ''

Введите таблицу выхода значений.

Во время симуляции размер матрицы должен быть двумерным. Однако во время редактирования блока схемы можно ввести пустую матрицу (заданную как []) или неопределенная переменная рабочей области. Этот метод позволяет отложить указание правильно измеренной матрицы для данных таблицы и продолжить редактирование блока.

Зависимости

Чтобы включить этот параметр, установите Data specification равным Table and breakpoints.

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

Параметры блоков: Table
Тип: Вектор символов
Значения: матрица значений таблицы
По умолчанию: '[4 5 6;16 19 20;10 18 23]'

Задайте, вводить ли данные как явные точки по оси Х или как параметры, которые генерируют равномерно расположенные точки по оси Х.

  • Чтобы явным образом задать данные точек по оси Х, установите этот параметр равным Explicit values и введите данные точек по оси Х в текстовое поле рядом с параметрами Breakpoints.

  • Чтобы задать параметры, которые генерируют равномерно расположенные точки останова, установите этот параметр равным Even spacing и введите значения параметров First point и Spacing для каждой размерности данных точек по оси Х. Блок вычисляет число точек для генерации из данных таблицы.

Зависимости

Чтобы включить этот параметр, установите Data specification равным Table and breakpoints.

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

Параметры блоков: BreakpointsSpecification
Тип: Вектор символов
Значения: 'Explicit values' | 'Even spacing'
По умолчанию: 'Explicit values'

Задайте данные точек по оси Х явно или как равномерно разнесенные точки Х на основе значения параметра 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 | BreakpointsForDimension2
Тип: Вектор символов
Значения: 1 на n или n на 1 вектор монотонно увеличивающихся значений
По умолчанию: '[10, 22, 31]'

Задайте первую точку в ваших равномерно разнесенных данных точек по оси Х как действительный, конечный или скаляр. Этот параметр доступен, когда вы устанавливаете Breakpoints specification на Even spacing.

Зависимости

Чтобы включить этот параметр, установите Data specification равным Table and breakpoints и Breakpoints specification к Even spacing.

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

Параметры блоков: BreakpointsForDimension1FirstPoint | BreakpointsForDimensionSecondPoint
Тип: Вектор символов
Значения: вещественное, конечное, скаляр
По умолчанию: '1'

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

Зависимости

Чтобы включить этот параметр, установите Data specification равным Table and breakpoints и Breakpoints specification к Even spacing.

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

Параметры блоков: BreakpointsForDimension1Spacing | BreakpointsForDimension2Spacing
Тип: Вектор символов
Значения: положительные, реальные, конечные, скалярные
По умолчанию: '1'

Нажмите эту кнопку, чтобы открыть редактор интерполяционных таблиц. Затем можно отредактировать объект и сохранить новые значения для объекта. Для получения дополнительной информации см. «Редактирование интерполяционных таблиц в Simulink» ® документация.

Алгоритм

Выберите 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'

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

Зависимости

Чтобы включить этот параметр, установите Index search method равным Linear search или Binary search.

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

Параметры блоков: BeginIndexSearchUsing PreviousIndexResult
Тип: Вектор символов
Значения: 'off' | 'on'
По умолчанию: 'off'

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

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

Параметры блоков: InterpMethod
Тип: Вектор символов
Значения: 'Linear point-slope' | 'Flat'
По умолчанию: 'Linear point-slope'

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

Эта опция не влияет на округление параметров блоков значений. Simulink округляет такие значения до ближайшего представимого целого значения. Чтобы контролировать округление параметров блоков, введите выражение с помощью MATLAB™ функции округления в поле редактирования в диалоговом окне блока.

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

Параметры блоков: RndMeth
Тип: Вектор символов
Значения: 'Round' | 'Zero'
По умолчанию: 'Round'

Типы данных

Задайте тип данных таблицы. Блок подтверждает, что выбранные типы совместимы с спецификацией целевой стандартной программы. Можно задать тип данных таблицы:

  • Правило, которое наследует тип данных, например 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'

Укажите тип данных для набора данных точек по оси Х. Можно задать тип данных точек по оси Х:

  • Правило, которое наследует тип данных, например 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'

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

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

.
Введенный в R2019a