n-D Lookup Table

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

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

    HDL Coder / Интерполяционные таблицы

  • n-D Lookup Table block

Описание

Поддерживаемые блочные операции

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

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

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

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

Смотрите Местоположение порта После Вращения или Зеркального отражения для описания порядка порта для различных ориентаций блока.

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

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

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

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

Совет

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

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

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

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

Другие Блоки, которые Выполняют Эквивалентные Операции

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

Когда операция поиска является доступом к массиву, который не требует интерполяции, использует блок Direct Lookup Table (n-D). Например, если у вас есть целочисленное значение k и вы хотите kэлемент th таблицы, 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-by-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-by-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-by-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 блок Lookup Table...
Совпадайте со значениями индексов в наборах данных точки остановаВыводит табличное значение на пересечении строки, столбца и более высоких точек останова размерности
Не совпадайте со значениями индексов в наборах данных точки останова, но в области значенийИнтерполирует соответствующие табличные значения, с помощью 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объект. Если 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-by-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-by-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≦f <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

  • Встроенные целочисленные типы: int8int16int32uint8uint16, и uint32

Примеры допустимых технических требований включают:

Зависимости

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

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

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

Типы данных

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

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

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

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

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

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

Совет

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

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

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

Совет

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

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

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

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

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

Совет

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

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

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

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

Параметры блоков: 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 Tool заменили типы данных, которые вы задаете на этом блоке. Для получения дополнительной информации смотрите Блокировку Установка Типа Выходных данных (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++ с помощью Simulink® Coder™.

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

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