Аппроксимируйте двумерную функцию
Simulink / Интерполяционные таблицы
HDL Coder / Интерполяционные таблицы
1D, 2D, и n-D блоки Интерполяционной таблицы оценивают выбранное представление функции в переменных N
где функциональный 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 и 2D блоки Интерполяционной таблицы генерируют выведенный путем поиска или оценки табличных значений на основе входных значений.
Когда блок вводит... | n-D блок Lookup Table... |
---|---|
Совпадайте со значениями индексов в наборах данных точки останова | Выводит табличное значение на пересечении строки, столбца и более высоких точек останова размерности |
Не совпадайте со значениями индексов в наборах данных точки останова, но в области значений | Интерполирует соответствующие табличные значения, с помощью Interpolation method, который вы выбираете |
Не совпадайте со значениями индексов в наборах данных точки останова, и вне области значений | Экстраполирует выходное значение, с помощью Extrapolation method, который вы выбираете |
Можно использовать блок Interpolation Using Prelookup с блоком Prelookup, чтобы выполнить эквивалентную операцию одного n-D блока Lookup Table. Эта комбинация блоков предлагает большую гибкость, которая может привести к более эффективной производительности симуляции для линейных интерполяций.
Когда операция поиска является доступом к массиву, который не требует интерполяции, использует Прямую Интерполяционную таблицу (n-D) блок. Например, если у вас есть целочисленное значение k
, и вы хотите k
th элемент таблицы, y = table(k)
, интерполяция является ненужной.
u1
— Первая размерность (строка) входные параметрыВходные параметры с действительным знаком к порту u1, сопоставленному с выходным значением путем поиска или интерполяции таблицы значений, которые вы задаете.
Пример: 0:10
Типы данных: single
| double
| int8
| int16
| int32
| uint8
| uint16
| uint32
| fixed point
u2
— Второе измерение (столбец) входные параметрыВходные параметры с действительным знаком к порту u2, сопоставленному с выходным значением путем поиска или интерполяции таблицы значений, которые вы задаете.
Пример: 0:10
Типы данных: single
| double
| int8
| int16
| int32
| uint8
| uint16
| uint32
| fixed point
Port_1
— Выведите вычисленный путем поиска или оценки табличных значенийВыведите сгенерированный путем поиска или оценки табличных значений на основе входных значений.
Когда блок вводит... | n-D блок Lookup Table... |
---|---|
Совпадайте со значениями индексов в наборах данных точки останова | Выводит табличное значение на пересечении строки, столбца и более высоких точек останова размерности |
Не совпадайте со значениями индексов в наборах данных точки останова, но в области значений | Интерполирует соответствующие табличные значения, с помощью Interpolation method, который вы выбираете |
Не совпадайте со значениями индексов в наборах данных точки останова, и вне области значений | Экстраполирует выходное значение, с помощью Extrapolation method, который вы выбираете |
Типы данных: single
| double
| int8
| int16
| int32
| uint8
| uint16
| uint32
| fixed point
Number of table dimensions
— Количество размерностей интерполяционной таблицы2
(значение по умолчанию) | 1
| 3
| 4
| ...
| 30
Введите номер размерностей интерполяционной таблицы. Этот параметр определяет:
Количество независимых переменных для таблицы и количество входных параметров блока
Количество наборов точки останова, чтобы задать
Задавать... | Сделайте это... |
---|---|
1, 2, 3, или 4 |
Выберите значение из выпадающего списка. |
Более высокое количество табличных размерностей |
Введите положительное целое число непосредственно в поле. Максимальное количество табличных размерностей, которые поддерживает этот блок, равняется 30. |
Параметры блоков:
NumberOfTableDimensions |
Ввод: символьный вектор |
Значения:
'1' | '2' | '3' | '4' | ... | 30 |
Значение по умолчанию:
'2' |
Data specification
— Метод таблицы и спецификации точки остановаTable and breakpoints
(значение по умолчанию) | Lookup table object
Из списка выберите:
Table and breakpoints
— Задайте табличные данные и точки останова. Выбор этой опции включает эти параметры:
Table data
Breakpoints specification
Breakpoints 1
Breakpoints 2
Edit table and breakpoints
Lookup table object
— Используйте существующий объект (Simulink.LookupTable
) интерполяционной таблицы. Выбор этой опции включает поле Name и кнопку Edit table and breakpoints.
Параметры блоков:
DataSpecification |
Ввод: символьный вектор |
Значения:
'Table and breakpoints' | 'Lookup table object' |
Значение по умолчанию:
'Table and breakpoints' |
Имя
Имя объекта интерполяционной таблицы[]
(значение по умолчанию) | объект Simulink.LookupTable
Введите имя объекта (Simulink.LookupTable
) интерполяционной таблицы. Если объект Simulink.LookupTable
не существует, кликните по кнопке действий и выберите Create. Соответствующие параметры нового объекта интерполяционной таблицы автоматически заполняются с информацией о блоке.
Чтобы включить этот параметр, установите Data specification на Lookup table object
.
Параметры блоков:
LookupTableObject |
Ввод: символьный вектор |
Значения: имя объекта Simulink.LookupTable |
Значение по умолчанию:
'' |
Табличные данные
Задайте таблицу выходных значений[4 5 6; 16 19 20; 10 18 23]
(значение по умолчанию) | матрица значений Введите таблицу выходных значений.
Во время симуляции матричный размер должен совпадать с размерностями, заданными параметром Number of table dimensions. Однако во время редактирования блок-схемы, можно ввести пустую матрицу (заданный как []
) или неопределенная переменная рабочей области. Этот метод позволяет вам отложить задавать правильно определенную размеры матрицу для табличных данных и продолжать редактировать блок-схему.
Чтобы включить этот параметр, установите Data specification на Table and breakpoints
.
Параметры блоков:
Table |
Ввод: символьный вектор |
Значения: матрица табличных значений |
Значение по умолчанию:
'[4 5 6; 16 19 20; 10 18 23]' |
Breakpoints specification
— Метод спецификации точки остановаExplicit values
(значение по умолчанию) | Even spacing
Задайте, ввести ли данные как явные точки останова или как параметры, которые генерируют равномерно распределенные точки останова.
Чтобы явным образом задать данные о точке останова, установите этот параметр на Explicit values
и введите данные о точке останова в текстовое поле рядом с параметрами Breakpoints.
Чтобы задать параметры, которые генерируют равномерно распределенные точки останова, установите этот параметр на Even spacing
и введите значения для First point и параметры Spacing для каждой размерности данных о точке останова. Блок вычисляет число точек, чтобы сгенерировать от табличных данных.
Чтобы включить этот параметр, установите Data specification на Table and breakpoints
.
Параметры блоков:
BreakpointsSpecification |
Ввод: символьный вектор |
Значения:
'Explicit values' | 'Even spacing' |
Значение по умолчанию:
'Explicit values' |
Breakpoints
— Явные значения точки останова, или сначала указывают и интервал точек останова[1:3]
(значение по умолчанию) | 1 на n или n-1 вектор монотонно увеличения значенийЗадайте данные о точке останова явным образом или как равномерно распределенные точки останова, на основе значения параметра Breakpoints specification.
Если вы устанавливаете Breakpoints specification на Explicit values
, введите набор точки останова, который соответствует каждой размерности табличных данных в каждой строке Breakpoints. Для каждой размерности задайте точки останова как или n-1 вектор 1 на n, значения которого строго монотонно увеличиваются.
Если вы устанавливаете Breakpoints specification на Even spacing
, введите параметры First point и Spacing в каждой строке Breakpoints, чтобы сгенерировать равномерно распределенные точки останова в соответствующей размерности. Ваши табличные данные определяют количество равномерно расположенных с интервалами точек.
Чтобы включить этот параметр, установите Data specification на Table and breakpoints
.
Параметры блоков:
BreakpointsForDimension1 |
Ввод: символьный вектор |
Значения: 1 на n или вектор n-1 монотонно увеличения значений |
Значение по умолчанию:
'[1:3]' |
First point
— Сначала укажите в равномерно расположенных с интервалами данных о точке останова1
(значение по умолчанию) | скалярЗадайте первую точку в своих равномерно расположенных с интервалами данных о точке останова как с действительным знаком, конечное, скалярное. Этот параметр доступен, когда Breakpoints specification установлен в Even spacing
.
Чтобы включить этот параметр, установите Data specification на Table and breakpoints
и Breakpoints specification к Even spacing
.
Параметры блоков:
BreakpointsForDimension1FirstPoint | BreakpointsForDimension2FirstPoint |
Ввод: символьный вектор |
Значения: с действительным знаком, конечный, скалярный |
Значение по умолчанию:
'1' |
Spacing
— Разрядка между равномерно расположенными с интервалами точками останова1
(значение по умолчанию) | скалярЗадайте интервал между точками в ваших равномерно распределенных данных о точке останова.
Чтобы включить этот параметр, установите Data specification на Table and breakpoints
и Breakpoints specification к Even spacing
.
Параметры блоков:
BreakpointsForDimension1Spacing | BreakpointsForDimension2Spacing |
Ввод: символьный вектор |
Значения: положительный, с действительным знаком, конечный, скалярный |
Значение по умолчанию:
'1' |
Edit table and breakpoints
— Launch Lookup Table EditorНажмите эту кнопку, чтобы открыть Редактор Интерполяционной таблицы. Для получения дополнительной информации смотрите Интерполяционные таблицы Редактирования в документации Simulink.
Нажатие этой кнопки для объекта интерполяционной таблицы позволяет вам отредактировать объект и сохранить новые значения для объекта.
Метод интерполяции
Метод интерполяции между значениями точки остановаLinear point-slope
(значение по умолчанию) | Flat
| Nearest
| Linear Lagrange
| Cubic spline
Когда вход падает между значениями точки останова, блок интерполирует точки останова граничения использования выходного значения. Для получения дополнительной информации о методах интерполяции смотрите Методы интерполяции.
Если вы выбираете Cubic spline
, блок поддерживает только скалярные сигналы. Другие методы интерполяции поддерживают нескалярные сигналы.
Параметры блоков: InterpMethod |
Ввод: символьный вектор |
Значения:
'Linear point-slope' | 'Flat' | 'Nearest' | 'Linear Lagrange' | 'Cubic spline' |
Значение по умолчанию:
'Linear point-slope' |
ExtrapolationMethod
Метод обработки входных значений, которые выходят за пределы области значений набора данных точки остановаClip
(значение по умолчанию) | Linear
| Cubic spline
Выберите Clip
, Linear
или Cubic spline
. См. Методы Экстраполяции для получения дополнительной информации.
Если методом экстраполяции является Linear
, значение экстраполяции вычисляется на основе выбранного метода линейной интерполяции. Например, если методом интерполяции является Линейный Лагранж, метод экстраполяции наследовал Линейное Лагранжево уравнение, чтобы вычислить экстраполируемое значение.
Чтобы выбрать Cubic spline
for Extrapolation method, необходимо также выбрать Cubic spline
for Interpolation method.
Параметры блоков: ExtrapMethod |
Ввод: символьный вектор |
Значения: 'Linear' | 'Clip' | 'Cubic 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 search method на Evenly spaced points
при использовании объекта Simulink.LookupTable
задать табличные данные, и параметр Breakpoints Specification объекта Simulink.LookupTable
, на который ссылаются, устанавливается на Even spacing
.
Для неравномерно расположенных с интервалами наборов точки останова следуйте этим инструкциям:
Если входные сигналы не отличаются очень между временными шагами, выбор Linear search
with Begin index search using previous index result производит лучшую производительность.
Если скачок входных сигналов больше чем один или два табличных интервала на временной шаг, выбор 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 search method на Linear search
или Binary search
.
Параметры блоков: BeginIndexSearchUsing PreviousIndexResult |
Ввод: символьный вектор |
Значения: 'off' | 'on' |
Значение по умолчанию: 'off' |
Diagnostic for out-of-range input
— Блокируйте действие, когда введенный будет вне области значенийNone
(значение по умолчанию) | Warning
| Error
Задайте, произвести ли предупреждение или ошибку, когда вход вне области значений. Опции включают:
'none'
Не произведите ответ.
Предупреждение
Выведите предупреждение и продолжите симуляцию.
Ошибка
Отключите симуляцию и отобразите ошибку.
Параметры блоков: DiagnosticForOutOfRangeInput |
Ввод: символьный вектор |
Значения: 'None' | 'Warning' | 'Error' |
Значение по умолчанию: 'None' |
Use last table value for inputs at or above last breakpoint
— Метод для вычисления вывода для входных параметров в или выше последней точки остановаoff
(значение по умолчанию) | on
Используя этот флажок, задайте соглашение индексации что использование блока, чтобы обратиться к последнему элементу набора точки останова и его соответствующего табличного значения. Этот флажок релевантен, если вход больше, чем последний элемент данных о точке останова.
Флажок | Блокируйте индекс использования... | Часть интервала |
---|---|---|
Выбранный | Последний элемент данных о точке останова по вкладке 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' |
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
Задайте, включать ли код, который проверяет на входные значения из области значений.
Флажок | Результат | Когда использовать |
---|---|---|
|
Сгенерированный код не включает условные операторы, чтобы проверять на входные параметры точки останова из области значений. Когда вход из области значений, он может вызвать неопределенное поведение для сгенерированного кода и симуляций с помощью режима Accelerator. |
Для эффективности кода |
|
Сгенерированный код включает условные операторы, чтобы проверять на входные параметры из области значений. |
Для важных приложений безопасности |
Если ваш вход не вне области значений, можно установить флажок Remove protection against out-of-range index in generated code для эффективности кода. По умолчанию этот флажок снимается. Для важных приложений безопасности не устанавливайте этот флажок. Если вы хотите установить флажок Remove protection against out-of-range index in generated code, сначала проверяйте, что ваши образцовые входные параметры находятся в области значений. Например:
Снимите флажок Remove protection against out-of-range index in generated code.
Установите параметр Diagnostic for out-of-range input на Error
.
Моделируйте модель в режиме normal mode.
Если существуют ошибки из области значений, фиксируют их, чтобы быть в области значений и запустить симуляцию снова.
Когда симуляция больше не сгенерирует из области значений входные ошибки, установите флажок Remove protection against out-of-range index in generated code.
Когда вы устанавливаете флажок Remove protection against out-of-range index in generated code, и вход k
или f
вне области значений, поведение не определено для сгенерированного кода и симуляций с помощью режима Accelerator.
В зависимости от вашего приложения можно осуществить следующие проверки 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, смотрите Осуществленные Образцовые Проверки.
Параметры блоков:
RemoveProtectionInput |
Ввод: символьный вектор |
Значения:
'off' | 'on' |
Значение по умолчанию:
'off' |
Support tunable table size in code generation
— Включите настраиваемый табличный размер в сгенерированном кодеoff
(значение по умолчанию) | on
Установите этот флажок, чтобы включить настраиваемый табличный размер в сгенерированном коде. Эта опция позволяет вам изменить размер и значения интерполяционной таблицы и данных о точке останова в сгенерированном коде, не регенерируя или перекомпилировав код.
Если вы устанавливаете Interpolation method на Cubic spline
, этот флажок не доступен.
Параметры блоков:
SupportTunableTableSize |
Ввод: символьный вектор |
Значения:
'off' | 'on' |
Значение по умолчанию:
'off' |
'SampleTime'
Задайте шаг расчета как значение кроме -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 таблицами
Simulink.Parameter
, значение которого при генерации кода является тем меньше, чем размерности табличных данных. Для получения дополнительной информации смотрите Настраиваемый Табличный Размер в Сгенерированном коде.
Чтобы включить этот параметр, выберите Support tunable table size in code generation. При настройке этого параметра в сгенерированном коде обеспечьте новые табличные данные и точки останова наряду с настроенным значением параметров.
Параметры блоков:
MaximumIndicesForEachDimension |
Ввод: символьный вектор |
Значения: скаляр или вектор положительных целочисленных значений |
Значение по умолчанию:
'[]' |
Табличные данные
Тип данных табличных данныхInherit: Same as output
(значение по умолчанию) | double
| single
| int8
| uint8
| int16
| uint16
| int32
| uint32
| int64
| uint64
| fixdt(1,16)
| fixdt(1,16,0)
| fixdt(1,16,2^0,0)
| <data type expression>
Задайте тип данных table. Можно установить его на:
Правило, которое наследовало тип данных, например, Inherit: Same as output
Имя встроенного типа данных, например, single
Имя объекта типа данных, например, объекта Simulink.NumericType
Выражение, которое оценивает к типу данных, например, fixdt(1,16,0)
Нажмите кнопку Show data type assistant, чтобы отобразить Data Type Assistant, который помогает вам установить атрибуты типа данных. Для получения дополнительной информации смотрите, Задают Типы данных Используя Ассистент Типа данных.
Задайте тип данных table, отличающийся от типа выходных данных для этих случаев:
Более низкие требования к памяти для того, чтобы хранить табличные данные, которые используют меньший тип, чем выходной сигнал
Совместное использование предмасштабированных табличных данных между двумя n-D Интерполяционными таблицами блокируется с различными типами выходных данных
Совместное использование пользовательских данных о столе с возможностью хранения в сгенерированном коде для блоков с различными типами выходных данных
Параметры блоков: TableDataTypeStr |
Ввод: символьный вектор |
Значения:
'Inherit: Inherit from 'Table data'' | 'Inherit: Same as output' | 'double' | 'single' | '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
| 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)
Точки останова поддерживают неупорядоченные перечисленные данные. В результате линейные поисковые запросы также не упорядочены, который предлагает гибкость, но может повлиять на производительность. Поиск начинается с первого элемента в точке останова.
Если флажок Begin index search using previous index result устанавливается, необходимо использовать упорядоченные монотонно увеличивающиеся данные. Это упорядоченное расположение улучшает производительность.
Для перечислимых данных Extrapolation method должен быть Clip
.
Блок не поддерживает из области значений введенный для перечислимых данных. Когда определение перечислило данные, включайте целый набор перечисления в набор данных точки останова. Например, используйте функцию enumeration
.
Это - ограничение для использования перечислимых данных с этим блоком:
Блок не поддерживает из области значений введенный для перечислимых данных. Когда определение перечислило данные, включайте целый набор перечисления в набор данных точки останова. Например, используйте функцию enumeration
.
Нажмите кнопку Show data type assistant, чтобы отобразить Data Type Assistant, который помогает вам установить атрибуты типа данных. Для получения дополнительной информации смотрите, Задают Типы данных Используя Ассистент Типа данных.
Задайте тип данных точки останова, отличающийся от соответствующего типа входных данных для этих случаев:
Более низкие требования к памяти для того, чтобы хранить данные о точке останова, которые используют меньший тип, чем входной сигнал
Совместное использование предмасштабированных данных о точке останова между двумя n-D Интерполяционными таблицами блокируется с различными типами входных данных
Совместное использование пользовательского устройства хранения данных устанавливает точки останова данные в сгенерированном коде для блоков с различными типами входных данных
Параметры блоков: BreakpointsForDimension1DataTypeStr | BreakpointsForDimension2DataTypeStr| ... | BreakpointsForDimension30DataTypeStr |
Ввод: символьный вектор |
Значения:
'Inherit: Same as corresponding input' | 'Inherit: Inherit from 'Breakpoint data'' | 'double' | 'single' | '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)
Нажмите кнопку 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' |
Intermediate results
— Промежуточный тип данных результатов Inherit: Same as output
(значение по умолчанию) | double
| single
| 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)
Нажмите кнопку 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: Same as input
(значение по умолчанию) | double
| single
| 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)
Нажмите кнопку 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' | '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 или режим external mode. Для получения дополнительной информации смотрите, Оптимизируют использование заданных минимальных и максимальных значений (Simulink Coder).
Параметры блоков: OutMin |
Ввод: символьный вектор |
Значения: скаляр |
Значение по умолчанию: '[]' |
Output Maximum
— Максимальное значение блок может вывести[]
| scalar
Задайте максимальное значение, которое может вывести блок. Значением по умолчанию является (незаданный) []
. Программное обеспечение Simulink использует это значение, чтобы выполнить:
Проверка диапазона параметра (см., Задает Минимальные и Максимальные значения для Параметров блоков).
Проверка диапазона симуляции (см. Диапазоны сигнала).
Автоматическое масштабирование типов данных с фиксированной точкой.
Оптимизация кода, который вы генерируете из модели. Эта оптимизация может удалить алгоритмический код и влиять на результаты некоторых режимов симуляции, такие как SIL или режим external mode. Для получения дополнительной информации смотрите, Оптимизируют использование заданных минимальных и максимальных значений (Simulink Coder).
Параметры блоков: 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
— Препятствуйте тому, чтобы Fixed-Point Tool заменили типы данныхoff
(значение по умолчанию) | on
Выберите этот параметр, чтобы препятствовать тому, чтобы Fixed-Point Tool заменили типы данных, которые вы задаете на этом блоке. Для получения дополнительной информации смотрите Блокировку Установка Типа Выходных данных (Fixed-Point Designer).
Параметры блоков: LockScale |
Ввод: символьный вектор |
Значения: 'off' | 'on' |
Значение по умолчанию: 'off' |
Integer rounding mode
— Rounding для операций фиксированной точкиSimplest
(значение по умолчанию) | Ceiling
| Convergent
| Floor
| Nearest
| Round
| Zero
Задайте округляющийся режим для вычислений интерполяционной таблицы фиксированной точки, которые происходят во время симуляции или подписания кода, сгенерированного из модели. Для получения дополнительной информации смотрите Округление (Fixed-Point Designer).
Эта опция не влияет на округление значений параметров блоков. 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, чтобы включить настраиваемый табличный размер.
AssumeThat:
Вы задаете структуру 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.
Параметр | Значение |
---|---|
Number of table dimensions | 2 |
Table data | p.Table |
Breakpoints 1 | p.BP1 |
Breakpoints 2 | p.BP2 |
Support tunable table size in code generation | on |
Maximum indices for each dimension | 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
блок Lookup n-D имеет эти настройки:
Number of dimensions к 1
.
Значением Table data является [5 10 20 40 80 -5 0]
.
Значением Breakpoints 1 является enumeration('Gears')
.
Метод интерполяции является Плоским.
Для неупорядоченного поиска, набор Index search method к Linear search
и снимают флажок Begin index search using previous index result.
Симуляция производит векторный [10 -5 80]
, которые соответствуют GEAR2
, REVERSE
и SPORTS
.
1D, 2D, и блоки Интерполяционной таблицы N-D имеют ограничения для генерации HDL-кода. Для получения дополнительной информации смотрите Ограничения (HDL Coder).
Прямая интерполяционная таблица (n-D) | Интерполяция Используя предварительный поиск | Динамическая интерполяционная таблица | Предварительный поиск | Simulink.Breakpoint
| Simulink.LookupTable
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.