Аппроксимация одномерной функции
Таблицы Simulink/Lookup
Таблицы кодера/поиска HDL
Блоки 1-D, 2-D и n-D Lookup Table оценивают выборочное представление функции в N переменных
x1,x2,x3,...,xN)
где функция F может быть эмпирической. Блок отображает входные данные на выходное значение путем просмотра или интерполяции таблицы значений, определенных с помощью параметров блока. Блок поддерживает плоский (постоянный), линейный (линейный точечный наклон), лагранж (линейный лагранж), ближайший, кубический сплайн и методы интерполяции сплайнов Акимы. Эти методы можно применить к таблице любого размера от 1 до 30.
В следующем блоке первый вход идентифицирует точки останова первого размера (строки), второй вход идентифицирует точки останова второго размера (столбца) и т.д.

Описание порядка расположения портов для различных ориентаций блоков см. в разделе Расположение портов после поворота или разворота.
При установке параметра конфигурации Math and Data Types > Use algoriths optimized for row-major array layout (Математические типы и типы данных > Использовать алгоритмы, оптимизированные для конфигурационного параметра компоновки массива типа «главная строка») поведение блока 2-D и n-D Lookup Table изменяется с column-major на row-major. Для этих блоков алгоритмы «большой столбец» и «большая строка» могут отличаться в порядке выходных вычислений, что может привести к несколько различным числовым значениям. Для этой возможности требуется лицензия Simulink ® Coder™ или Embedded Coder ®. Дополнительные сведения о поддержке основных строк см. в разделе Создание кода матриц и массивов (Simulink Coder ).
Эти параметры блока определяют точку останова и данные таблицы.
| Параметр блока | Цель |
|---|---|
| Количество табличных измерений | Указывает количество размеров таблицы подстановки. |
| Контрольные точки | Задает вектор точки останова, соответствующий каждому измерению таблицы подстановки. |
| Данные таблицы | Определяет связанный набор выходных значений. |
Совет
Равномерно расположенные точки останова могут сделать сгенерированный код свободным от деления. Дополнительные сведения см. в разделе fixpt_evenspace_cleanup и определение сомнительных операций с фиксированной точкой (встроенный кодер).
N-D, 1-D и 2-D блоки таблицы поиска генерируют выходные данные путем поиска или оценки значений таблицы на основе входных значений.
| Входы блоков | Поведение блока таблицы поиска n-D |
|---|---|
| Сопоставление значений индексов в наборах данных точек останова | Вывод значения таблицы на пересечении контрольных точек строки, столбца и более высокого размера |
| Не соответствуют значениям индексов в наборах данных точек останова, но находятся в пределах диапазона | Интерполяция соответствующих значений таблицы с помощью выбранного метода интерполяции |
| Не соответствуют значениям индексов в наборах данных точек останова и находятся вне диапазона | Экстраполяция выходного значения с помощью выбранного метода экстраполяции |
Для выполнения эквивалентной операции одного n-D блока таблицы подстановки можно использовать блок «Интерполяция с использованием Prelookup» с блоком «Prelookup». Эта комбинация блоков обеспечивает большую гибкость, что может привести к более эффективной производительности моделирования для линейных интерполяций.
Если операция поиска представляет собой доступ к массиву, не требующий интерполяции, используйте блок «Таблица прямого поиска» (n-D). Например, если имеется целое значение k и вы хотите, чтобы kтретий элемент таблицы, y = table(k)интерполяция не нужна.
u1 - Входы первого размера (строки)Действительные входы в порт u1, отображаемые на выходное значение путем просмотра или интерполяции определяемой таблицы значений.
Пример: 0:10
Типы данных: half | single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | enumerated | fixed point
T - Определение таблицы выходных значенийУкажите таблицу выходных значений с сигналом, который можно настроить во время выполнения.
Во время моделирования размер матрицы должен соответствовать размерам, определенным параметром Number of table dimensions. Однако во время редактирования блок-схемы можно ввести пустую матрицу (указанную как []) или неопределенной переменной рабочей области. Этот метод позволяет отложить задание правильно рассчитанной матрицы для данных таблицы и продолжить редактирование блок-схемы.
Чтобы включить этот порт, установите:
Спецификация данных для Table and breakpoints.
Данные таблицы в Input port.
Типы данных: half | single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | fixed point
bp1 - Явные значения точек остановаЯвно укажите данные точки останова на основе значения параметра спецификации Точки останова с сигналом, который можно настроить во время выполнения.
Если для спецификации точек останова задано значение Explicit values, введите набор точек останова, соответствующий каждому измерению данных таблицы в каждой строке точек останова. Для каждого размера укажите точки останова как вектор 1 на n или n на 1, значения которого строго монотонно увеличиваются.
Примечание
Чтобы указать точки останова в формате спецификации четного интервала, задайте для параметра Спецификация точек останова значение Even spacing и используйте параметры Breakpoints First point (первая точка останова) и Spacing (интервал).
Чтобы включить этот порт, установите:
Спецификация данных для Table and breakpoints.
Спецификация точек останова для Explicit values.
Точки останова от 1 до Input port.
Типы данных: half | single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | enumerated | fixed point
Port_1 - Вывод, вычисленный путем просмотра или оценки значений таблицыВывод, генерируемый путем поиска или оценки значений таблицы на основе входных значений.
| Когда блок входов... | Блок n-D таблицы подстановки... |
|---|---|
| Сопоставление значений индексов в наборах данных точек останова | Вывод значения таблицы на пересечении контрольных точек строки, столбца и более высокого размера |
| Не соответствуют значениям индексов в наборах данных точек останова, но находятся в пределах диапазона | Интерполяция соответствующих значений таблицы с помощью выбранного метода интерполяции |
| Не соответствуют значениям индексов в наборах данных точек останова и находятся вне диапазона | Экстраполяция выходного значения с помощью выбранного метода экстраполяции |
Типы данных: half | single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | fixed point
Number of table dimensions - Количество измерений таблицы подстановки1 (по умолчанию) | 2 | 3 | 4 | ... | 30Введите количество измерений таблицы подстановки. Этот параметр определяет:
Количество независимых переменных для таблицы и количество входов блоков
Количество наборов точек останова для указания
| Чтобы указать... | Сделай это... |
|---|---|
|
1, 2, 3 или 4 |
Выберите значение из раскрывающегося списка. |
|
Большее количество табличных измерений |
Введите положительное целое число непосредственно в поле. Максимальное количество табличных размеров, поддерживаемых данным блоком, составляет 30. |
Например, таблица размером M x N x... означает, что размер 1 равен М, размер 2 равен N и т.д. M должна соответствовать первой длине точки останова, N - второй длине точки останова и т.д.
Параметр блока:
NumberOfTableDimensions |
| Текст: символьный вектор |
Значения:
'1' | '2' | '3' | '4' | ... | 30 |
По умолчанию:
'1' |
Data specification - Метод спецификации таблицы и точки остановаTable and breakpoints (по умолчанию) | Lookup table objectВ списке выберите:
Table and breakpoints - Укажите данные таблицы и точки останова. При выборе этой опции включаются следующие параметры:
Данные таблицы
Спецификация точек останова
Точки останова 1
Изменение таблицы и точек останова
Чтобы указать таблицу и точки останова с помощью входных портов, см. параметр Source.
Lookup table object - использовать существующую таблицу подстановки (Simulink.LookupTable) объект. При выборе этой опции активируются поле Имя и кнопка Редактировать таблицу и точки останова.
Параметр блока:
DataSpecification |
| Текст: символьный вектор |
Значения:
'Table and breakpoints' | 'Lookup table object' |
По умолчанию:
'Table and breakpoints' |
Name - Имя объекта таблицы подстановки[] (по умолчанию) | Simulink.LookupTable объектВведите имя таблицы подстановки (Simulink.LookupTable) объект. Если Simulink.LookupTable объект не существует, нажмите кнопку действия
и выберите Создать. Соответствующие параметры нового объекта таблицы подстановки автоматически заполняются информацией о блоке.
Чтобы включить этот параметр, установите в поле Спецификация данных значение Lookup table object.
Параметр блока:
LookupTableObject |
| Текст: символьный вектор |
Значения: имя Simulink.LookupTable объект |
По умолчанию:
'' |
Breakpoints specification - Метод определения точки остановаExplicit values (по умолчанию) | Even spacingУкажите, следует ли вводить данные как явные точки останова или как параметры, создающие равномерно расположенные точки останова.
Чтобы явно указать данные точки останова, задайте для этого параметра значение Explicit values и введите данные точек останова в текстовое поле рядом с параметрами точек останова.
Чтобы задать параметры, создающие равномерно расположенные точки останова, задайте для этого параметра значение Even spacing и введите значения параметров Первая точка (First point) и Интервал (Spacing) для каждого размера данных точки останова. Блок вычисляет количество точек для генерации на основе данных таблицы.
Чтобы включить этот параметр, установите в поле Спецификация данных значение Table and breakpoints.
Параметр блока:
BreakpointsSpecification |
| Текст: символьный вектор |
Значения:
'Explicit values' | 'Even spacing' |
По умолчанию:
'Explicit values' |
Source - Источник данных таблицы и точки остановаDialog (по умолчанию) | Input portИсточник данных таблицы и точек останова, указанных как:
Dialog - Укажите данные таблицы или точки останова в параметре Value.
Input port - Укажите данные таблицы или точки останова через соответствующий входной порт.
Можно создать до трех портов ввода данных точек останова. Для точек останова 4-30 можно указать данные точек останова только через соответствующий параметр Точки останова.
Примечание
Использование входного порта для указания данных таблицы или точки останова может негативно повлиять на производительность блока при моделировании из-за проверок во время выполнения.
Чтобы включить этот параметр, установите в поле Спецификация данных значение Table and breakpoints.
Чтобы включить связанное значение, установите для этого параметра значение Dialog.
Чтобы включить соответствующий входной порт, установите для этого параметра значение Input port.
Установка для этого параметра значения Input port отключает поле Значение и скрывает соответствующий параметр на вкладке Типы данных.
Установка для этого параметра значения Input port для любого из параметров отключает кнопку Edit Table и Breakpoints.
Параметр блока:
TableSource | BreakpointsForDimension1Source | BreakpointsForDimension2Source | BreakpointsForDimension3Source
|
| Текст: символьный вектор |
Значения:
Dialog | Input port |
По умолчанию:
'Dialog' |
Table data - Определение таблицы выходных значенийtanh([-5:5]) (по умолчанию) | вектор значений Введите таблицу выходных значений в соответствующее поле Значение.
Во время моделирования размер матрицы должен соответствовать размерам, определенным параметром Number of table dimensions. Однако во время редактирования блок-схемы можно ввести пустую матрицу (указанную как []) или неопределенной переменной рабочей области. Этот метод позволяет отложить задание правильно рассчитанной матрицы для данных таблицы и продолжить редактирование блок-схемы.
Чтобы включить этот параметр, установите:
Спецификация данных для Table and breakpoints.
Данные таблицы: Источник в Dialog.
Параметр блока:
Table |
| Текст: символьный вектор |
| Значения: вектор значений таблицы |
По умолчанию:
'tanh([-5:5])' |
Breakpoints - Явные значения точек останова или первая точка и интервал между точками останова[-5:5] (по умолчанию) | 1-на-n или n-на-1 вектор монотонно возрастающих значенийУкажите данные точек останова в явном виде или в виде равномерно распределенных точек останова на основе значения параметра спецификации точек останова.
Если для спецификации точек останова задано значение Explicit values, введите набор точек останова, соответствующий каждому измерению данных таблицы в каждой строке точек останова. Для каждого размера укажите точки останова как вектор 1 на n или n на 1, значения которого строго монотонно увеличиваются.
Если для спецификации точек останова задано значение Even spacingвведите параметры Первая точка (First point) и Интервал (Spacing) в каждой строке Точки останова (Breakpoints), чтобы создать равномерно расположенные точки останова в соответствующем размере. Табличные данные определяют количество равномерно разнесенных точек.
Чтобы включить этот параметр, установите:
Спецификация данных для Table and breakpoints.
Данные таблицы: Источник в Dialog.
Если для параметра спецификации точек останова установлено значение Even spacing, данные точек останова можно указать только в диалоговом окне.
Параметр блока:
BreakpointsForDimension1 |
| Текст: символьный вектор |
| Значения: 1 на n или n на 1 вектор монотонно возрастающих значений |
По умолчанию:
'[10, 22, 31]' |
First point - Первая точка в равномерно разнесенных данных точек останова1 (по умолчанию) | скалярУкажите первую точку в равномерно разнесенных данных точек останова как действительный, конечный, скаляр. Этот параметр доступен, если для спецификации точек останова установлено значение Even spacing.
Чтобы включить этот параметр, установите в поле Спецификация данных значение Table and breakpointsи спецификация точек останова для Even spacing.
Параметр блока:
BreakpointsForDimension1FirstPoint |
| Текст: символьный вектор |
| Значения: вещественные, конечные, скалярные |
По умолчанию:
'1' |
Spacing - Интервал между равномерно расположенными точками останова1 (по умолчанию) | скалярУкажите интервал между точками в равномерно разнесенных данных точек останова.
Чтобы включить этот параметр, установите в поле Спецификация данных значение Table and breakpointsи спецификация точек останова для Even spacing.
Параметр блока:
BreakpointsForDimension1Spacing |
| Текст: символьный вектор |
| Значения: положительные, вещественные, конечные, скалярные |
По умолчанию:
'1' |
Edit table and breakpoints - диалоговое окно «Запуск редактора таблиц подстановки»Нажмите эту кнопку, чтобы открыть редактор таблиц подстановки. Дополнительные сведения см. в разделе Правка таблиц подстановки в документации Simulink.
Нажатие этой кнопки для объекта таблицы подстановки позволяет редактировать объект и сохранять новые значения для объекта.
Interpolation method - Метод интерполяции между значениями точек остановаLinear point-slope (по умолчанию) | Flat | Nearest | Linear Lagrange | Cubic spline | Akima splineКогда входной сигнал попадает между значениями точек останова, блок интерполирует выходное значение с использованием соседних точек останова. Дополнительные сведения о методах интерполяции см. в разделе Методы интерполяции.
При выборе 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' |
Extrapolation method - Метод обработки входных значений, выходящих за пределы диапазона набора данных точек остановаLinear (по умолчанию) | Clip | Cubic spline | Akima splineВыбрать Clip, Linear, или Cubic spline. Дополнительные сведения см. в разделе Методы экстраполяции.
Если метод экстраполяции Linearзначение экстраполяции вычисляется на основе выбранного метода линейной интерполяции. Например, если метод интерполяции является линейным методом Лагранжа, метод экстраполяции наследует линейное уравнение Лагранжа для вычисления экстраполированного значения.
Выбрать Cubic spline для метода экстраполяции необходимо также выбрать Cubic spline для метода интерполяции.
Выбрать Akima spline для метода экстраполяции необходимо также выбрать Akima spline для метода интерполяции.
Параметр блока: ExtrapMethod |
| Текст: символьный вектор |
Значения:
'Linear' | 'Clip' | 'Cubic spline' | 'Akima spline' |
По умолчанию: 'Linear' |
Index search method - Метод расчета табличных индексовEvenly spaced points (по умолчанию) | Linear search | Binary searchВыбрать Evenly spaced points, Linear search, или Binary search. Каждый метод поиска имеет преимущества скорости в различных обстоятельствах:
Для равномерно распределенных наборов точек останова (например, 10, 20, 30 и т.д.) оптимальная скорость достигается путем выбора Evenly spaced points для вычисления табличных индексов.
Этот алгоритм использует только первые две точки останова набора для определения смещения и интервала между остальными точками.
Примечание
Задать для метода поиска Index значение Evenly spaced points при использовании Simulink.LookupTable для указания табличных данных и параметра спецификации точек останова ссылочного объекта Simulink.LookupTable объект имеет значение Even spacing.
Для наборов точек останова с неравномерным интервалом следуйте следующим инструкциям.
Если входные сигналы не сильно изменяются между временными шагами, выберите Linear search с началом поиска индекса с использованием предыдущего результата индекса обеспечивает наилучшую производительность.
Если входные сигналы пересекают более одного или двух табличных интервалов за шаг времени, выберите Binary search обеспечивает наилучшую производительность.
Неоптимальный выбор метода индексного поиска может привести к снижению производительности моделей, которые в значительной степени зависят от таблиц поиска.
Примечание
Созданный код сохраняет только первую точку останова, интервал и количество точек останова, если:
Невозможно настроить данные точки останова.
Метод поиска индекса: Evenly spaced points.
Параметр блока: IndexSearchMethod |
| Текст: символьный вектор |
Значения: 'Binary search' | 'Evenly spaced points' | 'Linear search' |
По умолчанию: 'Binary search' |
Begin index search using previous index result - начать использовать индекс с предыдущего шага времени;off (по умолчанию) | onУстановите этот флажок, если требуется, чтобы блок начал поиск по индексу, найденному на предыдущем шаге времени. Для вводов, которые медленно изменяются относительно размера интервала, включение этой опции может повысить производительность. В противном случае линейный и двоичный методы поиска могут занять больше времени, особенно для больших наборов точек останова.
Чтобы включить этот параметр, задайте для метода поиска Index значение Linear search или Binary search.
Параметр блока: BeginIndexSearchUsing PreviousIndexResult |
| Текст: символьный вектор |
Значения: 'off' | 'on' |
По умолчанию: 'off' |
Diagnostic for out-of-range input - Блокировать действие, когда входной сигнал выходит за пределы диапазонаNone (по умолчанию) | Warning | ErrorУкажите, следует ли выводить предупреждение или ошибку, если входные данные выходят за пределы допустимого диапазона. Варианты включают в себя:
None - Нет ответа.
Warning - Вывод предупреждения и продолжение моделирования.
Error - завершение моделирования и отображение ошибки.
Параметр блока: DiagnosticForOutOfRangeInput |
| Текст: символьный вектор |
Значения: 'None' | 'Warning' | 'Error' |
По умолчанию: 'None' |
Apply full precision fixed-point algorithm when possible - Более точный поиск в таблице с фиксированной точкойoff (по умолчанию) | onЭтот флажок используется для включения поиска алгоритма с фиксированной точкой полной точности для поиска линейной интерполяции, когда это возможно. Этот алгоритм обычно достигает лучшей точности для аппаратных эффективных режимов округления с фиксированной точкой.
Чтобы включить этот параметр, установите:
Количество табличных измерений для 1.
Метод интерполяции для Linear point-slope.
Метод экстраполяции в Clip.
Параметр блока:
ApplyFullPrecisionForLinearInterpolation |
| Текст: символьный вектор |
Значения:
'off' | 'on' |
По умолчанию:
'off' |
Use last table value for inputs at or above last breakpoint - Метод вычисления выходных данных для входов в последней точке останова или вышеoff (по умолчанию) | onС помощью этого флажка укажите соглашение об индексировании, используемое блоком для обращения к последнему элементу набора точек останова и соответствующему ему значению таблицы. Этот флажок является релевантным, если входные данные равны или превышают последний элемент данных точки останова. Из-за округления установка и снятие этого флажка может привести к различным результатам для последней точки останова между моделированием и генерацией кода.
| Флажок | Индекс, используемый блоком | Доля интервала |
|---|---|---|
| Отобранный | Последний элемент данных точек останова на вкладке Table and Breakpoints | 0 |
| Очищенный | Следующий-последний элемент данных точек останова на вкладке Таблица и Точки останова | 1 |
При условии, что вход u находится в пределах диапазона набора точек останова bp, доля интервала f в диапазоне 0≦f<1 вычисляется, как показано ниже.

