Аппроксимируйте двумерную функцию
Simulink / Интерполяционные таблицы
1D, 2D, и n-D блоки Интерполяционной таблицы оценивают выбранное представление функции в переменных N
где функция F может быть эмпирической. Блок-диаграммы вводят к выходному значению путем поиска или интерполяции таблицы значений, которые вы задаете с блочными параметрами. Блок поддерживает плоская (константа), линейная (Линейный наклон точки), Лагранж (Линейный Лагранж), самые близкие методы, и интерполяции кубическим сплайном. Можно применить эти методы к таблице любой размерности от 1 до 30.
В следующем блоке первый входной параметр идентифицирует первую размерность (строка) точки останова, второй входной параметр идентифицирует второе измерение (столбец) точки останова и так далее.
Смотрите Местоположение порта После Вращения или Зеркального отражения для описания порядка порта для различных блочных ориентаций.
Когда Математика и Типы данных> алгоритмы Использования, оптимизированные для параметра конфигурации размещения главного массива строки, установлены, 2D и n-D поведение блока Lookup Table изменяется от главного столбцом до главного строкой. Для этих блоков главные столбцом и главные строкой алгоритмы могут отличаться по порядку выходных вычислений, возможно приводящих к немного отличающимся численным значениям. Эта возможность требует Simulink® Coder™ или Встроенной лицензии Coder®. Для получения дополнительной информации о главной строкой поддержке смотрите Генерацию кода Матриц и Массивов (Simulink Coder).
Эти блочные параметры задают табличные данные и точка останова.
Блокируйте параметр | Цель |
---|---|
Количество табличных размерностей | Задает количество размерностей вашей интерполяционной таблицы. |
Точки останова | Задает вектор точки останова, который соответствует каждой размерности вашей интерполяционной таблицы. |
Табличные данные | Задает связанный набор выходных значений. |
Равномерно распределенные точки останова могут сделать сгенерированный код без делений. Для получения дополнительной информации смотрите fixpt_evenspace_cleanup
и Идентифицируйте сомнительные операции фиксированной точки (Embedded Coder).
n-D, 1D и 2D блоки Интерполяционной таблицы генерируют выведенный путем поиска или оценки табличных значений на основе входных значений.
Когда блок вводит... | n-D блок Lookup Table... |
---|---|
Совпадайте со значениями индексов в наборах данных точки останова | Выводит табличное значение на пересечении строки, столбца и более высоких точек останова размерности |
Не совпадайте со значениями индексов в наборах данных точки останова, но в области значений | Интерполирует соответствующие табличные значения, с помощью Метода интерполяции, который вы выбираете |
Не совпадайте со значениями индексов в наборах данных точки останова, и вне области значений | Экстраполирует выходное значение, с помощью метода Экстраполяции, который вы выбираете |
Можно использовать блок Interpolation Using Prelookup с блоком Prelookup, чтобы выполнить эквивалентную операцию одного n-D блока Lookup Table. Эта комбинация блоков предлагает большую гибкость, которая может привести к более эффективной производительности моделирования для линейных интерполяций.
Когда операция поиска является доступом к массиву, который не требует интерполяции, использует Прямую Интерполяционную таблицу (n-D) блок. Например, если у вас есть целочисленное значение k
, и вы хотите k
th элемент таблицы, y = table(k)
, интерполяция является ненужной.
u1
— Первая размерность (строка) входные параметрыВходные параметры с действительным знаком к u1 порту, сопоставленному с выходным значением путем поиска или интерполяции таблицы значений, которые вы задаете.
Пример: 0:10
Типы данных: единственный
| удваиваются
| int8
| int16
| int32
| uint8
| uint16
| uint32
| фиксированная точка
u2
— Второе измерение (столбец) входные параметрыВходные параметры с действительным знаком к u2 порту, сопоставленному с выходным значением путем поиска или интерполяции таблицы значений, которые вы задаете.
Пример: 0:10
Типы данных: единственный
| удваиваются
| int8
| int16
| int32
| uint8
| uint16
| uint32
| фиксированная точка
Port_1
— Выведите вычисленный путем поиска или оценки табличных значенийВыведите сгенерированный путем поиска или оценки табличных значений на основе входных значений.
Когда блок вводит... | n-D блок Lookup Table... |
---|---|
Совпадайте со значениями индексов в наборах данных точки останова | Выводит табличное значение на пересечении строки, столбца и более высоких точек останова размерности |
Не совпадайте со значениями индексов в наборах данных точки останова, но в области значений | Интерполирует соответствующие табличные значения, с помощью Метода интерполяции, который вы выбираете |
Не совпадайте со значениями индексов в наборах данных точки останова, и вне области значений | Экстраполирует выходное значение, с помощью метода Экстраполяции, который вы выбираете |
Типы данных: единственный
| удваиваются
| int8
| int16
| int32
| uint8
| uint16
| uint32
| фиксированная точка
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
— Задайте табличные данные и точки останова. Выбор этой опции включает эти параметры:
Табличные данные
Спецификация точек останова
Точки останова 1
Точки останова 2
Отредактируйте таблицу и точки останова
Lookup table object
— Используйте существующий объект (Simulink.LookupTable
) интерполяционной таблицы. Выбор этой опции включает Поле имени, и отредактируйте кнопка точек останова и таблица.
Блочный параметр:
DataSpecification |
Ввод: символьный вектор |
Значения:
'Таблица и точки останова' | 'Объект интерполяционной таблицы' |
Значение по умолчанию:
'Table and breakpoints' |
Имя
Имя объекта интерполяционной таблицы[]
(значение по умолчанию) | объект Simulink.LookupTable
Введите имя объекта (Simulink.LookupTable
) интерполяционной таблицы.
Чтобы включить этот параметр, установите спецификацию Данных на Lookup table object
.
Блочный параметр:
LookupTableObject |
Ввод: символьный вектор |
Значения: имя Simulink. Объект LookupTable |
Значение по умолчанию:
'' |
Табличные данные
Задайте таблицу выходных значений[4 5 6; 16 19 20; 10 18 23]
(значение по умолчанию) | матрица значений Введите таблицу выходных значений.
Во время моделирования матричный размер должен совпадать с размерностями, заданными Количеством табличного параметра размерностей. Однако во время редактирования блок-схемы, можно ввести пустую матрицу (заданный как []
) или неопределенная переменная рабочей области. Этот метод позволяет вам отложить задавать правильно определенную размеры матрицу для табличных данных и продолжать редактировать блок-схему.
Чтобы включить этот параметр, установите спецификацию Данных на Table and breakpoints
.
Блочный параметр:
Таблица |
Ввод: символьный вектор |
Значения: матрица табличных значений |
Значение по умолчанию:
'[4 5 6; 16 19 20; 10 18 23]' |
Breakpoints specification
— Метод спецификации точки остановаExplicit values
(значение по умолчанию) | Even spacing
Задайте, ввести ли данные как явные точки останова или как параметры, которые генерируют равномерно распределенные точки останова.
Чтобы явным образом задать данные точки останова, установите этот параметр на Explicit values
и введите данные точки останова в текстовое поле рядом с параметрами Точек останова.
Чтобы задать параметры, которые генерируют равномерно распределенные точки останова, установите этот параметр на Even spacing
и введите значения для Первой точки и параметры Интервала для каждой размерности данных точки останова. Блок вычисляет число точек, чтобы сгенерировать от табличных данных.
Чтобы включить этот параметр, установите спецификацию Данных на Table and breakpoints
.
Блочный параметр:
BreakpointsSpecification |
Ввод: символьный вектор |
Значения:
'Явные значения' | 'Даже интервал' |
Значение по умолчанию:
'Explicit values' |
Breakpoints
— Явные значения точки останова, или сначала указывают и интервал точек останова[1:3]
(значение по умолчанию) | 1 на n или n-1 вектор монотонно увеличения значенийЗадайте данные точки останова явным образом или как равномерно распределенные точки останова, на основе значения параметра спецификации Точек останова.
Если вы устанавливаете спецификацию Точек останова на Explicit values
, введите набор точки останова, который соответствует каждой размерности табличных данных в каждой строке Точек останова. Для каждой размерности задайте точки останова как или n-1 вектор 1 на n, значения которого строго монотонно увеличиваются.
Если вы устанавливаете спецификацию Точек останова на Even spacing
, войдите, параметры Сначала указывают и Располагающий с интервалами в каждой строке Точек останова, чтобы сгенерировать равномерно распределенные точки останова в соответствующей размерности. Ваши табличные данные определяют количество равномерно расположенных с интервалами точек.
Чтобы включить этот параметр, установите спецификацию Данных на Table and breakpoints
.
Блочный параметр:
BreakpointsForDimension1 |
Ввод: символьный вектор |
Значения: 1 на n или вектор n-1 монотонно увеличения значений |
Значение по умолчанию:
'[1:3]' |
First point
— Сначала укажите в равномерно расположенных с интервалами данных точки останова1
(значение по умолчанию) | скалярЗадайте первую точку в своих равномерно расположенных с интервалами данных точки останова как с действительным знаком, конечное, скалярное. Этот параметр доступен, когда спецификация Точек останова установлена в Even spacing
.
Чтобы включить этот параметр, установите спецификацию Данных на Table and breakpoints
и спецификацию Точек останова к Even spacing
.
Блочный параметр:
BreakpointsForDimension1FirstPoint | BreakpointsForDimension2FirstPoint |
Ввод: символьный вектор |
Значения: с действительным знаком, конечный, скалярный |
Значение по умолчанию:
'1' |
Spacing
— Разрядка между равномерно расположенными с интервалами точками останова1
(значение по умолчанию) | скалярЗадайте интервал между точками в ваших равномерно распределенных данных точки останова.
Чтобы включить этот параметр, установите спецификацию Данных на Table and breakpoints
и спецификацию Точек останова к 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' |
ExtrapolationMethod
Метод обработки входных значений, которые выходят за пределы области значений набора данных точки остановаClip
(значение по умолчанию) | Linear
| Cubic spline
Выберите Clip
, Linear
или Cubic spline
. См. Методы Экстраполяции для получения дополнительной информации.
Если методом экстраполяции является Linear
, значение экстраполяции вычисляется на основе выбранного метода линейной интерполяции. Например, если методом интерполяции является Линейный Лагранж, метод экстраполяции наследовал Линейное Лагранжево уравнение, чтобы вычислить экстраполируемое значение.
Чтобы выбрать метод Cubic spline
for Extrapolation, необходимо также выбрать Cubic spline
for Interpolation method.
Блочный параметр: ExtrapMethod |
Ввод: символьный вектор |
Значения: 'Линейный' | 'Клип' | 'Кубический сплайн' |
Значение по умолчанию: 'Linear' |
Index search method
— Метод вычисления табличных индексовEvenly spaced points
(значение по умолчанию) | Linear search
| Binary search
Выберите Evenly spaced points
, Linear search
или Binary search
. Каждый метод поиска имеет преимущества скорости в различных обстоятельствах:
Для равномерно расположенных с интервалами наборов точки останова (например, 10, 20, 30, и так далее), вы достигаете оптимальной скорости путем выбора Evenly spaced points
, чтобы вычислить табличные индексы.
Этот алгоритм использует только первые две точки останова набора, чтобы определить смещение и интервал остающихся точек.
Установите метод Поиска по индексу на Evenly spaced points
при использовании объекта Simulink.LookupTable
задать табличные данные, и параметр Спецификации Точек останова объекта Simulink.LookupTable
, на который ссылаются, устанавливается на Even spacing
.
Для неравномерно расположенных с интервалами наборов точки останова следуйте этим инструкциям:
Если входные сигналы не отличаются очень между временными шагами, выбор поиска по индексу Linear search
with Begin с помощью предыдущего индексного результата производит лучшую производительность.
Если скачок входных сигналов больше чем один или два табличных интервала на временной шаг, выбор Binary search
производит лучшую производительность.
Субоптимальный выбор метода поиска по индексу может вести, чтобы замедлить производительность моделей, которые полагаются в большой степени на интерполяционные таблицы.
Сгенерированный код хранит только первую точку останова, интервал и количество точек останова когда:
Данные точки останова не являются настраиваемыми.
Методом поиска по индексу является Evenly spaced points
.
Блочный параметр: IndexSearchMethod |
Ввод: символьный вектор |
Значения: 'Двоичный поиск' | 'Равномерно распределенные точки' | 'Линейный поиск' |
Значение по умолчанию: 'Binary search' |
Begin index search using previous index result
— Начните использовать индекс от предыдущего временного шагаoff
(значение по умолчанию) | on
Установите этот флажок когда это необходимо блок, чтобы запустить его поиск с помощью индекса, найденного на предыдущем временном шаге. Для входных параметров, которые медленно изменяются относительно размера интервала, включая эту опцию, может улучшить производительность. В противном случае линейные методы поискового и двоичного поиска могут занять больше времени, специально для больших наборов точки останова.
Чтобы включить этот параметр, установите метод Поиска по индексу на Linear search
или Binary search
.
Блочный параметр: BeginIndexSearchUsing PreviousIndexResult |
Ввод: символьный вектор |
Значения: 'off' | 'on' |
Значение по умолчанию: 'off' |
Diagnostic for out-of-range input
— Блокируйте действие, когда введенный будет вне области значенийNone
(значение по умолчанию) | Warning
| Error
Задайте, произвести ли предупреждение или ошибку, когда входной параметр вне области значений. Опции включают:
'none'
Не произведите ответ.
Предупреждение
Отобразите предупреждение и продолжите моделирование.
Ошибка
Отключите моделирование и отобразите ошибку.
Блочный параметр: DiagnosticForOutOfRangeInput |
Ввод: символьный вектор |
Значения: 'Ни один' | 'Предупреждение' | 'Ошибка' |
Значение по умолчанию: 'none' |
Use last table value for inputs at or above last breakpoint
— Метод для вычисления вывода для входных параметров в или выше последней точки остановаoff
(значение по умолчанию) | on
Используя этот флажок, задайте соглашение индексации что блочное использование, чтобы обратиться к последнему элементу набора точки останова и его соответствующего табличного значения. Этот флажок релевантен, если входной параметр больше, чем последний элемент данных точки останова.
Флажок | Блокируйте индекс использования... | Часть интервала |
---|---|---|
Выбранный | Последний элемент данных точки останова по вкладке Table и Breakpoints | 0 |
Очищенный | Предпоследний элемент данных точки останова по вкладке Table и Breakpoints | 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
Задайте, включать ли код, который проверяет на входные значения из области значений.
Флажок | Результат | Когда использовать |
---|---|---|
|
Сгенерированный код не включает условные операторы, чтобы проверить на входные параметры точки останова из области значений. Когда входной параметр из области значений, он может вызвать неопределенное поведение для сгенерированного кода и моделирований с помощью режима Accelerator. |
Для эффективности кода |
|
Сгенерированный код включает условные операторы, чтобы проверить на входные параметры из области значений. |
Для важных приложений безопасности |
Если ваш входной параметр не вне области значений, можно выбрать защиту Remove от индекса из области значений во флажке сгенерированного кода для эффективности кода. По умолчанию этот флажок снимается. Для важных приложений безопасности не устанавливайте этот флажок. Если вы хотите выбрать защиту Remove от индекса из области значений во флажке сгенерированного кода, сначала проверьте, что ваши образцовые входные параметры находятся в области значений. Например:
Очистите Удалить защиту от индекса из области значений во флажке сгенерированного кода.
Установите Диагностику для входного параметра из области значений к Error
.
Моделируйте модель в режиме normal mode.
Если существуют ошибки из области значений, фиксируют их, чтобы быть в области значений и запустить моделирование снова.
Когда моделирование больше не сгенерирует из области значений входные ошибки, выберите защиту Remove от индекса из области значений во флажке сгенерированного кода.
Когда вы выбираете защиту Remove от индекса из области значений во флажке сгенерированного кода и входном параметре, k
или f
вне области значений, поведение не определено для сгенерированного кода и моделирований с помощью режима Accelerator.
В зависимости от вашего приложения можно осуществить следующие Образцовые проверки Советника, чтобы проверить использование этого флажка:
Продуктом> Embedded Coder> Идентифицирует блоки интерполяционной таблицы, которые генерируют дорогой код проверки из области значений
Продуктом> Simulink Check> Моделирование Стандартов> DO-178C/DO-331 Проверки> использование Проверки блоков интерполяционной таблицы
Для получения дополнительной информации об Образцовом Советнике, смотрите Осуществленные Образцовые Проверки.
Блочный параметр:
RemoveProtectionInput |
Ввод: символьный вектор |
Значения:
'off' | 'on' |
Значение по умолчанию:
'off' |
Support tunable table size in code generation
— Включите настраиваемый табличный размер в сгенерированном кодеoff
(значение по умолчанию) | on
Установите этот флажок, чтобы включить настраиваемый табличный размер в сгенерированном коде. Эта опция позволяет вам изменить размер и значения интерполяционной таблицы и данных точки останова в сгенерированном коде, не регенерируя или перекомпилировав код.
Если вы устанавливаете Метод интерполяции для 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 настраиваемый табличный размер в генерации кода. При настройке этого параметра в сгенерированном коде обеспечьте новые табличные данные и точки останова наряду с настроенным значением параметров.
Блочный параметр:
MaximumIndicesForEachDimension |
Ввод: символьный вектор |
Значения: скаляр или вектор положительных целочисленных значений |
Значение по умолчанию:
'[]' |
Табличные данные
Тип данных табличных данныхInherit: Same as output
(значение по умолчанию) | double
| single
| int8
| uint8
| int16
| uint16
| int32
| uint32
| fixdt(1,16)
| fixdt(1,16,0)
| fixdt(1,16,2^0,0)
| <data type expression>
Задайте тип данных table. Можно установить его на:
Правило, которое наследовало тип данных, например, Inherit: Same as output
Имя встроенного типа данных, например, single
Имя объекта типа данных, например, объекта Simulink.NumericType
Выражение, которое оценивает к типу данных, например, fixdt(1,16,0)
Нажмите ассистент типа данных Show кнопка, чтобы отобразить Ассистент Типа данных, который помогает вам установить атрибуты типа данных. Для получения дополнительной информации смотрите, Задают Типы данных Используя Ассистент Типа данных.
Задайте тип данных table, отличающийся от типа выходных данных для этих случаев:
Более низкие требования к памяти для того, чтобы хранить табличные данные, который использует меньший тип, чем выходной сигнал
Совместное использование предмасштабированных табличных данных между двумя n-D Интерполяционными таблицами блокируется с различными типами выходных данных
Совместное использование пользовательских данных стола с возможностью хранения в сгенерированном коде для блоков с различными типами выходных данных
Блочный параметр: TableDataTypeStr |
Ввод: символьный вектор |
Значения:
'Наследуйтесь: Наследуйтесь 'Табличным данным'' |, 'Наследуйтесь: То же самое, как выведено' | 'удваивается' | 'single' | 'int8' | 'uint8' | 'int16' | 'uint16' | 'int32' | 'uint32' | 'fixdt (1,16)' | 'fixdt (1,16,0)' | 'fixdt (1,16,2^0,0)' | '<выражение типа данных>' |
Значение по умолчанию: '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
| 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
.
Нажмите ассистент типа данных Show кнопка, чтобы отобразить Ассистент Типа данных, который помогает вам установить атрибуты типа данных. Для получения дополнительной информации смотрите, Задают Типы данных Используя Ассистент Типа данных.
Задайте тип данных точки останова, отличающийся от соответствующего типа входных данных для этих случаев:
Более низкие требования к памяти для того, чтобы хранить данные точки останова, который использует меньший тип, чем входной сигнал
Совместное использование предмасштабированных данных точки останова между двумя n-D Интерполяционными таблицами блокируется с различными типами входных данных
Совместное использование пользовательского устройства хранения данных устанавливает точки останова данные в сгенерированном коде для блоков с различными типами входных данных
Блочный параметр: BreakpointsForDimension1DataTypeStr | BreakpointsForDimension2DataTypeStr| ... | BreakpointsForDimension30DataTypeStr |
Ввод: символьный вектор |
Значения:
'Наследуйтесь: То же самое как соответствующий входной параметр' | 'Наследовалось: Наследуйтесь 'Данным точки останова'' | 'дважды' | 'single' | 'int8' | 'uint8' | 'int16' | 'uint16' | 'int32' | 'uint32' | 'fixdt (1,16)' | 'fixdt (1,16,0)' | 'fixdt (1,16,2^0,0)' | '<выражение типа данных>' |
Значение по умолчанию: '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 кнопка, чтобы отобразить Ассистент Типа данных, который помогает вам установить атрибуты типа данных. Для получения дополнительной информации смотрите, Задают Типы данных Используя Ассистент Типа данных.
Блочный параметр: FractionDataTypeStr |
Ввод: символьный вектор |
Значения:
'Наследуйтесь: Наследуйтесь через внутреннее правило' | 'дважды' | 'single' | 'fixdt (1,16,0)' | '<выражение типа данных>' |
Значение по умолчанию: 'Inherit: Inherit via internal rule' |
Intermediate results
— Промежуточный тип данных результатов Inherit: Same as output
(значение по умолчанию) | double
| single
| int8
| uint8
| int16
| uint16
| int32
| uint32
| fixdt(1,16)
| fixdt(1,16,0)
| fixdt(1,16,2^0,0)
| <data type expression>
Задайте промежуточный тип данных результатов. Можно установить его на:
Правило, которое наследовало тип данных, например, Inherit: Same as output
Имя встроенного типа данных, например, single
Имя объекта типа данных, например, объекта Simulink.NumericType
Выражение, которое оценивает к типу данных, например, fixdt(1,16,0)
Нажмите ассистент типа данных Show кнопка, чтобы отобразить Ассистент Типа данных, который помогает вам установить атрибуты типа данных. Для получения дополнительной информации смотрите, Задают Типы данных Используя Ассистент Типа данных.
Используйте этот параметр, чтобы задать выше (или ниже) точность для внутренних вычислений, чем для табличных данных или выходных данных.
Блочный параметр: IntermediateResultsDataTypeStr |
Ввод: символьный вектор |
Значения:
'Наследуйтесь: Наследуйтесь через внутреннее правило' |, 'Наследуйтесь: То же самое, как выведено' | 'удваивается' | 'single' | 'int8' | 'uint8' | 'int16' | 'uint16' | 'int32' | 'uint32' | 'fixdt (1,16,0)' | 'fixdt (1,16,2^0,0)' | '<выражение типа данных>' |
Значение по умолчанию: 'Inherit: Same as output' |
Вывод
Тип выходных данныхInherit: Same as input
(значение по умолчанию) | double
| single
| int8
| uint8
| int16
| uint16
| int32
| uint32
| fixdt(1,16)
| fixdt(1,16,0)
| fixdt(1,16,2^0,0)
| <data type expression>
Задайте тип выходных данных. Можно установить его на:
Правило, которое наследовало тип данных, например, Inherit: Inherit via back propagation
Имя встроенного типа данных, например, single
Имя объекта типа данных, например, объекта Simulink.NumericType
Выражение, которое оценивает к типу данных, например, fixdt(1,16,0)
Нажмите ассистент типа данных Show кнопка, чтобы отобразить Ассистент Типа данных, который помогает вам установить атрибуты типа данных. Для получения дополнительной информации смотрите, Задают Типы данных Используя Ассистент Типа данных.
Блочный параметр: OutDataTypeStr |
Ввод: символьный вектор |
Значения:
'Наследуйтесь: Наследуйтесь через обратное распространение' |, 'Наследуйтесь: Наследуйтесь табличным данным' |, 'Наследуйтесь: То же самое, как сначала введено' | 'удваивается' | 'single' | 'int8' | 'uint8' | 'int16' | 'uint16' | 'int32' | 'uint32' | 'fixdt (1,16,0)' | 'fixdt (1,16,2^0,0)' | '<выражение типа данных' |
Значение по умолчанию: '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' |
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 |
Ввод: символьный вектор |
Значения: 'Потолок' | 'Конвергентный' | 'Пол' | 'Самый близкий' | 'Вокруг' | 'Самый Простой' | 'Нуль' |
Значение по умолчанию: 'Simplest' |
Saturate on integer overflow
— Метод действия переполненияoff
(значение по умолчанию) | on
Действие | Причины принятия этих мер | Что происходит для переполнения | Пример |
---|---|---|---|
Установите этот флажок ( | Ваша модель имеет возможное переполнение, и вы хотите явную защиту насыщенности в сгенерированном коде. | Переполнение насыщает или к минимальному или к максимальному значению, которое может представлять тип данных. | Переполнение, сопоставленное с 8-битным целым числом со знаком, может насыщать к-128 или 127. |
Не устанавливайте этот флажок ( | Вы хотите оптимизировать эффективность своего сгенерированного кода. Вы не хотите чрезмерно определять, как блок обрабатывает сигналы из области значений. Для получения дополнительной информации смотрите Проверку на Ошибки Диапазона сигнала. | Переполнение переносится к соответствующему значению, которое является представимым, по условию вводят. | Номер 130 не помещается в 8-битное целое число со знаком и переносится к-126. |
Если вы сохраняете свою модель как версию R2009a или ранее, эта установка флажка не имеет никакого эффекта, и никакой код насыщенности не появляется. Это поведение сохраняет обратную совместимость.
Когда вы устанавливаете этот флажок, насыщенность применяется к каждой внутренней операции на блоке, не только выводу или результату. В целом процесс генерации кода может обнаружить, когда переполнение не возможно. В этом случае генератор кода не производит код насыщенности.
Блочный параметр: SaturateOnIntegerOverflow |
Ввод: символьный вектор |
Значения: 'off' | 'on' |
Значение по умолчанию: 'off' |
Типы данных |
|
Прямое сквозное соединение |
|
Многомерные сигналы |
|
Сигналы переменного размера |
|
Обнаружение пересечения нулем |
|
Предположим, что вы имеете интерполяционную таблицу и хотите сделать размер настраиваемым в сгенерированном коде. Когда вы используете Simulink.LookupTable
, и Simulink.Breakpoint
возражает, чтобы сконфигурировать данные интерполяционной таблицы для калибровки в сгенерированном коде, использовать свойство SupportTunableSize
объектов включить настраиваемый табличный размер. Когда вы не будете использовать эти классы, используйте Поддержку настраиваемый табличный размер в параметре генерации кода в 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.
Параметр | Значение |
---|---|
Количество табличных размерностей | 2 |
Табличные данные | p. Таблица |
Точки останова 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
блок Lookup n-D имеет эти настройки:
Количество размерностей к 1
.
Табличным значением данных является [5 10 20 40 80 -5 0]
.
Точками останова 1 значение является enumeration('Gears')
.
Метод интерполяции является Плоским.
Для незаказанного поиска, метода Поиска по индексу набора к Linear search
и ясный Начать поиск по индексу с помощью предыдущего индексного флажка результата.
Моделирование производит векторный [10 -5 80]
, которые соответствуют GEAR2
, REVERSE
и SPORTS
.
1D, 2D, и блоки Интерполяционной таблицы N-D имеют ограничения для генерации HDL-кода. Для получения дополнительной информации смотрите Ограничения (HDL Coder).
Прямая интерполяционная таблица (n-D) | Интерполяция Используя предварительный поиск | Динамическая интерполяционная таблица | Предварительный поиск | Simulink.Breakpoint
| Simulink.LookupTable
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.