Документация Engee

Prelookup

Вычисляет номер и долю интервала для интерполяции.

Тип: PreLookup

Путь в библиотеке:

/Basic/Lookup Tables/Prelookup

Описание

Блок Prelookup вычисляет номер и дробь для интервала, которые определяют, как его входное значение соотносится с набором опорных точек.

Блок 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 генерирует пару выходов для каждого входного значения путем вычисления:

  • номера опорной точки, значение который меньше или равно и образует интервал, содержащий .

  • доли интервала (дроби) в диапазоне , представляющей нормализованное положение на интервале между опорной точкой с найденным номером и следующей опорной точкой.

Номер отсчитывается от нуля или от единицы в зависимости от значения параметра Indexing Mode:

  • Zero-based indexing — индексация опорных точек начинается с 0. Пример: если набор опорных точек равен [0 5 10 20 50 100] и входное значение равно 55, то номер равен 4, а доля интервала — 0.1.

  • One-based indexing — индексация опорных точек начинается с 1. Пример: если набор опорных точек равен [0 5 10 20 50 100] и входное значение равно 55, то номер равен 5, а доля интервала — 0.1.

Доля интервала может быть отрицательной или больше 1 в случае выхода входного сигнала за пределы диапазона.

Порты

Вход

# u — входной сигнал u
вектор

Details

Блок Prelookup принимает сигналы с вещественными значениями любого числового типа данных, поддерживаемого Engee, кроме Bool.

Типы данных

Float16, Float32, Float64, Int8, Int16, Int32, Int64, UInt8, UInt16, UInt32, UInt64, UInt128

Поддержка комплексных чисел

Нет

# u — входной сигнал u
скаляр | вектор | матрица

Details

Блок Prelookup принимает сигналы с вещественными значениями любого числового типа данных, поддерживаемого Engee, кроме Bool.

Типы данных

Float16, Float32, Float64, Int8, Int16, Int32, Int64, UInt8, UInt16, UInt32, UInt64, UInt128

Поддержка комплексных чисел

Нет

# bp — опорные точки
вектор

Details

Блок Prelookup принимает в качестве опорных точек сигналы с вещественными значениями любого числового типа данных, поддерживаемого Engee, кроме Bool.

Зависимости

Чтобы использовать этот порт, установите для параметра Source значение Input port.

Типы данных

Float16, Float32, Float64, Int8, Int16, Int32, Int64, UInt8, UInt16, UInt32, UInt64, UInt128

Поддержка комплексных чисел

Нет

Выход

# k — номер интервала, содержащего входной сигнал u
скаляр | вектор | матрица

Details

Номер является целым вещественным числом, определяющим интервал, содержащий входной сигнал .

Номер отсчитывается от нуля или от единицы в зависимости от значения параметра Indexing Mode.

Типы данных

Float64

Поддержка комплексных чисел

Нет

# f — дробь, представляющая нормализованное положение входа в интервале
скаляр | вектор | матрица

Details

Дробь представляет нормализованное положение входа в интервале .

Типы данных

Float64

Поддержка комплексных чисел

Нет

Параметры

Данные опорных точек

# Source — источник значений для опорных точек
Dialog | Input port

Details

Источник значений опорных точек:

  • Dialog — значения опорных точек заданны в параметре Value.

  • Input port — значения опорных точек будут получены через соответствующий входной

Значения

Dialog | Input port

Значение по умолчанию

Dialog

Имя для программного использования

BreakpointsDataSource

Настраиваемый

Нет

Вычисляемый

Нет

# Value — значения опорных точек
Array of real numbers

Details

Опорные точки. Набор опорных точек должен представлять собой строго монотонно возрастающий вектор, содержащий два или более элементов.

Зависимости

Чтобы использовать этот параметр, установите для параметра Source значение Dialog.

Значение по умолчанию

10:10:110

Имя для программного использования

BreakpointsData

Настраиваемый

Да

Вычисляемый

Да

# Indexing Mode — метод отсчета значения номера
Zero-based indexing | One-based indexing

Details

Значение номера отсчитывается от нуля, если установлено значение Zero-based indexing, или от единицы если установлено значение One-based indexing.

Значения

Zero-based indexing | One-based indexing

Значение по умолчанию

Zero-based indexing

Имя для программного использования

IndexingMode

Настраиваемый

Нет

Вычисляемый

Нет

Алгоритм

# Output selection — выходные сигналы
Index and fraction | Index only

Details

Варианты для выбора:

  • Index only — выводит только номер, без доли.

  • Index and fraction — выводит номер и долю в виде отдельных сигналов.

Значения

Index and fraction | Index only

Значение по умолчанию

Index and fraction

Имя для программного использования

OutputSelection

Настраиваемый

Нет

Вычисляемый

Нет

# Index search method — метод поиска номера интервала
Evenly spaced points | Linear search | Binary search

Details

Каждый метод поиска имеет преимущества в скорости в различных ситуациях:

  • Для равномерно расположенных опорных точек (например, 10, 20, 30 и так далее) оптимальная скорость достигается при выборе Evenly spaced points для расчета номеров таблицы. Этот алгоритм использует только первые две опорные точки набора для определения смещения и расстояния между остальными точками.

  • Для неравномерно распределенных опорных точек рекомендуется:

    • Linear search — если входные значения для не сильно меняются между шагами счета.

    • Binary search — если входные значения для меняются более чем на один-два интервала таблицы за один шаг счета.

Неоптимальный выбор метода поиска номера может привести к низкой производительности моделей, которые в значительной степени полагаются на таблицы поиска.

Значения

Evenly spaced points | Linear search | Binary search

Значение по умолчанию

Binary search

Имя для программного использования

IndexSearchMethod

Настраиваемый

Нет

Вычисляемый

Нет

# Extrapolation method — способ обработки входных значений, выходящих за пределы диапазона
Clip | Linear

Details

Метод, который используется блоком для экстраполяции значений для всех входов, выходящих за пределы диапазона набора данных опорных точек.

Подробнее о методах экстраполяции можно прочитать здесь: Методы аппроксимации значений функций

Значения

Clip | Linear

Значение по умолчанию

Linear

Имя для программного использования

ExtrapMethod

Настраиваемый

Нет

Вычисляемый

Нет

Дополнительные возможности

Генерация Си кода: Да