n-D Lookup Table

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

  • Библиотека:
  • Simulink/Интерполяционные таблицы

    HDL-кодер/интерполяционные таблицы

  • n-D Lookup Table block

Описание

Поддерживаемые Блоки операции

Блоки 1-D, 2-D и n-D Интерполяционная таблица оценивают выборочное представление функции в N переменных

y=F(x1,x2,x3,...,xN)

где функция F может быть эмпирической. Блок преобразует входы в выход значение путем просмотра или интерполяции таблицы значений, которые вы задаете с параметрами блоков. Блок поддерживает плоский (константа), линейный (линейная точка-наклон), Лагранж (линейная Лагранжа), ближайший, кубический-сплайн и Акима сплайна методы интерполяции. Можно применить эти методы к таблице любой размерности от 1 до 30.

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

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

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

Спецификация данных точек по оси Х и данных таблицы

Эти параметры блоков определяют данные точек по оси Х и данные таблицы.

Параметры блоковЦель
Number of table dimensions Задает количество размерностей в интерполяционной таблице.
Breakpoints Задает вектор точек по оси Х, который соответствует каждой размерности интерполяционной таблицы.
Table data Определяет связанный набор выхода значений.

Совет

Равномерно разнесенные точки останова могут сделать сгенерированный код разделенным. Для получения дополнительной информации см. fixpt_evenspace_cleanup и идентифицируйте сомнительные операции с фиксированной точкой (Embedded Coder).

Как блок генерирует выход

Блоки n-D, 1-D и двумерная интерполяционная таблица генерируют вывод, просматривая или оценивая значения таблицы на основе входных значений.

Блочные входыПоведение блоков интерполяционной таблицы n-D
Совпадайте со значениями индексов в наборах данных точек по оси ХВывод значения таблицы на пересечении строки, столбца и более высоких точек по размерности
Не совпадайте со значениями индексов в наборах данных точек по оси Х, но находитесь в области значенийИнтерполирует соответствующие значения таблицы с помощью выбранной Interpolation method
Не совпадайте со значениями индексов в наборах данных точек по оси Х и находятся вне области значенийЭкстраполирует значение выхода с помощью выбранной Extrapolation method

Другие блоки, которые выполняют эквивалентные операции

Можно использовать Interpolation Using Prelookup блок с Prelookup блоком, чтобы выполнить эквивалентную операцию одного блока n-D Lookup Table. Эта комбинация блоков предлагает большую гибкость, которая может привести к более эффективной эффективности симуляции для линейных интерполяций.

Когда операция поиска является доступом к массиву, который не требует интерполяции, используйте блок Direct Lookup Table (n-D). Для примера, если у вас есть целое число значения k и вы хотите kпервый элемент массива таблицы, y = table(k), интерполяция не нужна.

Порты

Вход

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

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

Пример: 0:10

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

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

Пример: 0:10

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

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

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

Зависимости

Чтобы включить этот порт, установите:

  • Data specification с Table and breakpoints.

  • Table data с Input port.

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

Задайте данные точек по оси Х явно, основываясь на значении параметра Breakpoints specification, с сигналом, который настраивается во время выполнения

  • Если вы задаете Breakpoints specification Explicit valuesвведите набор точек по оси Х, который соответствует каждой размерности данных таблицы в каждой Breakpoints строке. Для каждой размерности задайте точки останова как вектор 1 на n или n на 1, значения которого строго монотонно увеличиваются.

Можно создать до трех входных портов данных точек по оси Х. Для точек прерывания с 4 по 30 можно задать данные точек прерывания только через соответствующий параметр Breakpoints.

Примечание

Чтобы задать точки прерывания в формате спецификаций с четными интервалами, установите Breakpoints specification равным Even spacing и используйте параметры Breakpoints First точки и Spacing.

Зависимости

Чтобы включить этот порт, установите:

  • Data specification с Table and breakpoints.

  • Breakpoints specification с Explicit values.

  • Breakpoints 1 с Input port.

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

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

  • Если вы задаете Breakpoints specification Explicit valuesвведите набор точек по оси Х, который соответствует каждой размерности данных таблицы в каждой Breakpoints строке. Для каждой размерности задайте точки останова как вектор 1 на n или n на 1, значения которого строго монотонно увеличиваются.

Можно создать до трех входных портов данных точек по оси Х. Для точек прерывания с 4 по 30 можно задать данные точек прерывания только через соответствующий параметр Breakpoints.

Примечание

