Map

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

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

Описание

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

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

Если вы выбираете заменяющую библиотеку кода (CRL) AUTOSAR 4.0 для своей модели AUTOSAR, код, сгенерированный от этого блока, заменяется библиотечной подпрограммой 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

Вывод

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

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

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

Параметры

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

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

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

Табличная спецификация

Из списка выберите:

  • 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. Для каждой размерности задайте точки останова как или n-1 вектор 1 на n, значения которого строго монотонно увеличиваются.

  • Если вы устанавливаете 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) в 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'

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

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

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

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

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

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

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

Типы данных

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

  • Правило, которое наследовало тип данных, например, Inherit: Same as output

  • Имя встроенного типа данных, например, single

  • Имя объекта типа данных, например, Simulink.NumericType объект

  • Выражение, которое оценивает к типу данных, например, fixdt(1,16,0)

Нажмите кнопку Show data type assistant, чтобы отобразить Data Type Assistant, который помогает вам установить атрибуты типа данных. Для получения дополнительной информации смотрите, Задают Типы данных Используя Ассистент Типа данных (Simulink).

Совет

Задайте тип данных table, отличающийся от типа выходных данных в этих случаях:

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

  • Совместное использование предмасштабированных табличных данных между двумя блоками 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, который помогает вам установить атрибуты типа данных. Для получения дополнительной информации смотрите, Задают Типы данных Используя Ассистент Типа данных (Simulink).

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

Параметры блоков: 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++ с помощью Simulink® Coder™.

Введенный в R2019a