Вычислите индекс и часть для блока Interpolation Using Prelookup
Simulink / Интерполяционные таблицы
HDL Coder / Интерполяционные таблицы
Блок Prelookup вычисляет индекс и часть интервала, которые задают как ее входное значение u
относится к набору данных точки останова. Кладка блоков Перед поиском лучше всего с блоком Interpolation Using Prelookup. Питайте получившийся индекс и дробные значения в блок Interpolation Using Prelookup, чтобы интерполировать n-мерную таблицу. Эти два блока распределили алгоритмы. Когда объединено вместе, они выполняют ту же операцию как интегрированный алгоритм в блоке n-D Lookup Table. Однако Предварительный поиск и блоки 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® поддерживает, кроме булевской переменной. Блок Prelookup поддерживает типы данных с фиксированной точкой для данных о точке останова и сигналов.
Типы данных: half
| single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| fixed point
| enumerated
| bus
bp
— Установите точки останова данныеБлок Prelookup принимает сигналы с действительным знаком как данные о точке останова любого типа числовых данных, что Simulink поддерживает, кроме булевской переменной.
Типы данных: 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
— Установите точки останова значения данных
(значение по умолчанию) | вектор из строго монотонно увеличения значений, содержащих два или больше элементаЯвным образом задайте данные о точке останова. Каждый набор данных точки останова должен быть строго монотонно увеличивающимся вектором, который содержит два или больше элемента. Для этой опции вы задаете дополнительные атрибуты точки останова на панели Data Types.
Чтобы открыть Редактор Интерполяционной таблицы, нажмите Edit (см. Интерполяционные таблицы Редактирования).
Примечание
Когда вы устанавливаете Specification на Explicit values
и Source к Input port
, проверьте, что восходящий сигнал снабжает данными о точке останова к bp
входной порт. Каждый набор данных точки останова должен быть строго монотонно увеличивающимся вектором, который содержит два или больше элемента. Для этой опции ваш блок наследовал атрибуты точки останова (включая тип данных) от bp
входной порт.
Чтобы включить этот параметр, установите Specification на Explicit values
и Source к Dialog
.
Параметры блоков:
BreakpointsData |
Ввод: символьный вектор |
Значения: вектор из строго монотонно увеличения значений, содержащих два или больше элемента |
Значение по умолчанию:
'[10:10:110]' |
First point
— Сначала укажите в равномерно расположенных с интервалами данных о точке останова
(значение по умолчанию) | real-valued scalar
Чтобы включить этот параметр, установите Specification на Even spacing
.
Параметры блоков:
BreakpointsFirstPoint |
Ввод: символьный вектор |
Значения:
real-valued scalar |
Значение по умолчанию:
'10' |
Spacing
— Интервал между равномерно расположенными с интервалами точками останова
(значение по умолчанию) | real-valued, positive scalar
Чтобы включить этот параметр, установите Specification на Even spacing
.
Параметры блоков:
BreakpointsSpacing |
Ввод: символьный вектор |
Значения:
real-valued, positive scalar |
Значение по умолчанию:
'10' |
Number of points
— Количество равномерно разнесенных точек
(значение по умолчанию) | real-valued, positive scalar
Чтобы включить этот параметр, установите Specification на Even spacing
.
Параметры блоков:
BreakpointsNumPoints |
Ввод: символьный вектор |
Значения:
real-valued, positive scalar |
Значение по умолчанию:
'11' |
Name
— Имя Simulink.Breakpoint
объектno default
| Simulink.Breakpoint
Задайте имя Simulink.Breakpoint
объект. Точка останова ссылки на объект объекты точки останова Simulink. Если 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
. Чтобы узнать больше, смотрите Блоки, для Которых Не Рекомендуется Шаг расчета.
Параметры блоков:
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, который помогает вам установить атрибуты типа данных. Для получения дополнительной информации смотрите, Задают Типы данных Используя Ассистент Типа данных.
Совет
Задайте тип данных точки останова, отличающийся от типа данных входа 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, который помогает вам установить атрибуты типа данных. Для получения дополнительной информации смотрите, Задают Типы данных Используя Ассистент Типа данных.
Параметры блоков:
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, который помогает вам установить атрибуты типа данных. Для получения дополнительной информации смотрите, Задают Типы данных Используя Ассистент Типа данных.
Этот параметр отображается только, когда вы устанавливаете 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
.
Чтобы создать объект шины с индексом и дробными элементами шины, используйте код 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, который помогает вам установить атрибуты типа данных. Для получения дополнительной информации смотрите, Задают Типы данных Используя Ассистент Типа данных.
Этот параметр отображается только, когда вы устанавливаете 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
— Препятствуйте тому, чтобы Fixed-Point Tool заменили тип Выходных данныхoff
(значение по умолчанию) | on
Выберите этот параметр, чтобы препятствовать тому, чтобы Fixed-Point Tool заменили тип данных Output, который вы задаете на блоке. Для получения дополнительной информации смотрите, что Тип Выходных данных Блокировки Использования Устанавливает (Fixed-Point Designer).
Параметры блоков:
LockScale |
Ввод: символьный вектор |
Значения:
'off' | 'on' |
Значение по умолчанию:
'off' |
Integer rounding mode
— Режим Rounding для операций фиксированной точки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
реверс
, и SPORTS
.
HDL Coder™ обеспечивает дополнительные параметры конфигурации, которые влияют на реализацию HDL и синтезируемую логику.
Этот блок имеет одну, архитектуру HDL по умолчанию.
ConstrainedOutputPipeline | Количество регистров, чтобы поместить при выходных параметрах путем перемещения существующих задержек в рамках проекта. Распределенная конвейеризация не перераспределяет эти регистры. |
InputPipeline | Количество входных настроек канала связи, чтобы вставить в сгенерированный код. Распределенная конвейеризация и ограниченная выходная конвейеризация могут переместить эти регистры. |
OutputPipeline | Количество выходных настроек канала связи, чтобы вставить в сгенерированный код. Распределенная конвейеризация и ограниченная выходная конвейеризация могут переместить эти регистры. |
Необходимые настройки блока
Breakpoint data: Для Source выберите Dialog
.
Specification: можно выбрать Explicit values
или Even spacing
.
Index search method: выберите Evenly spaced points
.
ExtrapolationMethod : выберите 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
пол
, или Simplest
.
Табличный ввод данных и калибровка
Это - хорошая практика, чтобы структурировать вашу таблицу, таким образом, что интервал между точками останова является степенью двойки. Если интервал точки останова не удовлетворяет этому условию, HDL Coder выдает предупреждение. Когда интервал точки останова является степенью двойки, можно заменить операции деления на шаге перед поиском с операциями сдвига вправо.
Все порты на блоке требуют скалярных значений.
Кодер разрешает данные с плавающей точкой для точек останова.
Simulink PLC Coder ограничил поддержку блоков интерполяционной таблицы. Кодер не поддерживает:
Количество размерностей, больше, чем 2
Метод интерполяции кубическим сплайном
Начните поиск по индексу с помощью предыдущего режима индексации
Кубический метод экстраполяции сплайна
Interpolation Using Prelookup | n-D Lookup Table | Simulink.Breakpoint
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.