Чтобы задать равномерно расположенные данные точек по оси Х, используйте параметр Breakpoints. Вы не можете задать равномерно расположенные данные точек по оси Х через вход порт.

Зависимости

Чтобы включить этот порт, установите:

  • Data specification с Table and breakpoints.

  • Breakpoints specification с Explicit values.

  • Breakpoints 2 с Input port.

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

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

  • Если вы задаете Breakpoints specification Explicit valuesвведите набор точек по оси Х, который соответствует каждой размерности данных таблицы в каждой Breakpoints строке. Для каждой размерности задайте точки останова как вектор 1 на n или n на 1, значения которого строго монотонно увеличиваются.

Можно создать до трех входных портов данных точек по оси Х. Для точек прерывания с 4 по 30 можно задать данные точек прерывания только через соответствующий параметр Breakpoints.

Примечание

Чтобы задать равномерно расположенные данные точек по оси Х, используйте параметр Breakpoints. Вы не можете задать равномерно расположенные данные точек по оси Х через вход порт.

Зависимости

Чтобы включить этот порт, установите:

  • Data specification с Table and breakpoints.

  • Breakpoints specification с Explicit values.

  • Breakpoints 3 с Input port.

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

Выход

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

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

Когда блок вводит...Блок Интерполяционная таблица n-D...
Совпадайте со значениями индексов в наборах данных точек по оси ХВывод значения таблицы на пересечении строки, столбца и более высоких точек по размерности
Не совпадайте со значениями индексов в наборах данных точек по оси Х, но находитесь в области значенийИнтерполирует соответствующие значения таблицы с помощью выбранной Interpolation method
Не совпадайте со значениями индексов в наборах данных точек по оси Х и находятся вне области значенийЭкстраполирует значение выхода с помощью выбранной Extrapolation method

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

Параметры

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

Таблица и точки по оси Х

Введите количество размерностей интерполяционной таблицы. Этот параметр определяет:

  • Количество независимых переменных для таблицы и количество входов блоков

  • Количество заданных наборов точек по оси Х

ЗначениеНастройка

1, 2, 3 или 4

Выберите значение из раскрывающегося списка.

Большее количество размерностей таблицы

Введите положительное целое число непосредственно в поле.

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

Например, таблица с размером M x N x... означает, что размер размерности 1 M, размер размерности 2 N и т.д. M должны совпадать с длиной первой точки прерывания, N должны совпадать с длиной второй точки прерывания и т.д.

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

Параметры блоков: NumberOfTableDimensions
Тип: Вектор символов
Значения: '1' | '2' | '3' | '4' | ... | 30
По умолчанию: '3'

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

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

    • Table data

    • Breakpoints specification

    • Breakpoints 1

    • Breakpoints 2

    • Breakpoints 3

    • Edit table and breakpoints

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

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

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

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

Введите имя интерполяционной таблицы (Simulink.LookupTable) объект. Если a Simulink.LookupTable объект не существует, нажмите кнопку действия и выберите Create. Соответствующие параметры объекта новой интерполяционной таблицы автоматически заполняются информацией о блоках.

Зависимости

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

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

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

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

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

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

Зависимости

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

  • Когда этот параметр установлен в Even spacingможно задавать данные точек по оси Х только в диалоговом окне.

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

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

Укажите источник таблицы и данные точек по оси Х как:

  • Dialog - Задайте данные таблицы или точки по оси Х в Value параметре.

  • Input port - Задайте данные таблицы или точки по оси Х через связанный входной порт.

    Можно создать до трех входных портов данных точек по оси Х. Для точек прерывания с 4 по 30 можно задать данные точек прерывания только через соответствующий параметр Breakpoints.

Примечание

Использование порта входа для задания данных таблицы или точек по оси Х может негативно повлиять на эффективность блоков для симуляции из-за проверок во время выполнения.

Зависимости

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

  • Чтобы включить связанный Value, установите этот параметр равным Dialog.

  • Чтобы включить связанный входной порт, установите этот параметр равным Input port.

  • Установка этого параметра на Input port отключает поле Value и скрывает соответствующий параметр на вкладке Data Types.

  • Установка этого параметра на Input port для любого из параметров отключает кнопку Edit Table and Breakpoints.

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

Параметры блоков: TableSource | BreakpointsForDimension1Source | BreakpointsForDimension2Source | BreakpointsForDimension3Source
Тип: Вектор символов
Значения: Dialog | Input port
По умолчанию: 'Dialog'

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

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

Зависимости

