Вычислите индекс и дробь для интерполяции с использованием блока Prelookup
Simulink/Интерполяционные таблицы
HDL-кодер/интерполяционные таблицы
Блок Prelookup вычисляет индекс и интервальную дробь, которые определяют, как его входное значение u
относится к набору данных точек по оси Х. Блок Prelookup лучше всего работает с блоком Interpolation Using Prelookup. Передайте получившиеся значения индекса и дроби в блок Interpolation Using Prelookup, чтобы интерполировать n-мерную таблицу. Эти два блока имеют распределенные алгоритмы. При объединении вместе они выполняют ту же операцию, что и интегрированный алгоритм в блоке n-D Lookup Table. Однако блоки Prelookup и Interpolation Using Prelookup предлагают большую гибкость и более эффективную симуляцию и генерацию кода, чем блок n-D Lookup Table. Для получения дополнительной информации смотрите Эффективность производительности.
Чтобы использовать блок Prelookup, необходимо задать набор значений точек по оси Х. Вы выбираете, задавать ли значения точек по оси Х непосредственно в диалоговом окне или путем подачи значений в bp
входной порт путем установки параметра Source равным Dialog
или Input port
. Как правило, этот набор данных точек по оси Х соответствует одной размерности данных таблицы в блоке Interpolation Using Prelookup. Блок Prelookup генерирует пару выходов для каждого входного значения u
путем вычисления:
Индекс элемента набора точек по оси Х, который меньше или равен u
и формирует интервал, содержащий u
Фракция интервала в область значений 0 ≤ f < 1, представляющая нормированное положение u
на интервале точек по оси Х между индексом и следующим значением индекса для входов в области значений
Для примера, если набор данных точек по оси Х [0 5 10 20 50 100]
и значение входа u
равен 55, индекс равен 4, а дробное значение равно 0,1. Метки для индекса и интервала дроби отображаются как k и f на значке блока Prelookup. Значение индекса меньше нуля на основе.
Интервальная дробь может быть отрицательной или больше 1
для входов вне области допустимого. Для получения дополнительной информации см. Extrapolation method параметров блоков.
Port_1
- Входной сигнал, u
Блок Prelookup принимает реальные сигналы любого типа числовых данных, который Simulink® поддерживает, кроме Boolean. Блок Prelookup поддерживает типы данных с фиксированной точкой для сигналов и данных точек останова.
Типы данных: half
| single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| fixed point
| enumerated
| bus
bp
- Данные точек по оси ХБлок Prelookup принимает реальные сигналы как данные точек останова любого типа числовых данных, который поддерживает Simulink, кроме Boolean.
Типы данных: half
| single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| fixed point
| enumerated
k
- Индекс интервала, содержащего вход, u
Базирующийся на нуле индекс, k, является вещественным целым числом, которое задает интервал, содержащий вход, u
.
Чтобы включить этот порт, установите Output selection равным Index and fraction
или Index only
.
Типы данных: int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| fixed point
f
- Дробь, представляющая нормированное положение входа, u
, в пределах интервала, kДробь, f, представляет нормированное положение входа, u
, в пределах интервала k.
Чтобы включить этот порт, установите Output selection равным Index and fraction
.
Типы данных: single
| double
| fixed point
Port_2
- Шина, содержащая индекс, k и дробь fВывод индекса, k и f дроби как объекта шины может помочь упростить модель.
Чтобы включить этот порт, установите Output selection равным Index and fraction as bus
.
Типы данных: bus
Specification
- Выбор способа ввода данных точек по оси ХExplicit values
(по умолчанию) | Even spacing
| Breakpoint object
Если вы задаете этот параметр:
Explicit values
параметры Source и Value видны в диалоговом окне.
Even spacing
Параметры First point, Spacing и Number of points видны в диалоговом окне.
Breakpoint object
параметр Name отображается в диалоговом окне.
Параметры блоков:
BreakpointsSpecification
|
Тип: Вектор символов |
Значения:
'Explicit values' | 'Even spacing' | 'Breakpoint object' |
По умолчанию:
'Explicit values'
|
Source
- Укажите источник данных точек по оси ХDialog
(по умолчанию) | Input port
Если вы задаете Source:
Dialog
, задайте данные точек по оси Х под Value.
Input port
, проверьте, что восходящий сигнал поставляет данные точек останова в bp
входной порт. Каждый набор данных точек по оси Х должен быть строго монотонно увеличивающимся вектором, который содержит два или более элемента. Для этой опции ваш блок наследует атрибуты точек по оси Х от bp
входной порт.
Чтобы включить этот параметр, установите Specification равным Explicit values
.
Параметры блоков:
BreakpointsDataSource
|
Тип: Вектор символов |
Значения:
'Dialog' | 'Input port'
|
По умолчанию:
'Dialog'
|
Value
- Значения данных точек по оси Х[10:10:110]
(по умолчанию) | вектор строго монотонно увеличивающихся значений, содержащий два или более элементаЯвным образом задайте данные точек по оси Х. Каждый набор данных точек по оси Х должен быть строго монотонно увеличивающимся вектором, который содержит два или более элемента. Для этой опции задаются дополнительные атрибуты точек по оси Х на панели Data Types.
Чтобы открыть Редактор интерполяционных таблиц, нажмите кнопку Edit (см. «Редактирование Интерполяционных таблиц»).
Примечание
Когда вы задаете Specification Explicit values
и Source к Input port
, проверьте, что восходящий сигнал поставляет данные точек останова в bp
входной порт. Каждый набор данных точек по оси Х должен быть строго монотонно увеличивающимся вектором, который содержит два или более элемента. Для этой опции ваш блок наследует атрибуты точек по оси Х (включая тип данных) от bp
входной порт.
Чтобы включить этот параметр, установите Specification равным Explicit values
и Source к Dialog
.
Параметры блоков:
BreakpointsData
|
Тип: Вектор символов |
Значения: вектор строго монотонно увеличивающихся значений, содержащий два или более элемента |
По умолчанию:
'[10:10:110]'
|
First point
- Первая точка равномерно разнесенных данных точек по оси Х10
(по умолчанию) | real-valued scalar
Чтобы включить этот параметр, установите Specification равным Even spacing
.
Параметры блоков:
BreakpointsFirstPoint
|
Тип: Вектор символов |
Значения:
real-valued scalar
|
По умолчанию:
'10'
|
Spacing
- Интервал между равномерно расположенными точками останова10
(по умолчанию) | real-valued, positive scalar
Чтобы включить этот параметр, установите Specification равным Even spacing
.
Параметры блоков:
BreakpointsSpacing
|
Тип: Вектор символов |
Значения:
real-valued, positive scalar
|
По умолчанию:
'10'
|
Number of points
- Количество равномерно расположенных точек11
(по умолчанию) | real-valued, positive scalar
Чтобы включить этот параметр, установите Specification равным Even spacing
.
Параметры блоков:
BreakpointsNumPoints
|
Тип: Вектор символов |
Значения:
real-valued, positive scalar
|
По умолчанию:
'11'
|
Name
- Имя Simulink.Breakpoint
объектno default
| Simulink.Breakpoint
Задайте имя Simulink.Breakpoint
объект. Объект точки по оси Х ссылается на объекты точки по оси Х Simulink. Если a Simulink.Breakpoint
объект не существует, нажмите кнопку действия и выберите Create. Соответствующие параметры нового объекта точки по оси Х автоматически заполняются информацией о блоке.
Чтобы включить этот параметр, установите Specification равным Breakpoint object
.
Параметры блоков:
BreakpointObject
|
Тип: Вектор символов |
Значения:
Simulink.Breakpoint объект |
По умолчанию:
''
|
Output selection
- Задайте сигналы выходов блоковIndex and fraction
(по умолчанию) | Index and fraction as bus
| Index only
Если вы хотите, чтобы блок выводил долю индекса и интервала, можно задать, выводит ли блок отдельные сигналы или сигнал шины, который включает как сигналы индекса, так и сигналы дроби.
Index only
выводит только индекс без дроби. Типичные приложения для этой опции включают:
Подача блока Direct Lookup Table (n-D), без интерполяции на интервале
Подача портов выбора подтаблицы для блока Interpolation Using Prelookup
Выполнение нелинейных квантований
Index and fraction
выводит индекс и дробь как отдельные сигналы.
Index and fraction as bus
выводит сигнал шины, который включает в себя сигналы индекса и дроби. Использование шины для этих сигналов:
Упрощает модель путем связывания этих двух связанных сигналов вместе
Создание тестовой точки DpResult
структура для библиотеки AUTOSAR 4.0
Для библиотеки AUTOSAR 4.0 избегает создания дополнительных копий во время генерации кода, когда блоки Prelookup и Interpolation Using Prelookup находятся в отдельных моделях
Примечание
Выбор Index and fraction as bus
отображает параметр Output на панели Data Types и устанавливает параметр Output равным Inherit: auto
. Измените это значение по умолчанию, чтобы задать пользовательский объект шины. Для получения дополнительной информации об определении объекта шины смотрите описание параметра Output.
Параметры блоков:
OutputSelection
|
Тип: Вектор символов |
Значения:
'Index and fraction' | 'Index and fraction as bus' | 'Index only' |
По умолчанию:
'Index and fraction'
|
Index search method
- Метод поиска данных точек по оси ХBinary search
(по умолчанию) | Linear search
| Evenly spaced points
Каждый метод поиска имеет преимущества скорости в различных ситуациях:
Для равномерно разнесенных наборов точек по оси Х (для примера, 10, 20, 30 и так далее) вы достигаете оптимальной скорости, выбирая Evenly spaced points
для вычисления индексов таблицы. Этот алгоритм использует только первые две точки прерывания множества, чтобы определить смещение и интервалы между остальными точками.
Для неравномерно расположенных наборов точек по оси Х следуйте следующим рекомендациям:
Если входные значения для u
не изменяйте значительно между временными шагами, выбирая Linear search
с Begin index search using previous index result обеспечивает лучшую эффективность.
Если входные значения для u
прыгать более одного или двух интервалов таблицы за временной шаг, выбирая Binary search
обеспечивает лучшую эффективность.
Неоптимальный выбор метода поиска по индексу может привести к медленной эффективности моделей, которые полагаются в большой степени на интерполяционные таблицы.
Примечание
Сгенерированный код хранит только первую точку останова, интервалы и количество точек останова, когда:
Данные точек по оси Х не настраиваются.
Метод поиска по индексу Evenly spaced points
.
Параметры блоков:
IndexSearchMethod
|
Тип: Вектор символов |
Значения:
'Evenly spaced points' | 'Linear search' | 'Binary search' |
По умолчанию:
'Binary search'
|
Begin index search using previous index result
- Начните поиск с помощью индекса, найденного на предыдущем временном шагеoff
(по умолчанию) | on
Для входных значений u
которые изменяются медленно относительно размера интервала, позволяя этой опции улучшить эффективность. В противном случае линейный поиск и двоичные методы поиска могут занять больше времени, особенно для больших наборов точек по оси Х.
Параметры блоков:
BeginIndexSearchUsingPreviousIndexResult |
Тип: Вектор символов |
Значения:
'off' | 'on' |
По умолчанию:
'off'
|
Extrapolation method
- Метод обработки входных значений вне области допустимого значенияClip
(по умолчанию) | Linear
Опции включают:
Clip
Блочный вход | Выходы блока |
---|---|
Меньше, чем первая точка останова |
|
Больше, чем последняя точка останова |
|
Предположим, что область значений [1 2 3]
и вы выбираете эту опцию. Если u
является 0.5
, индекс 0
и интервал фракция 0
. Если u
является 3.5
, индекс 1
и интервал фракция 1
.
Linear
Блочный вход | Выходы блока |
---|---|
Меньше, чем первая точка останова |
|
Больше, чем последняя точка останова |
|
Предположим, что область значений [1 2 3]
и вы выбираете эту опцию. Если u
является 0.5
, индекс 0
и интервал фракция -0.5
. Если u
является 3.5
, индекс 1
и интервал фракция 1.5
.
Примечание
Блок Prelookup поддерживает линейную экстраполяцию только тогда, когда все следующие условия верны:
Область входа u
, данные точек по оси Х и выходы дроби используют типы данных с плавающей точкой.
Индекс использует встроенный целочисленный тип данных.
Параметры блоков:
ExtrapMethod
|
Тип: Вектор символов |
Значения:
'Clip' | 'Linear'
|
По умолчанию:
'Clip'
|
Use last breakpoint for input at or above upper limit
- Метод обработки входов на верхнем пределе или вышеoff
(по умолчанию) | on
Задайте, как индексировать входные значения u
которые больше или равны последней точке останова. Значение индекса меньше нуля на основе. Когда вход равен последней точке останова, выходы блоков различаются следующим образом.
Флажок | Выходы блока |
---|---|
Выбран ( |
|
Очищено ( |
|
Совет
При выборе Use last breakpoint for input at or above upper limit для блока Prelookup необходимо также выбрать Valid index input may reach last index для блока Interpolation Using Prelookup, с которым он соединяется. Это действие позволяет блокам использовать одно и то же условие индексации при доступе к последним элементам их наборов данных точек по оси Х и таблиц.
Этот флажок видим только тогда, когда:
Output only the index очищено
Extrapolation method Clip
Однако, когда Output only the index выбран и Extrapolation method Clip
блок ведет себя так, как будто этот флажок установлен, даже если он невидим.
Параметры блоков:
UseLastBreakpoint
|
Тип: Вектор символов |
Значения:
'off' | 'on'
|
По умолчанию:
'off'
|
Diagnostic for out-of-range input
- Блокируйте действие, когда вход вне области значенийNone
(по умолчанию) | Warning
| Error
Опции включают:
None
- Нет ответа.
Warning
- Отобразите предупреждение и продолжите симуляцию.
Error
- Завершите симуляцию и отобразите ошибку.
Параметры блоков:
DiagnosticForOutOfRangeInput
|
Тип: Вектор символов |
Значения:
'None' | 'Warning' | 'Error'
|
По умолчанию:
'None'
|
Remove protection against out-of-range input in generated code
- Удалите код, который проверяет входные входы точек прерывания вне области допустимого значенияOff
(по умолчанию) | On
Флажок | Результат | Когда использовать |
---|---|---|
| Сгенерированный код не включает условные операторы для проверки входных входов точек прерывания вне области допустимого. Когда вход находится вне области допустимого, это может вызвать неопределенное поведение сгенерированного кода. | Для эффективности кода |
| Сгенерированный код включает условные операторы для проверки входных входов точек прерывания вне области допустимого. | Для критически важных приложений |
Если ваш вход не находится вне области допустимого, можно установить флажок 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, и вход находится вне области допустимого, поведение не определено для сгенерированного кода
В зависимости от вашего приложения, можно запустить следующие проверки Model Advisor, чтобы проверить использование этого флажка:
Кроме того, чтобы определить, безопасно ли устанавливать этот флажок, если у вас есть лицензия Simulink Design Verifier™, рассмотрите использование проверки Обнаружить нарушения входной области значений блоков (Simulink Design Verifier).
By Product> Embedded Coder> Identify lookup table blocks that generate expensive out-of-range checking code
By Product> Simulink Check> Modeling Standards> DO-178C/DO-331 Checks> Check usage of lookup table blocks
Дополнительные сведения о Model Advisor см. в разделе Запуск проверок Model Advisor.
Параметры блоков:
RemoveProtectionInput
|
Тип: Вектор символов |
Значения:
'off' | 'on'
|
По умолчанию:
'off'
|
Sample time
- Задайте время расчета как значение, отличное от -1
-1
(по умолчанию) | скалярный вектор |Задайте шаг расчета как значение, отличное от -1. Для получения дополнительной информации см. Раздел «Задание шага расчета».
Этот параметр не отображается, если он явно не установлен на значение, отличное от -1
. Для получения дополнительной информации смотрите Блоки, для которых шаг расчета не рекомендован.
Параметры блоков:
SampleTime
|
Тип: Вектор символов |
Значения: скаляр или вектор |
По умолчанию:
'-1'
|
Breakpoint
- Тип данных точек по оси ХInherit: Same as 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)
| Enum: <class name>
| <data type expression>
Укажите тип данных точек по оси Х. Вы можете установить его на:
Правило, которое наследует тип данных, например Inherit: Same as input
Имя встроенного типа данных, например single
Имя класса типа данных, например, класса перечисленных типов данных
Выражение, которое вычисляется как тип данных, например fixdt(1,16,0)
Нажмите кнопку Show data type assistant, чтобы отобразить Data Type Assistant, которая помогает вам задать атрибуты type данных. Для получения дополнительной информации смотрите Задать типы данных Используя Data Type Assistant.
Совет
Задайте тип данных точек по оси Х, отличный от типа данных входов u
для этих случаев:
Более низкие требования к памяти для хранения данных точек по оси Х, которые используют меньший тип, чем входной сигнал u
Совместное использование предварительных данных точек по оси Х между двумя блоками Prelookup с различными типами данных для входных u
Совместное использование пользовательских данных точек по оси Х в сгенерированном коде для блоков с различными типами данных для входных u
Задайте тот же наклон и смещение для типа данных точек по оси Х и его соответствующего типа входных данных, если любой из них имеет тип данных с фиксированной точкой.
Перечисленные данные:
Точки останова поддерживают неупорядоченные перечисленные данные. В результате линейный поиск также не упорядочен, что обеспечивает гибкость, но может повлиять на эффективность. Поиск начинается с первого элемента точки останова.
Если установлен флажок Begin index search using previous index result, необходимо использовать упорядоченные монотонно увеличивающиеся данные. Это упорядоченное расположение повышает эффективность.
Для перечисленных данных Extrapolation method должны быть Clip
.
Потому что дробь 1
или 0
выберите Output selection > Index only.
Если вы используете только настройку выхода индекса с блоком Interpolation Using Prelookup, рассмотрите использование параметра Number of sub-table selection dimensions.
Это ограничения для использования перечисленных данных с этим блоком:
Блок не поддерживает входной параметр вне области допустимого для перечисленных данных. При указании перечисленных данных включите весь набор перечислений в набор данных точек по оси Х. Для примера используйте enumeration
функция.
Когда источник данных точек по оси Х установлен в Inport port
, тип данных перечисления должен иметь 0
как значение по умолчанию. Для примера для этого класса перечисления значение по умолчанию GEAR1
должен быть 0
.
classdef(Enumeration) Gears < Simulink.IntEnumType enumeration GEAR1(1), GEAR2(2), GEAR3(4), GEAR4(8), SPORTS(16), REVERSE(32), NEUTRAL(0) end end
Чтобы включить этот параметр, установите Source данных точек останова на Dialog
.
Примечание
Когда вы задаете Source Input port
блок наследует все атрибуты точек по оси Х (тип данных, минимум и максимум) от bp
входной порт.
Параметры блоков:
BreakpointDataTypeStr
|
Тип: Вектор символов |
Значения:
'Inherit: Same as 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 input'
|
Index
- Тип данных индексаuint32
(по умолчанию) | int8
| uint8
| int16
| uint16
| int32
| uint32
| int64
| uint64
| fixdt(1,16)
| <data type expression>
Укажите тип данных, который может индексировать все элементы в наборе данных точек по оси Х. Вы можете:
Выберите встроенный тип целочисленных данных из списка.
Задайте целочисленный тип данных с помощью представления с фиксированной точкой.
Нажмите кнопку Show data type assistant, чтобы отобразить Data Type Assistant, которая помогает вам задать атрибуты type данных. Для получения дополнительной информации смотрите Задать типы данных Используя Data Type Assistant.
Параметры блоков:
IndexDataTypeStr
|
Тип: Вектор символов |
Значения: |
'int8' | 'uint8' | 'int16' | 'uint16' | 'int32' | 'uint32' | 'int64' | 'uint64' | 'fixdt(1,16)' | '<data type expression>' |
По умолчанию:
'uint32'
|
Fraction
- Тип данных дробиInherit: Inherit via internal rule
(по умолчанию) | double
| single
| fixdt(1,16,0)
| <data type expression>
Задайте тип данных дроби интервалов. Вы можете:
Выберите встроенный тип данных из списка.
Задайте наследование типа данных через внутреннее правило.
Задайте тип данных с фиксированной точкой с помощью представления масштабирования [Смещение уклона] или только для двоичной точки.
Если вы используете представление [Смещение уклона], масштабирование должно быть тривиальным - то есть наклон 1
и смещение 0
.
Если вы используете представление только для двоичных точек, фиксированная степень двойки должна быть меньше или равной нулю.
Нажмите кнопку Show data type assistant, чтобы отобразить Data Type Assistant, которая помогает вам задать атрибуты type данных. Для получения дополнительной информации смотрите Задать типы данных Используя Data Type Assistant.
Этот параметр отображается только, когда вы задаете Output selection на вкладке Main равным Index and fraction
.
Параметры блоков:
FractionDataTypeStr
|
Тип: Вектор символов |
Значения:
'Inherit: Inherit via internal rule' | 'double' | 'single' | 'fixdt(1,16,0)' | '<data type expression>' |
По умолчанию:
'Inherit: Inherit via internal rule'
|
Output
- Тип выходных данныхInherit: auto
(по умолчанию) | bus: <object name>
Для вывода виртуальной шины используйте Inherit: auto
настройка. Получившаяся виртуальная шина содержит два элемента, индекс и сигналы дроби.
Чтобы вывести и задать невиртуальную шину, используйте Bus: <object name>
шаблон. Замените <object name>
с именем объекта шины, который содержит сигналы индекса и дроби.
Объект шины должен содержать два элемента. Первый элемент соответствует сигналу индекса, а второй - сигналу дроби.
Сигналы элемента индекса и дроби не могут быть сигналами шины.
Тип данных и сложность элементов шины должны удовлетворять тем же ограничениям, которые применяются к сигналам индекса и дроби, если вы задаете Output selection Index and fraction
.
Чтобы создать объект шины с элементами index и fraction, используйте MATLAB® аналогичный код, настройка имени объекта шины, а также имен и типов данных элементов шины.
% Bus object: kfBus elems(1) = Simulink.BusElement; elems(1).Name = 'Index'; elems(1).DataType = 'int8'; elems(2) = Simulink.BusElement; elems(2).Name = 'Fraction'; elems(2).DataType = 'double'; kfBus = Simulink.Bus; kfBus.Elements = elems; clear elems;
Также можно использовать Редактор шин для создания или изменения объекта шины для использования с блоком Prelookup.
Если вы подаете выходной сигнал шины от этого блока на блок Interpolation Using Prelookup, установите флажок Require index and fraction as bus в этом блоке.
Примечание
Используйте опцию переопределения типа данных Fixed-Point Tool, чтобы переопределить объекты шины новыми объектами шины, которые заменяют типы данных с фиксированной точкой на типы данных с плавающей точкой.
Переопределенные объекты шины, используемые с блоком Prelookup, могут вызвать ошибку, поскольку блок не принимает типы данных с плавающей точкой для первого элемента шины.
Если вы столкнулись с этой проблемой, используйте кнопку Fix, чтобы переопределить исходный объект шины и защитить его от переопределения. Например, предположим, что первый элемент объекта шины будет int32
.
myBus.Elements(1).DataType
int32
Нажатие кнопки Fix переопределяет первый элемент шины:
myBus.Elements(1).DataType = 'fixdt(''int32'',''DataTypeOverride'',''Off'')'
Нажмите кнопку Show data type assistant, чтобы отобразить Data Type Assistant, которая помогает вам задать атрибуты type данных. Для получения дополнительной информации смотрите Задать типы данных Используя Data Type Assistant.
Этот параметр отображается только, когда вы задаете Output selection на вкладке Main равным Index and fraction as bus
.
Параметры блоков:
OutputBusDataTypeStr
|
Тип: Вектор символов |
Значения:
'Inherit: auto' | 'Bus: <object name>' | '<data type expression>' |
По умолчанию:
'Inherit: auto'
|
Breakpoint Minimum
- Минимальное значение данных точек по оси Х может иметь[]
(по умолчанию) | скаляромЗадайте минимальное значение, которое могут иметь данные точек по оси Х. Значение по умолчанию []
(не определено).
Чтобы включить этот параметр, установите Source данных точек останова на Dialog
на вкладке Main.
Параметры блоков:
BreakpointMin
|
Тип: Вектор символов |
Значение: скаляр |
По умолчанию:
'[]'
|
Breakpoint Maximum
- Максимальное значение данных точек по оси Х может иметь[]
(по умолчанию) | скаляромЗадайте максимальное значение, которое могут иметь данные точек по оси Х. Значение по умолчанию []
(не определено).
Чтобы включить этот параметр, установите Source данных точек останова на Dialog
на вкладке Main.
Параметры блоков:
BreakpointMax
|
Тип: Вектор символов |
Значение: скаляр |
По умолчанию:
'[]'
|
Lock output data type setting against changes by the fixed-point tools
- Предотвратите переопределение типа выходных данных инструментами с фиксированной точкойoff
(по умолчанию) | on
Выберите этот параметр, чтобы предотвратить переопределение инструментами с фиксированной точкой типа данных Output, заданного на блоке. Для получения дополнительной информации смотрите Использование настройки типа выходных данных блокировки (Fixed-Point Designer).
Параметры блоков:
LockScale
|
Тип: Вектор символов |
Значения:
'off' | 'on'
|
По умолчанию:
'off'
|
Integer rounding mode
- Режим округления для операций с фиксированной точкойFloor
(по умолчанию) | Ceiling
| Convergent
| Nearest
| Round
| Simplest
| Zero
Задайте режим округления для операций с фиксированной точкой. Для получения дополнительной информации см. раздел Округление (Fixed-Point Designer).
Параметры блоков всегда округлятся до ближайшего представимого значения. Чтобы контролировать округление параметров блоков, введите выражение с помощью функции округления MATLAB в поле маски.
Параметры блоков:
RndMeth
|
Тип: Вектор символов |
Значения:
'Ceiling' | 'Convergent' | 'Floor' | 'Nearest' | 'Round' | 'Simplest' | 'Zero' |
По умолчанию:
'Floor'
|
Типы данных |
|
Прямое сквозное соединение |
|
Многомерные сигналы |
|
Сигналы переменного размера |
|
Обнаружение пересечения нулем |
|
Симулируйте блок Prelookup с перечисленными значениями.
Предположим, что у вас есть блок Prelookup с перечисленным классом, таким как этот заданный:
classdef(Enumeration) Gears < Simulink.IntEnumType enumeration GEAR1(1), GEAR2(2), GEAR3(4), GEAR4(8), SPORTS(16), REVERSE(-1), NEUTRAL(0) end end
Блок Prelookup имеет следующие настройки:
Breakpoints data значение enumeration('Gears')
.
Output selection Index only
.
Для неупорядоченного поиска установите Index search method равным Linear search
и снимите флажок Begin index search using previous index result.
Extrapolation method Clip
.
Интерполяция с использованием блока Prelookup имеет следующие настройки:
Number of dimensions с 1
.
Table data значение [5 10 20 40 80 -5 0]
.
Interpolation method Flat
.
Number of sub-table selection dimensions 1
.
Симуляция создает вектор [10 -5 80]
, которые соответствуют GEAR2
, REVERSE
, и SPORTS
.
HDL Coder™ предоставляет дополнительные опции строения, которые влияют на реализацию HDL и синтезированную логику.
Этот блок имеет одну архитектуру HDL по умолчанию.
ConstrainedOutputPipeline | Количество регистров для размещения на выходах путем перемещения существующих задержек в рамках вашего проекта. Распределённая конвейеризация не перераспределяет эти регистры. Значение по умолчанию является |
InputPipeline | Количество входных этапов конвейера для вставки в сгенерированный код. Распределённая конвейеризация и ограниченная выходная конвейеризация могут перемещать эти регистры. Значение по умолчанию является |
OutputPipeline | Количество выходных этапов конвейера для вставки в сгенерированный код. Распределённая конвейеризация и ограниченная выходная конвейеризация могут перемещать эти регистры. Значение по умолчанию является |
Необходимые настройки блоков
Breakpoint data: Для Source выберите Dialog
.
Specification: Можно выбрать один из Explicit values
или Even spacing
.
Index search method: Выбор Evenly spaced points
.
Extrapolation method: Выбор Clip
.
Diagnostic for out-of-range input: Выбор Error
.
Use last breakpoint for input at or above upper limit: Установите этот флажок.
Breakpoint: Для Data Type выберите Inherit: Same as input
.
Integer rounding mode: Выбор Zero
, Floor
, или Simplest
.
Типирование и калибровка данных таблицы
Рекомендуется структурировать таблицу так, чтобы интервал между точками останова был степенью двойки. Если интервал между точками останова не соответствует этому условию, HDL Coder выдает предупреждение. Когда интервал между точками по оси Х является степенью двойки, можно заменить операции деления на этапе предварительного подключения на операции правой смены.
Все порты блока требуют скалярных значений.
Кодер разрешает использование данных с плавающей точкой для точек останова.
Simulink PLC Coder имеет ограниченную поддержку блоков интерполяционной таблицы. Кодер не поддерживает:
Количество размерностей больше 2
Метод кубической сплайн интерполяции
Начните поиск по индексу в предыдущем режиме
Метод экстраполяции кубического сплайна
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.