Предположим, что набор точек останова равен [1 4 5] и вход u = 5.5. Если этот флажок установлен, индекс является индексом последнего элемента (5) и фракция интервала равна 0. Если снять этот флажок, индекс будет индексом следующего-последнего элемента (4) и фракция интервала равна 1.
Чтобы включить этот параметр, установите:
Метод интерполяции для Linear.
Метод экстраполяции в Clip.
Параметр блока: UseLastTableValue |
| Текст: символьный вектор |
Значения: 'off' | 'on' |
По умолчанию: 'off' |
Use one input port for all input data - Использовать только один входной портoff (по умолчанию) | onУстановите этот флажок, чтобы использовать только один входной порт, который ожидает сигнал, который n элементы, широкие для n-мерной таблицы. Этот параметр полезен для удаления загромождения строк на блок-схеме с множеством таблиц поиска.
Примечание
Если этот флажок установлен, один входной порт с меткой u появляется на блоке.
Параметр блока:
UseOneInputPortForAllInputData |
| Текст: символьный вектор |
Значения:
'off' | 'on' |
По умолчанию:
'off' |
Remove protection against out-of-range input in generated code - Удалить код, проверяющий входные значения вне допустимого диапазонаoff (по умолчанию) | onУкажите, следует ли включать код, который проверяет входные значения вне диапазона.
| Флажок | Результат | Когда использовать |
|---|---|---|
|
| Созданный код не включает условные операторы для проверки входов точек останова вне диапазона. Если входные данные находятся вне допустимого диапазона, это может привести к неопределенному поведению сгенерированного кода. |
Для эффективности кода |
|
|
Созданный код включает условные операторы для проверки входов вне диапазона. |
Для критически важных для безопасности приложений |
Если введенные данные находятся вне диапазона, можно установить флажок Удалить защиту от индекса вне диапазона в сгенерированном коде для обеспечения эффективности кода. По умолчанию этот флажок снят. Для критически важных для безопасности приложений не устанавливайте этот флажок. Если необходимо установить флажок Удалить защиту от индекса вне диапазона в сгенерированном коде, сначала проверьте, что входные данные модели находятся в диапазоне. Например:
Снимите флажок Удалить защиту от индекса вне диапазона в сгенерированном коде.
Установите для входного параметра Diagnostic for out-of-range значение Error.
Моделирование модели в обычном режиме.
Если имеются ошибки вне диапазона, исправьте их, чтобы они находились в диапазоне, и запустите моделирование снова.
Если моделирование больше не создает ошибки ввода вне диапазона, установите флажок Удалить защиту от индекса вне диапазона в сгенерированном коде.
Примечание
Если установлен флажок Удалить защиту от индекса вне диапазона в сгенерированном коде, а входные данные находятся вне диапазона, поведение сгенерированного кода не определено.
В зависимости от приложения можно выполнить следующие проверки Model Advisor для проверки использования этого флажка.
По продукту > Embedded Coder > Определение блоков таблицы поиска, которые создают дорогостоящий код проверки за пределами диапазона
По продукту > Simulink Check > Modeling Standards > DO-178C/DO-331 Checks > Проверка использования блоков таблицы подстановки
Дополнительные сведения о модуле Model Advisor см. в разделе Выполнение проверок модуля Model Advisor.
Кроме того, чтобы определить, безопасно ли устанавливать этот флажок, если у вас есть лицензия Simulink Design Verifier™, попробуйте использовать проверку обнаружения нарушений диапазона ввода блоков (Simulink Design Verifier).
Параметр блока:
RemoveProtectionInput |
| Текст: символьный вектор |
Значения:
'off' | 'on' |
По умолчанию:
'off' |
Support tunable table size in code generation - Включить настраиваемый размер таблицы в созданном кодеoff (по умолчанию) | onУстановите этот флажок, чтобы включить настраиваемый размер таблицы в созданном коде. Этот параметр позволяет изменять размер и значения таблицы подстановки и данных точек останова в сгенерированном коде без регенерации или повторной компиляции кода. Можно только уменьшить размер таблицы подстановки и данных точек останова.
Если для метода интерполяции задано значение Cubic spline, этот флажок недоступен.
Параметр блока:
SupportTunableTableSize |
| Текст: символьный вектор |
Значения:
'off' | 'on' |
По умолчанию:
'off' |
Sample time - Укажите время выборки в качестве значения, отличного от -1-1 (по умолчанию) | скаляр | векторУкажите время выборки в качестве значения, отличного от -1. Дополнительные сведения см. в разделе Указание времени образца.
Этот параметр не отображается, если для него явно не задано значение, отличное от -1. Дополнительные сведения см. в разделе Блоки, для которых образец времени не рекомендуется.
Параметр блока:
SampleTime |
| Текст: символьный вектор |
| Значения: скаляр или вектор |
По умолчанию:
'-1' |
Maximum indices for each dimension - Максимальное значение индекса для каждого измерения таблицы[] (по умолчанию) | scalar or vector of positive integer valuesПример: [4 6] для таблицы 5 на 7
Укажите максимальные значения индекса для каждого измерения таблицы с помощью индексирования на основе нуля. Можно задать скаляр или вектор положительных целых значений, используя следующие типы данных:
Встроенные типы с плавающей запятой: double и single
Встроенные целочисленные типы: int8, int16, int32, uint8, uint16, и uint32
Примеры действительных спецификаций:
[4 6] для таблицы 5 на 7
[int8(2) int16(5) int32(9)] для таблицы 3 на 6 на 10
A Simulink.Parameter значение которого при формировании кода на единицу меньше размеров табличных данных. Дополнительные сведения см. в разделе Размер настраиваемой таблицы в сгенерированном коде.
Чтобы включить этот параметр, выберите Поддерживать настраиваемый размер таблицы при создании кода. При настройке этого параметра в сгенерированном коде введите новые данные таблицы и точки останова вместе со значением настроенного параметра.
Параметр блока:
MaximumIndicesForEachDimension |
| Текст: символьный вектор |
| Значения: скаляр или вектор положительных целых значений |
По умолчанию:
'[]' |
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
Имя встроенного типа данных, например: single
Имя объекта типа данных, например, Simulink.NumericType объект
Выражение, которое вычисляет тип данных, например: fixdt(1,16,0)
Нажмите кнопку Показать помощник по типам данных
, чтобы отобразить помощник по типам данных, который помогает задать атрибуты типов данных. Дополнительные сведения см. в разделе Определение типов данных с помощью помощника по типам данных.
Совет
Укажите тип данных таблицы, отличный от типа выходных данных для следующих случаев:
Меньшие требования к памяти для хранения табличных данных, использующих меньший тип, чем выходной сигнал
Совместное использование предписанных данных таблицы между двумя n-D блоками таблицы поиска с различными типами выходных данных
Совместное использование пользовательских данных таблицы хранения в созданном коде для блоков с различными типами выходных данных
Чтобы включить этот параметр, установите для параметра 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' |
Table data Minimum - Минимальное значение данных таблицы[] | scalarУкажите минимальное значение для данных таблицы. Значение по умолчанию: [] (не указано).
Параметр блока: TableMin |
| Текст: символьный вектор |
| Значения: скаляр |
По умолчанию: '[]' |
Table data Maximum - Максимальное значение данных таблицы[] | scalarУкажите максимальное значение для данных таблицы. Значение по умолчанию: [] (не указано).
Параметр блока: TableMax |
| Текст: символьный вектор |
| Значения: скаляр |
По умолчанию: '[]' |
Breakpoints - Тип данных точки остановаInherit: Same as corresponding input (по умолчанию) | double | single | half | int8 | uint8 | int16 | uint16 | int32 | uint32 | int64 | uint64 | fixdt(1,16) | fixdt(1,16,0) | fixdt(1,16,2^0,0) | Enum: <class name> | <data type expression>Укажите тип данных для набора данных точек останова. Можно установить для него значение:
Правило, наследующее тип данных, например: Inherit: Same as corresponding input
Имя встроенного типа данных, например: single
Имя класса типа данных, например перечисляемого класса типа данных
Имя объекта типа данных, например, Simulink.NumericType объект
Выражение, которое вычисляет тип данных, например: fixdt(1,16,0)
Совет
Точки останова поддерживают неупорядоченные перечисляемые данные. В результате линейный поиск также не упорядочен, что обеспечивает гибкость, но может повлиять на производительность. Поиск начинается с первого элемента в точке останова.
Если установлен флажок Начать поиск индекса с использованием предыдущего результата индекса, необходимо использовать упорядоченные монотонно увеличивающиеся данные. Этот заказ повышает производительность.
Для перечисляемых данных метод экстраполяции должен быть Clip.
Блок не поддерживает вход за пределы диапазона для перечисляемых данных. При указании перечисляемых данных следует включить весь набор перечислений в набор данных точек останова. Например, используйте enumeration функция.
Это ограничение для использования перечисляемых данных с этим блоком:
Блок не поддерживает вход за пределы диапазона для перечисляемых данных. При указании перечисляемых данных следует включить весь набор перечислений в набор данных точек останова. Например, используйте enumeration функция.
Нажмите кнопку Показать помощник по типам данных
, чтобы отобразить помощник по типам данных, который помогает задать атрибуты типов данных. Дополнительные сведения см. в разделе Определение типов данных с помощью помощника по типам данных.
Совет
Укажите тип данных точки останова, отличный от соответствующего типа входных данных для следующих случаев:
Меньшие требования к памяти для хранения данных точек останова, использующих меньший тип, чем входной сигнал
Совместное использование предписанных данных точек останова между двумя n-D блоками таблицы поиска с различными типами входных данных
Совместное использование пользовательских данных точек останова хранилища в созданном коде для блоков с различными типами входных данных
Укажите один и тот же наклон и смещение для типа данных точки останова и соответствующего ему типа входных данных, если любой из них имеет тип данных с фиксированной точкой.
Чтобы включить этот параметр, установите соответствующий параметр 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' |
Breakpoints Minimum - Минимальное значение данных точки останова может иметь[] | scalarУкажите минимальное значение, которое может иметь набор данных точек останова. Значение по умолчанию: [] (не указано).
Параметр блока: BreakpointsForDimension1Min | BreakpointsForDimension2Min | ... | BreakpointsForDimension30Min |
| Текст: символьный вектор |
| Значения: скаляр |
По умолчанию: '[]' |
Breakpoints Maximum - Максимальное значение данных точки останова может иметь[] | scalarУкажите максимальное значение, которое может иметь набор данных точек останова. Значение по умолчанию: [] (не указано).
Параметр блока: BreakpointsForDimension1Max | BreakpointsForDimension2Max | ... | BreakpointsForDimension30Max |
| Текст: символьный вектор |
| Значения: скаляр |
По умолчанию: '[]' |
Fraction - Тип данных фракцииInherit: Inherit via internal rule (по умолчанию) | double | single | fixdt(1,16,0) | <data type expression>Укажите тип данных дроби. Можно установить для него значение:
Правило, наследующее тип данных, например: Inherit: Inherit via internal rule
Имя встроенного типа данных, например: single
Имя объекта типа данных, например, Simulink.NumericType объект
Выражение, которое вычисляет тип данных, например: fixdt(1,16,0)
Нажмите кнопку Показать помощник по типам данных
, чтобы отобразить помощник по типам данных, который помогает задать атрибуты типов данных. Дополнительные сведения см. в разделе Определение типов данных с помощью помощника по типам данных.
Параметр блока: FractionDataTypeStr |
| Текст: символьный вектор |
Значения:
'Inherit: Inherit via internal rule' | 'double' | 'single' | 'fixdt(1,16,0)'|'<data type expression>' |
По умолчанию: 'Inherit: Inherit via internal rule' |
Intermediate results - Тип данных промежуточных результатов Inherit: Same as output (по умолчанию) | Inherit: Inherit via internal rule | 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
Имя встроенного типа данных, например: single
Имя объекта типа данных, например, Simulink.NumericType объект
Выражение, которое вычисляет тип данных, например: fixdt(1,16,0)
Нажмите кнопку Показать помощник по типам данных
, чтобы отобразить помощник по типам данных, который помогает задать атрибуты типов данных. Дополнительные сведения см. в разделе Определение типов данных с помощью помощника по типам данных.
Совет
Этот параметр используется для указания более высокой (или более низкой) точности внутренних вычислений, чем для табличных данных или выходных данных.
Параметр блока: 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' |
Output - Тип выходных данныхInherit: Same as input (по умолчанию) | 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: Inherit via back propagation
Имя встроенного типа данных, например: single
Имя объекта типа данных, например, Simulink.NumericType объект
Выражение, которое вычисляет тип данных, например: fixdt(1,16,0)
Нажмите кнопку Показать помощник по типам данных
, чтобы отобразить помощник по типам данных, который помогает задать атрибуты типов данных. Дополнительные сведения см. в разделе Определение типов данных с помощью помощника по типам данных.
Параметр блока: 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' |
Output Minimum - Минимальное значение, которое может вывести блок [] | scalarУкажите минимальное значение, выводимое блоком. Значение по умолчанию: [] (не указано). Программное обеспечение Simulink использует это значение для выполнения следующих действий:
Проверка диапазона параметров (см. раздел Задание минимального и максимального значений для параметров блока).
Проверка диапазона моделирования (см. раздел Определение диапазонов сигналов).
Автоматическое масштабирование типов данных с фиксированной точкой.
Оптимизация кода, создаваемого на основе модели. Эта оптимизация может удалить алгоритмический код и повлиять на результаты некоторых режимов моделирования, таких как SIL или внешний режим.
Параметр блока: OutMin |
| Текст: символьный вектор |
| Значения: скаляр |
По умолчанию: '[]' |
Output Maximum - Максимальное значение, которое может вывести блок[] | scalarУкажите максимальное значение, которое может выводиться блоком. Значение по умолчанию: [] (не указано). Программное обеспечение Simulink использует это значение для выполнения следующих действий:
Проверка диапазона параметров (см. раздел Задание минимального и максимального значений для параметров блока).
Проверка диапазона моделирования (см. раздел Определение диапазонов сигналов).
Автоматическое масштабирование типов данных с фиксированной точкой.
Оптимизация кода, создаваемого на основе модели. Эта оптимизация может удалить алгоритмический код и повлиять на результаты некоторых режимов моделирования, таких как SIL или внешний режим.
Параметр блока: OutMax |
| Текст: символьный вектор |
| Значения: скаляр |
По умолчанию: '[]' |
Internal rule priority - Внутреннее правило для промежуточных расчетовSpeed (по умолчанию) | PrecisionУкажите внутреннее правило для промежуточных расчетов. Выбрать Speed для более быстрых вычислений. В этом случае может произойти потеря точности, обычно до 2 бит.
Параметр блока: InternalRulePriority |
| Текст: символьный вектор |
Значения: 'Speed' | 'Precision' |
По умолчанию: 'Speed' |
Require all inputs to have the same data type - Требовать, чтобы все входные данные имели одинаковый тип данныхon (по умолчанию) | offВыберите, чтобы все входные данные имели одинаковый тип данных.
Параметр блока: InputSameDT |
| Текст: символьный вектор |
Значения: 'off' | 'on' |
По умолчанию: 'on' |
Lock data type settings against changes by the fixed-point tools - Предотвращение переопределения типов данных инструментами с фиксированной точкойoff (по умолчанию) | onВыберите этот параметр, чтобы инструменты с фиксированной точкой не переопределяли типы данных, заданные в этом блоке. Дополнительные сведения см. в разделе Блокировка параметров типа выходных данных (конструктор фиксированных точек).
Параметр блока: LockScale |
| Текст: символьный вектор |
Значения: 'off' | 'on' |
По умолчанию: 'off' |
Integer rounding mode - Режим округления для операций с фиксированной точкойSimplest (по умолчанию) | Ceiling | Convergent | Floor | Nearest | Round | ZeroУкажите режим округления для вычислений таблицы поиска с фиксированной точкой, которые происходят во время моделирования или выполнения кода, созданного из модели. Дополнительные сведения см. в разделе Округление (конструктор фиксированных точек).
Эта опция не влияет на округление значений параметров блока. Simulink округляет такие значения до ближайшего представимого целого значения. Для управления округлением параметра блока введите выражение с помощью функции округления MATLAB ® в поле редактирования в диалоговом окне блока.
Параметр блока: RndMeth |
| Текст: символьный вектор |
Значения: 'Ceiling' | 'Convergent' | 'Floor' | 'Nearest' | 'Round' | 'Simplest' | 'Zero' |
По умолчанию: 'Simplest' |
Saturate on integer overflow - Метод действия переполненияoff (по умолчанию) | on| Действие | Причины принятия этого решения | Что происходит при переполнении | Пример |
|---|---|---|---|
Установите этот флажок ( | Модель может переполняться, и в создаваемом коде требуется явная защита от насыщения. | Переполнения насыщаются минимальным или максимальным значением, которое может представлять тип данных. | Переполнение, связанное со значащим 8-битным целым числом, может насытиться до -128 или 127. |
Не устанавливайте этот флажок ( | Требуется оптимизировать эффективность созданного кода. Необходимо избегать чрезмерного указания того, как блок обрабатывает сигналы вне диапазона. Дополнительные сведения см. в разделе Устранение ошибок диапазона сигналов. | Переполнение до соответствующего значения, представляемого типом данных. | Число 130 не помещается в знаковое 8-битовое целое число и переносится в -126. |
Совет
При сохранении модели как версии R2009a или более ранней этот флажок не действует, и код насыщения не отображается. Такое поведение сохраняет обратную совместимость.
Если этот флажок установлен, насыщение применяется ко всем внутренним операциям блока, а не только к выводу или результату. В общем, процесс генерации кода может обнаруживать, когда переполнение невозможно. В этом случае генератор кода не создает код насыщения.
Параметр блока: SaturateOnIntegerOverflow |
| Текст: символьный вектор |
Значения: 'off' | 'on' |
По умолчанию: 'off' |
Типы данных |
|
Прямой проход |
|
Многомерные сигналы |
|
Сигналы переменного размера |
|
Обнаружение пересечения нулей |
|
Предположим, что у вас есть таблица подстановки и вы хотите сделать размер настраиваемым в созданном коде. При использовании Simulink.LookupTable и Simulink.Breakpoint для настройки данных таблицы поиска для калибровки в сгенерированном коде используйте SupportTunableSize для включения настраиваемого размера таблицы. Если эти классы не используются, используйте параметр Support tunable table size in code generation в блоке n-D Lookup Table, чтобы включить настраиваемый размер таблицы.
Предположим, что:
Вы определяете Simulink.Parameter структура в функции предварительной нагрузки модели:
p = Simulink.Parameter; p.Value.MaxIdx = [2 2]; p.Value.BP1 = [1 2 3]; p.Value.BP2 = [1 4 16]; p.Value.Table = [4 5 6; 16 19 20; 10 18 23]; p.DataType = 'Bus: slLookupTable'; p.CoderInfo.StorageClass = 'ExportedGlobal'; % Create bus object slBus1 from MATLAB structure Simulink.Bus.createObject(p.Value); slLookupTable = slBus1; slLookupTable.Elements(1).DataType = 'uint32';
Эти параметры блока применяются в блоке n-D Lookup Table.
| Параметр | Стоимость |
|---|---|
| Количество табличных измерений | 2 |
| Данные таблицы | p.Table |
| Точки останова 1 | p.BP1 |
| Точки останова 2 | p.BP2 |
| Поддержка настраиваемого размера таблицы при создании кода | on |
| Максимальные индексы для каждого измерения | p.MaxIdx |
Произведенный файл заголовка содержит определение типа, которое выглядит примерно так.model_types.h
typedef struct {
uint32_T MaxIdx[2];
real_T BP1[3];
real_T BP2[3];
real_T Table[9];
} slLookupTable;
Произведенный содержит код, который выглядит примерно так.model.c
/* Exported block parameters */
slLookupTable p = {
{ 2U, 2U },
{ 1.0, 2.0, 3.0 },
{ 1.0, 4.0, 16.0 },
{ 4.0, 16.0, 10.0, 5.0, 19.0, 18.0, 6.0, 20.0, 23.0 }
} ;
/* More code */
/* Model output function */
static void ex_lut_nd_tunable_table_output(int_T tid)
{
/* Lookup_n-D: '<Root>/n-D Lookup Table' incorporates:
* Inport: '<Root>/In1'
* Inport: '<Root>/In2'
*/
Y = look2_binlcpw(U1, U2, p.BP1, p.BP2, p.Table, ...
p.MaxIdx, p.MaxIdx[0] + 1U);
/* Outport: '<Root>/Out1' */
ex_lut_nd_tunable_table_Y.Out1 = Y;
/* tid is required for a uniform function interface.
* Argument tid is not used in the function. */
UNUSED_PARAMETER(tid);
}
Выделенная строка кода указывает настраиваемый размер таблицы подстановки. Можно изменить размер и значения таблицы подстановки и данных точек останова без регенерации или повторной компиляции кода.
Предположим, что определена таблица подстановки с перечисляемым классом:
classdef(Enumeration) Gears < Simulink.IntEnumType
enumeration
GEAR1(1),
GEAR2(2),
GEAR3(4),
GEAR4(8),
SPORTS(16),
REVERSE(-1),
NEUTRAL(0)
end
end
n-D блок подстановки имеет следующие параметры:
Количество размеров для 1.
Значение табличных данных: [5 10 20 40 80 -5 0].
Значение точек останова 1 enumeration('Gears').
Метод интерполяции Плоский (Flat).
Для неупорядоченного поиска задайте для параметра Метод индексного поиска значение Linear search и снимите флажок Начать индексный поиск с использованием предыдущего индексного результата.
Моделирование создает вектор [10 -5 80], которые соответствуют GEAR2, REVERSE, и SPORTS.

HDL Coder™ предоставляет дополнительные опции конфигурации, которые влияют на реализацию HDL и синтезированную логику. Для получения информации о поддержке генерации объектного кода HDL 1-D блоков Справочной таблицы см. Генерацию объектного кода HDL.
Таблица прямого поиска (n-D) | Интерполяция с использованием Prelookup | Динамическая таблица подстановки | Предварительный поиск | Simulink.Breakpoint | Simulink.LookupTable
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.