Чтобы включить этот параметр, установите:

  • Data specification с Table and breakpoints.

  • Table data: Source с Dialog.

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

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

Задайте данные точек по оси Х явно или как равномерно разнесенные точки Х на основе значения параметра Breakpoints specification.

  • Если вы задаете Breakpoints specification Explicit valuesвведите набор точек по оси Х, который соответствует каждой размерности данных таблицы в каждой Breakpoints строке связанного поля Value. Для каждой размерности задайте точки останова как вектор 1 на n или n на 1, значения которого строго монотонно увеличиваются.

  • Если вы задаете Breakpoints specification Even spacingвведите First point и Spacing параметров в каждой строке Breakpoints, чтобы сгенерировать равномерно разнесенные точки останова в соответствующей размерности. Данные таблицы определяют количество равномерно разнесенных точек.

Зависимости

  • Чтобы включить этот параметр, установите:

    • Data specification с Table and breakpoints.

    • Table data: Source с Dialog.

  • Когда параметр Breakpoints specification установлен в Even spacingможно задавать данные точек по оси Х только в диалоговом окне.

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

Параметры блоков: BreakpointsForDimension1 | BreakpointsForDimension2 | ... | BreakpointsForDimension30 |
Тип: Вектор символов
Значения: 1 на n или n на 1 вектор монотонно увеличивающихся значений
По умолчанию: '[10, 22, 31]'

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

Зависимости

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

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

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

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

Зависимости

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

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

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

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

Нажатие этой кнопки для объекта интерполяционной таблицы позволяет вам отредактировать объект и сохранить новые значения для объекта.

Алгоритм

Метод поиска

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

Зависимости

  • Если вы выбираете Cubic splineблок поддерживает только скалярные сигналы. Другие методы интерполяции поддерживают нескалярные сигналы.

  • Если вы выбираете Akima splineметод экстраполяции может быть только Akima spline.

    Когда задан метод изменённой Интерполяции Акима, этот блок не поддерживает:

    • Размещение массива с основной строкой и алгоритмы, оптимизированные для размещения массива с основной строкой

    • Масштабированные типы данных с двойной и фиксированной точками

    • Simulink.LookupTable объекты

    • Генерация кода, когда установлен флажок Code Generation > Interface > Support non-finite numbers параметра конфигурации

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

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

Выберите Clip, Linear, или Cubic spline. Для получения дополнительной информации см. раздел Методы экстраполяции.

Если метод экстраполяции Linearзначение экстраполяции вычисляется на основе выбранного метода линейной интерполяции. Для примера, если метод интерполяции является линейным Лагранжем, метод экстраполяции наследует линейное уравнение Лагранжа, чтобы вычислить экстраполированное значение.

Зависимости

  • Выбор Cubic spline для Extrapolation method необходимо также выбрать Cubic spline для Interpolation method.

  • Выбор Akima spline для Extrapolation method необходимо также выбрать Akima spline для Interpolation method.

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

Параметры блоков: ExtrapMethod
Тип: Вектор символов
Значения: 'Linear' | 'Clip' | 'Cubic spline' | 'Akima spline'
По умолчанию: 'Linear'

Выберите Evenly spaced points, Linear search, или Binary search. Каждый метод поиска имеет преимущества скорости в разных обстоятельствах:

  • Для равномерно разнесенных наборов точек по оси Х (для примера, 10, 20, 30 и так далее) вы достигаете оптимальной скорости, выбирая Evenly spaced points для вычисления индексов таблицы.

    Этот алгоритм использует только первые две точки прерывания множества, чтобы определить смещение и интервалы между остальными точками.

    Примечание

    Установите Index search method значение Evenly spaced points при использовании Simulink.LookupTable объект для задания таблицы данных и параметра Breakpoints Specification ссылочного Simulink.LookupTable для объекта задано значение Even spacing.

  • Для неравномерно расположенных наборов точек по оси Х следуйте следующим рекомендациям:

    • Если входные сигналы не сильно варьируются между временными шагами, выбор Linear search с Begin index search using previous index result обеспечивает лучшую эффективность.

    • Если входные сигналы перехода более одного или две таблицы интервалов на временной шаг, выбор Binary search обеспечивает лучшую эффективность.

Неоптимальный выбор метода поиска по индексу может привести к медленной эффективности моделей, которые полагаются в большой степени на интерполяционные таблицы.

Примечание

Сгенерированный код хранит только первую точку останова, интервалы и количество точек останова, когда:

  • Данные точек по оси Х не настраиваются.

  • Метод поиска по индексу Evenly spaced points.

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

