Вычислить индекс и дробь для интерполяции с использованием блока Prelookup
Таблицы Simulink/Lookup
Таблицы кодера/поиска HDL
Блок Prelookup вычисляет индекс и дробь интервала, которые определяют, как его входное значение u относится к набору данных точек останова. Блок Prelookup лучше всего работает с блоком Interpolation Using Prelookup. Для интерполяции n-мерной таблицы введите результирующие значения индекса и дроби в блок интерполяции с использованием Prelookup. Эти два блока имеют распределенные алгоритмы. При объединении они выполняют ту же операцию, что и интегрированный алгоритм в блоке n-D Lookup Table. Однако блоки Prelookup и Interpolation Using Prelookup обеспечивают большую гибкость и более эффективное моделирование и генерацию кода, чем блок n-D Lookup Table. Дополнительные сведения см. в разделе Эффективность производительности.
Чтобы использовать блок Prelookup, необходимо указать набор значений точек останова. Можно указать значения точек останова непосредственно в диалоговом окне или путем подачи значений в bp входной порт путем установки для параметра Source значения Dialog или Input port. Как правило, этот набор данных точек останова соответствует одному измерению данных таблицы в блоке интерполяции с использованием Prelookup. Блок Prelookup генерирует пару выходов для каждого входного значения u вычислением:
Индекс элемента набора точек останова, который меньше или равен u и формирует интервал, содержащий u
Доля интервала в диапазоне 0 ≤ f < 1, представляющая нормализованное положение u на интервале точек останова между индексом и следующим значением индекса для входа в диапазон
Например, если набор данных точки останова [0 5 10 20 50 100] и входное значение u 55, индекс 4 и дробное значение 0,1. Метки для индекса и доли интервала отображаются в виде k и f на значке блока Prelookup. Значение индекса равно нулю.
Доля интервала может быть отрицательной или больше, чем 1 для входа вне диапазона. Дополнительные сведения см. в разделе Параметр блока метода экстраполяции.
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 значение Index and fraction или Index only.
Типы данных: int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | fixed point
f - Доля, представляющая нормализованное положение входа, u, в пределах интервала, kДробь, f, представляет нормализованное положение входа, u, в пределах интервала k.
Чтобы включить этот порт, установите для параметра Output значение Index and fraction.
Типы данных: single | double | fixed point
Port_2 - Шина, содержащая индекс, k и дробь, fВывод индекса, k и дроби f в виде объекта шины может помочь упростить модель.
Чтобы включить этот порт, установите для параметра Output значение Index and fraction as bus.
Типы данных: bus
Specification - Выбор способа ввода данных точек остановаExplicit values (по умолчанию) | Even spacing | Breakpoint objectЕсли для этого параметра задано значение:
Explicit valuesпараметры «Источник» и «Значение» отображаются в диалоговом окне.
Even spacingв диалоговом окне отображаются параметры «Первая точка», «Интервал» и «Количество точек».
Breakpoint object, параметр «Имя» отображается в диалоговом окне.
Параметр блока:
BreakpointsSpecification |
| Текст: символьный вектор |
Значения:
'Explicit values' | 'Even spacing' | 'Breakpoint object' |
По умолчанию:
'Explicit values' |
Source - Укажите источник данных точек остановаDialog (по умолчанию) | Input portЕсли для параметра Источник задано значение:
Dialog, укажите данные точки останова в поле «Значение».
Input port, убедитесь, что восходящий сигнал передает данные точки останова в bp входной порт. Каждый набор данных точек останова должен быть строго монотонно увеличивающимся вектором, содержащим два или более элементов. Для этого параметра блок наследует атрибуты точки останова от bp входной порт.
Чтобы включить этот параметр, установите для параметра Спецификация значение Explicit values.
Параметр блока:
BreakpointsDataSource |
| Текст: символьный вектор |
Значения:
'Dialog' | 'Input port' |
По умолчанию:
'Dialog' |
Value - Значения данных точек останова[10:10:110] (по умолчанию) | вектор строго монотонно возрастающих значений, содержащий два или более элементовЯвно укажите данные точки останова. Каждый набор данных точек останова должен быть строго монотонно увеличивающимся вектором, содержащим два или более элементов. Для этого параметра необходимо указать дополнительные атрибуты точки останова на панели «Типы данных».
Чтобы открыть редактор таблиц подстановки, нажмите кнопку «Изменить» (см. раздел «Редактирование таблиц подстановки»).
Примечание
Если для параметра «Спецификация» задано значение Explicit values и источник в Input port, убедитесь, что восходящий сигнал передает данные точки останова в bp входной порт. Каждый набор данных точек останова должен быть строго монотонно увеличивающимся вектором, содержащим два или более элементов. Для этого параметра блок наследует атрибуты точки останова (включая тип данных) из bp входной порт.
Чтобы включить этот параметр, установите для параметра Спецификация значение Explicit values и источник в Dialog.
Параметр блока:
BreakpointsData |
| Текст: символьный вектор |
| Значения: вектор строго монотонно возрастающих значений, содержащий два или более элементов |
По умолчанию:
'[10:10:110]' |
First point - Первая точка в равномерно разнесенных данных точек останова10 (по умолчанию) | real-valued scalarЧтобы включить этот параметр, установите для параметра Спецификация значение Even spacing.
Параметр блока:
BreakpointsFirstPoint |
| Текст: символьный вектор |
Значения:
real-valued scalar |
По умолчанию:
'10' |
Spacing - Интервал между равномерно расположенными точками останова10 (по умолчанию) | real-valued, positive scalarЧтобы включить этот параметр, установите для параметра Спецификация значение Even spacing.
Параметр блока:
BreakpointsSpacing |
| Текст: символьный вектор |
Значения:
real-valued, positive scalar |
По умолчанию:
'10' |
Number of points - Количество равномерно разнесенных точек11 (по умолчанию) | real-valued, positive scalarЧтобы включить этот параметр, установите для параметра Спецификация значение Even spacing.
Параметр блока:
BreakpointsNumPoints |
| Текст: символьный вектор |
Значения:
real-valued, positive scalar |
По умолчанию:
'11' |
Name - Наименование Simulink.Breakpoint объектno default | Simulink.BreakpointУкажите имя Simulink.Breakpoint объект. Объект точки останова ссылается на объекты точки останова Simulink. Если Simulink.Breakpoint объект не существует, нажмите кнопку действия
и выберите Создать. Соответствующие параметры нового объекта точки останова автоматически заполняются информацией о блоке.
Чтобы включить этот параметр, установите для параметра Спецификация значение Breakpoint object.
Параметр блока:
BreakpointObject |
| Текст: символьный вектор |
Значения:
Simulink.Breakpoint объект |
По умолчанию:
'' |
Output selection - Указать сигналы на выходе блокаIndex and fraction (по умолчанию) | Index and fraction as bus | Index onlyЕсли требуется, чтобы блок выводил индекс и дробь интервала, можно указать, будет ли блок выводить отдельные сигналы или сигнал шины, который включает в себя сигналы индекса и дроби.
Index only выводит только индекс, без дроби. Типичные приложения для этого варианта включают в себя:
Подача блока таблицы прямого поиска (n-D) без интерполяции в интервале
Подача портов выбора поднабора для блока интерполяции с использованием 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 на панели «Типы данных» и устанавливает для параметра Output значение Inherit: auto. Измените это значение по умолчанию, чтобы указать определяемый пользователем объект шины. Дополнительные сведения об определении объекта шины см. в разделе Описание выходного параметра.
Параметр блока:
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 с началом поиска индекса с использованием предыдущего результата индекса обеспечивает наилучшую производительность.
Если входные значения для 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 before upper limit for a Prelookup block необходимо также выбрать параметр Valid index input to last index for Interpolation Using Prelookup block, к которому он подключается. Это действие позволяет блокам использовать одно и то же соглашение об индексировании при обращении к последним элементам их наборов данных точек останова и таблиц.
Этот флажок отображается только в следующих случаях:
Вывод только индекса очищен
Метод экстраполяции: Clip
Однако при выборе параметра «Вывод только индекса» метод экстраполяции имеет значение 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| Флажок | Результат | Когда использовать |
|---|---|---|
| Созданный код не включает условные операторы для проверки входов точек останова вне диапазона. Если входные данные находятся вне допустимого диапазона, это может привести к неопределенному поведению сгенерированного кода. | Для эффективности кода |
| Созданный код включает условные операторы для проверки входов точек останова вне диапазона. | Для критически важных для безопасности приложений |
Если введенные данные не выходят за пределы допустимого диапазона, можно установить флажок Удалить защиту от индекса вне допустимого диапазона в сгенерированном коде для обеспечения эффективности кода. По умолчанию этот флажок снят. Для критически важных для безопасности приложений не устанавливайте этот флажок. Если необходимо установить флажок Удалить защиту от индекса вне диапазона в сгенерированном коде, сначала проверьте, что входные данные модели находятся в диапазоне. Например:
Снимите флажок Удалить защиту от индекса вне диапазона в сгенерированном коде.
Установите для входного параметра Diagnostic for out-of-range значение Error.
Моделирование модели в обычном режиме.
Если имеются ошибки вне диапазона, исправьте их, чтобы они находились в диапазоне, и запустите моделирование снова.
Если моделирование больше не создает ошибки ввода вне диапазона, установите флажок Удалить защиту от индекса вне диапазона в сгенерированном коде.
Примечание
При установке флажка Удалить защиту от индекса вне диапазона в сгенерированном коде, когда входные данные находятся вне диапазона, поведение для сгенерированного кода не определено
В зависимости от приложения можно выполнить следующие проверки Model Advisor для проверки использования этого флажка.
Кроме того, чтобы определить, безопасно ли устанавливать этот флажок, если у вас есть лицензия Simulink Design Verifier™, попробуйте использовать проверку обнаружения нарушений диапазона ввода блоков (Simulink Design Verifier).
По продукту > Embedded Coder > Определение блоков таблицы поиска, которые создают дорогостоящий код проверки за пределами диапазона
По продукту > Simulink Check > Modeling Standards > DO-178C/DO-331 Checks > Проверка использования блоков таблицы подстановки
Дополнительные сведения о модуле 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)
Нажмите кнопку Показать помощник по типам данных
, чтобы отобразить помощник по типам данных, который помогает задать атрибуты типов данных. Дополнительные сведения см. в разделе Определение типов данных с помощью помощника по типам данных.
Совет
Укажите тип данных точки останова, отличный от типа данных ввода u для этих случаев:
Меньшие требования к памяти для хранения данных точек останова, использующих меньший тип, чем входной сигнал u
Совместное использование предписанных данных точек останова между двумя блоками Prelookup с различными типами данных для ввода u
Совместное использование пользовательских данных точек останова хранилища в созданном коде для блоков с различными типами данных для ввода u
Укажите один и тот же наклон и смещение для типа данных точки останова и соответствующего ему типа входных данных, если любой из них имеет тип данных с фиксированной точкой.
Перечисляемые данные:
Точки останова поддерживают неупорядоченные перечисляемые данные. В результате линейный поиск также не упорядочен, что обеспечивает гибкость, но может повлиять на производительность. Поиск начинается с первого элемента в точке останова.
Если установлен флажок Начать поиск индекса с использованием предыдущего результата индекса, необходимо использовать упорядоченные монотонно увеличивающиеся данные. Этот заказ повышает производительность.
Для перечисляемых данных метод экстраполяции должен быть Clip.
Потому что дробь 1 или 0выберите «Выбор вывода» > «Только индекс».
Если используется параметр выбора только для выходных данных индекса с блоком Интерполяция с использованием прелукапа (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
Чтобы включить этот параметр, установите значение источника данных точек останова Dialog.
Примечание
При установке для параметра «Источник» значения 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>Укажите тип данных, который может индексировать все элементы в наборе данных точек останова. Вы можете:
Выберите встроенный тип целочисленных данных из списка.
Укажите целочисленный тип данных с помощью представления с фиксированной точкой.
Нажмите кнопку Показать помощник по типам данных
, чтобы отобразить помощник по типам данных, который помогает задать атрибуты типов данных. Дополнительные сведения см. в разделе Определение типов данных с помощью помощника по типам данных.
Параметр блока:
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.
Если используется представление binary-point-only, степень фиксированной степени двух должна быть меньше или равна нулю.
Нажмите кнопку Показать помощник по типам данных
, чтобы отобразить помощник по типам данных, который помогает задать атрибуты типов данных. Дополнительные сведения см. в разделе Определение типов данных с помощью помощника по типам данных.
Этот параметр отображается только при установке для параметра «Вывод» на вкладке «Главная» значения 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> с именем объекта шины, содержащего сигналы индекса и дроби.
Объект шины должен содержать два элемента. Первый элемент соответствует индексному сигналу, а второй - дробному сигналу.
Сигналы шинного элемента с индексом и дробью не могут быть шинными сигналами.
Тип данных и сложность элементов шины должны соответствовать тем же ограничениям, которые применяются к сигналам индексов и дробей, если для параметра «Вывод» задано значение 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.
Если выходной сигнал шины из этого блока подается в блок интерполяции с использованием Prelookup, установите флажок Require index and fraction as bus в этом блоке.
Примечание
Параметр переопределения типа данных инструмента «Фиксированная точка» используется для переопределения объектов шины новыми объектами шины, которые заменяют типы данных с фиксированной точкой типами данных с плавающей точкой.
Переопределенные объекты шины, используемые с блоком Prelookup, могут вызвать ошибку, поскольку блок не принимает типы данных с плавающей запятой для первого элемента шины.
При возникновении этой проблемы используйте кнопку «Исправить», чтобы переопределить исходный объект шины и защитить его от переопределения. Например, предположим, что первый элемент объекта шины должен быть int32.
myBus.Elements(1).DataType
int32
Нажатие кнопки Fix переопределяет первый элемент шины:
myBus.Elements(1).DataType = 'fixdt(''int32'',''DataTypeOverride'',''Off'')'Нажмите кнопку Показать помощник по типам данных
, чтобы отобразить помощник по типам данных, который помогает задать атрибуты типов данных. Дополнительные сведения см. в разделе Определение типов данных с помощью помощника по типам данных.
Этот параметр отображается только при установке для параметра «Вывод» на вкладке «Главная» значения Index and fraction as bus.
Параметр блока:
OutputBusDataTypeStr |
| Текст: символьный вектор |
Значения:
'Inherit: auto' | 'Bus: <object name>' | '<data type expression>' |
По умолчанию:
'Inherit: auto' |
Breakpoint Minimum - Минимальное значение данных точки останова может иметь[] (по умолчанию) | скалярУкажите минимальное значение, которое могут иметь данные точки останова. Значение по умолчанию: [] (не указано).
Чтобы включить этот параметр, установите значение источника данных точек останова Dialog на вкладке «Главная».
Параметр блока:
BreakpointMin |
| Текст: символьный вектор |
| Значение: скаляр |
По умолчанию:
'[]' |
Breakpoint Maximum - Максимальное значение данных точки останова может иметь[] (по умолчанию) | скалярУкажите максимальное значение, которое могут иметь данные точки останова. Значение по умолчанию: [] (не указано).
Чтобы включить этот параметр, установите значение источника данных точек останова Dialog на вкладке «Главная».
Параметр блока:
BreakpointMax |
| Текст: символьный вектор |
| Значение: скаляр |
По умолчанию:
'[]' |
Lock output data type setting against changes by the fixed-point tools - Запретить переопределение типа выходных данных инструментами с фиксированной точкойoff (по умолчанию) | onВыберите этот параметр, чтобы инструменты с фиксированной точкой не переопределяли тип данных «Вывод», указанный в блоке. Дополнительные сведения см. в разделе Использование параметров типа выходных данных блокировки (конструктор фиксированных точек).
Параметр блока:
LockScale |
| Текст: символьный вектор |
Значения:
'off' | 'on' |
По умолчанию:
'off' |
Integer rounding mode - Режим округления для операций с фиксированной точкойFloor (по умолчанию) | Ceiling | Convergent | Nearest | Round | Simplest | ZeroУкажите режим округления для операций с фиксированной точкой. Дополнительные сведения см. в разделе Округление (конструктор фиксированных точек).
Параметры блока всегда округляются до ближайшего представимого значения. Для управления округлением параметра блока введите выражение с помощью функции округления 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 имеет следующие настройки:
Значение данных точек останова: enumeration('Gears').
Выбор выходного документа: Index only.
Для неупорядоченного поиска задайте для параметра Метод индексного поиска значение Linear search и снимите флажок Начать индексный поиск с использованием предыдущего индексного результата.
Метод экстраполяции: Clip.
Интерполяция с использованием блока Prelookup имеет следующие настройки:
Количество размеров для 1.
Значение табличных данных: [5 10 20 40 80 -5 0].
Метод интерполяции: Flat.
Количество измерений выбора подкаталогов: 1.
Моделирование создает вектор [10 -5 80], которые соответствуют GEAR2, REVERSE, и SPORTS.

HDL Coder™ предоставляет дополнительные опции конфигурации, которые влияют на реализацию HDL и синтезированную логику.
Этот блок имеет единую архитектуру HDL по умолчанию.
| ConstrainedOutputPipeline | Количество регистров для размещения на выходах путем перемещения существующих задержек в рамках проекта. Распределенная конвейерная обработка не перераспределяет эти регистры. Значение по умолчанию: |
| InputPipeline | Количество входных ступеней трубопровода для вставки в сформированный код. Распределенная конвейерная обработка и конвейерная обработка с ограниченным выходом могут перемещать эти регистры. Значение по умолчанию: |
| OutputPipeline | Количество выходных ступеней трубопровода для вставки в сформированный код. Распределенная конвейерная обработка и конвейерная обработка с ограниченным выходом могут перемещать эти регистры. Значение по умолчанию: |
Требуемые параметры блока
данные точки останова: для параметра «Источник» выберите Dialog.
Спецификация: Вы можете выбрать либо Explicit values или Even spacing.
Метод индексного поиска: Выбрать Evenly spaced points.
метод экстраполяции: Выбрать Clip.
Диагностика для входа вне диапазона: Выбрать Error.
Использовать последнюю точку останова для ввода на верхнем пределе или выше: Установите этот флажок.
Точка останова: для параметра «Тип данных» выберите Inherit: Same as input.
Режим округления целых чисел: Выбрать Zero, Floor, или Simplest.
Типизация и определение размеров табличных данных
Рекомендуется структурировать таблицу таким образом, чтобы интервал между точками останова был равен двум. Если интервал точек останова не соответствует этому условию, кодер HDL выдает предупреждение. Если интервал между точками останова равен двум, можно заменить операции разделения на этапе предварительного включения операциями правого сдвига.
Для всех портов блока требуются скалярные значения.
Кодер позволяет использовать данные с плавающей запятой для точек останова.
Simulink PLC Coder имеет ограниченную поддержку блоков таблицы поиска. Кодер не поддерживает:
Количество размеров больше 2
Метод интерполяции кубического сплайна
Начать поиск по индексу с использованием предыдущего режима индексирования
Метод экстраполяции кубического сплайна
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.