Параметры блоков: IndexSearchMethod
Тип: Вектор символов
Значения: 'Binary search' | 'Evenly spaced points' | 'Linear search'
По умолчанию: 'Binary search'

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

Зависимости

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

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

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

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

  • None - Нет ответа.

  • Warning - Отобразите предупреждение и продолжите симуляцию.

  • Error - Завершите симуляцию и отобразите ошибку.

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

Параметры блоков: DiagnosticForOutOfRangeInput
Тип: Вектор символов
Значения: 'None' | 'Warning' | 'Error'
По умолчанию: 'None'

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

Зависимости

Чтобы включить этот параметр, установите:

  • Number of table dimensions с 1.

  • Interpolation method с Linear point-slope.

  • Extrapolation method с Clip.

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

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

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

ФлажокИндекс, используемый блокомИнтервальная дробь
Отобранный Последний элемент данных точек по оси Х на вкладке Table and Breakpoints 0
Очищенный Следующий к последнему элементу данных точек по оси Х на вкладке Table and Breakpoints 1

Учитывая входное u в области значений bp набора точек прерывания, f интервальной дроби в области 0≦<reservedrangesplaceholder0><1 вычисляется как показано ниже.

Предположим, что набор точек по оси Х [1 4 5] и входной u 5.5. Если вы устанавливаете этот флажок, индекс является индексом последнего элемента (5) и интервал фракция равен 0. Если вы снимаете этот флажок, индекс является индексом следующего элемента (4) и интервал фракция равен 1.

Зависимости

Чтобы включить этот параметр, установите:

  • Interpolation method с Linear.

  • Extrapolation method с Clip.

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

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

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

Примечание

При установке этого флажка один входной порт с меткой u появляется на блоке.

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

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

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

ФлажокРезультатКогда использовать

on

Сгенерированный код не включает условные операторы для проверки входных входов точек прерывания вне области допустимого.

Когда вход находится вне области допустимого, это может вызвать неопределенное поведение сгенерированного кода.

Для эффективности кода

off

Сгенерированный код включает условные операторы для проверки входных входов вне области допустимого.

Для критически важных приложений

Если ваш вход не находится вне области значений, можно установить флажок Remove protection against out-of-range index in generated code для эффективности кода. По умолчанию этот флажок снимается. Для критически важных приложений не устанавливайте этот флажок. Если вы хотите установить флажок Remove protection against out-of-range index in generated code, сначала проверьте, что входы вашей модели находятся в области значений. Для примера:

  1. Снимите флажок Remove protection against out-of-range index in generated code.

  2. Установите параметр Diagnostic for out-of-range input равным Error.

  3. Симулируйте модель в режим normal mode.

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

  5. Когда симуляция больше не генерирует входные ошибки вне области допустимого, установите флажок Remove protection against out-of-range index in generated code.

    Примечание

    Когда вы устанавливаете флажок Remove protection against out-of-range index in generated code, и вход находится вне области значений, поведение для сгенерированного кода не определено.

В зависимости от вашего приложения, можно запустить следующие проверки Model Advisor, чтобы проверить использование этого флажка:

  • By Product> Embedded Coder> Identify lookup table blocks that generate expensive out-of-range checking code

  • By Product> Simulink Check> Modeling Standards> DO-178C/DO-331 Checks> Check usage of lookup table blocks

Дополнительные сведения о Model Advisor см. в разделе Запуск проверок Model Advisor.

Кроме того, чтобы определить, безопасно ли устанавливать этот флажок, если у вас есть лицензия Simulink Design Verifier™, рассмотрите использование проверки Обнаружить нарушения входной области значений блоков (Simulink Design Verifier).

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

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

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

Зависимости

Если вы задаете Interpolation method Cubic splineЭтот флажок недоступен.

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

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

Задайте шаг расчета как значение, отличное от -1. Для получения дополнительной информации см. Раздел «Задание шага расчета».

Зависимости

Этот параметр не отображается, если он явно не установлен на значение, отличное от -1. Для получения дополнительной информации смотрите Блоки, для которых шаг расчета не рекомендован.

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

Параметры блоков: SampleTime
Тип: Вектор символов
Значения: скаляр или вектор
По умолчанию: '-1'

Пример: [4 6] для таблицы 5 на 7

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

  • Встроенные типы с плавающей точкой: double и single

  • Встроенные целые типы: int8, int16, int32, uint8, uint16, и uint32

Примеры действительных спецификаций включают:

Зависимости

Чтобы включить этот параметр, выберите Support tunable table size in code generation. При настройке этого параметра в сгенерированном коде сообщите новые данные таблицы и точки останова вместе с настроенными значениями параметров.

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

Параметры блоков: MaximumIndicesForEachDimension
Тип: Вектор символов
Значения: скаляр или вектор положительных целых значений
По умолчанию: '[]'

Типы данных

Задайте тип данных таблицы. Вы можете установить его на:

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

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

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

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

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

Совет

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

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

  • Совместное использование предварительных данных таблицы между двумя блоками n-D Lookup Table с различными типами выходных данных

  • Совместное использование пользовательских данных таблицы хранения в сгенерированном коде для блоков с различными типами выходных данных

Зависимости

Чтобы включить этот параметр, установите Table data с вкладки Table and Breakpoints на Dialog.

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

Параметры блоков: TableDataTypeStr
Тип: Вектор символов
Значения: 'Inherit: Inherit from 'Table data'' | 'Inherit: Same as output' | 'double' | 'single' | 'half' | 'int8' | 'uint8' | 'int16' | 'uint16' | 'int32' | 'uint32' | 'int64' | 'uint64' | 'fixdt(1,16)' | 'fixdt(1,16,0)' | 'fixdt(1,16,2^0,0)'|'<data type expression>'
По умолчанию: 'Inherit: Same as output'

Задайте минимальное значение для данных таблицы. Значение по умолчанию [] (не определено).

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

Параметры блоков: TableMin
Тип: Вектор символов
Значения: скаляр
По умолчанию: '[]'

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

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

Параметры блоков: TableMax
Тип: Вектор символов
Значения: скаляр
По умолчанию: '[]'

Укажите тип данных для набора данных точек по оси Х. Вы можете установить его на:

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

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

  • Имя класса типа данных, например, класса перечисленных типов данных

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

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

Совет

  • Точки останова поддерживают неупорядоченные перечисленные данные. В результате линейный поиск также не упорядочен, что обеспечивает гибкость, но может повлиять на эффективность. Поиск начинается с первого элемента точки останова.

  • Если установлен флажок Begin index search using previous index result, необходимо использовать упорядоченные монотонно увеличивающиеся данные. Это упорядоченное расположение повышает эффективность.

  • Для перечисленных данных Extrapolation method должны быть Clip.

  • Блок не поддерживает входной параметр вне области допустимого для перечисленных данных. При указании перечисленных данных включите весь набор перечислений в набор данных точек по оси Х. Для примера используйте enumeration функция.

Это ограничение для использования перечисленных данных с этим блоком:

  • Блок не поддерживает входной параметр вне области допустимого для перечисленных данных. При указании перечисленных данных включите весь набор перечислений в набор данных точек по оси Х. Для примера используйте enumeration функция.

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

Совет

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

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

  • Совместное использование предварительных данных точек по оси Х между двумя блоками n-D Lookup Table с различными типами входных данных

  • Совместное использование пользовательских данных точек по оси Х в сгенерированном коде для блоков с различными типами входных данных

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

Зависимости

Чтобы включить этот параметр, установите соответствующий параметр Breakpoints с вкладки Table and Breakpoints равным Dialog.

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

Параметры блоков: BreakpointsForDimension1DataTypeStr | BreakpointsForDimension2DataTypeStr| ... | BreakpointsForDimension30DataTypeStr
Тип: Вектор символов
Значения: 'Inherit: Same as corresponding input' | 'Inherit: Inherit from 'Breakpoint data'' | 'double' | 'single' | 'half' | 'int8' | 'uint8' | 'int16' | 'uint16' | 'int32' | 'uint32' | 'int64' | 'uint64' | 'fixdt(1,16)' | 'fixdt(1,16,0)' | 'fixdt(1,16,2^0,0)'|'<data type expression>'
По умолчанию: 'Inherit: Same as corresponding input'

Задайте минимальное значение, которое может иметь набор данных точек по оси Х. Значение по умолчанию [] (не определено).

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

Параметры блоков: BreakpointsForDimension1Min | BreakpointsForDimension2Min | ... | BreakpointsForDimension30Min
Тип: Вектор символов
Значения: скаляр
По умолчанию: '[]'

Задайте максимальное значение, которое может иметь набор данных точек по оси Х. Значение по умолчанию [] (не определено).

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

Параметры блоков: BreakpointsForDimension1Max | BreakpointsForDimension2Max | ... | BreakpointsForDimension30Max
Тип: Вектор символов
Значения: скаляр
По умолчанию: '[]'

Задайте тип данных дроби. Вы можете установить его на:

  • Правило, которое наследует тип данных, например Inherit: Inherit via internal rule

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

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

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

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

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

Параметры блоков: FractionDataTypeStr
Тип: Вектор символов
Значения: 'Inherit: Inherit via internal rule' | 'double' | 'single' | 'fixdt(1,16,0)'|'<data type expression>'
По умолчанию: 'Inherit: Inherit via internal rule'

Задайте промежуточный тип данных результатов. Вы можете установить его на:

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

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

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

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

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

Совет

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

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

Параметры блоков: IntermediateResultsDataTypeStr
Тип: Вектор символов
Значения: 'Inherit: Inherit via internal rule' | 'Inherit: Same as output' | 'double' | 'single' | 'int8' | 'uint8' | 'int16' | 'uint16' | 'int32' | 'uint32' | 'int64' | 'uint64' | 'fixdt(1,16,0)' | 'fixdt(1,16,2^0,0)'|'<data type expression>'
По умолчанию: 'Inherit: Same as output'

Задайте тип выходных данных. Вы можете установить его на:

  • Правило, которое наследует тип данных, например Inherit: Inherit via back propagation

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

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

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

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

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

Параметры блоков: OutDataTypeStr
Тип: Вектор символов
Значения: 'Inherit: Inherit via back propagation' | 'Inherit: Inherit from table data' | 'Inherit: Same as first input' | 'double' | 'single' | 'half' | 'int8' | 'uint8' | 'int16' | 'uint16' | 'int32' | 'uint32' | 'int64' | 'uint64' | 'fixdt(1,16,0)' | 'fixdt(1,16,2^0,0)'|'<data type expression'
По умолчанию: 'Inherit: Same as first input'

Задайте минимальное значение, которое выводит блок. Значение по умолчанию [] (не определено). Программное обеспечение Simulink использует это значение для выполнения:

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

Параметры блоков: OutMin
Тип: Вектор символов
Значения: скаляр
По умолчанию: '[]'

Задайте максимальное значение, которое может вывести блок. Значение по умолчанию [] (не определено). Программное обеспечение Simulink использует это значение для выполнения:

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

Параметры блоков: OutMax
Тип: Вектор символов
Значения: скаляр
По умолчанию: '[]'

Задайте внутреннее правило для промежуточных вычислений. Выберите Speed для более быстрых вычислений. Если это так, может произойти потеря точности, обычно до 2 бит.

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

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

Выберите, чтобы все входы имели совпадающий тип данных.

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

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

Выберите этот параметр, чтобы предотвратить переопределение инструментами с фиксированной точкой типов данных, заданных в этом блоке. Для получения дополнительной информации смотрите Блокировка настройки типа выходных данных (Fixed-Point Designer).

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

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

Задайте режим округления для вычислений интерполяционной таблицы с фиксированной точкой, которые происходят во время симуляции или выполнения кода, сгенерированного из модели. Для получения дополнительной информации см. раздел Округление (Fixed-Point Designer).

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

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

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

ДействиеПричины для принятия этого действияЧто происходит для переполненийПример

Установите этот флажок (on).

Ваша модель имеет возможное переполнение, и вы хотите явную защиту от насыщения в сгенерированном коде.

Переполнения достигает минимального или максимального значения, которое может представлять тип данных.

Переполнение, сопоставленное с 8-битным целым числом со знаком, может насыщаться до -128 или 127.

Не устанавливайте этот флажок (off).

Вы хотите оптимизировать эффективность вашего сгенерированного кода.

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

Переполнения переходят к соответствующему значению, которое представимо типом данных.

Число 130 не помещается в знаковое 8-битное целое число и оборачивается к -126.

Совет

Если вы сохраняете модель как версию R2009a или ранее, эта установка флажка не имеет эффекта, и код насыщения не отображается. Это поведение сохраняет обратную совместимость.

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

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

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

Характеристики блоков

Типы данных

double | enumerated | fixed point | half | integer | single

Прямое сквозное соединение

yes

Многомерные сигналы

yes

Сигналы переменного размера

no

Обнаружение пересечения нулем

no

Подробнее о

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

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

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

..

Преобразование с фиксированной точкой
Разрабатывайте и моделируйте системы с фиксированной точкой с помощью Fixed-Point Designer™.

Введенный в R2011a
Для просмотра документации необходимо авторизоваться на сайте