Prelookup
Вычисляет номер и долю интервала для интерполяции.
Описание
Блок Prelookup вычисляет номер и долю интервала, которые определяют, как его входное значение u соотносится с набором опорных точек.
Поддерживаемые операции с блоками
Чтобы использовать блок Prelookup, необходимо указать набор значений опорных точек. При этом можно выбрать, указать ли значения опорных точек непосредственно в диалоговом окне или передать их через порт ввода bp, установив для параметра Source значение Dialog
или Input port
.
Блок Prelookup генерирует пару выходов для каждого входного значения u путем вычисления:
-
индекса опорной точки, значение который меньше или равно u и образует интервал, содержащий u.
-
доли интервала в диапазоне 0 ≤ f < 1, представляющей нормализованное положение u на интервале между опорной точкой с найденным индексом и следующей опорной точкой.
Например, если набор опорных точек равен [0 5 10 20 50 100]
и входное значение u равно 55
, то индекс равен 4
, а доля интервала — 0.1
.
Значение индекса отсчитывается от единицы.
Доля интервала может быть отрицательной или больше 1 в случае выхода входного сигнала за пределы диапазона.
Порты
Вход
Port_1 — входной сигнал u
скаляр
| вектор
| матрица
Блок Prelookup принимает сигналы с вещественными значениями любого числового типа данных, поддерживаемого Engee, кроме Bool
.
Типы данных: Float16
, Float32
, Float64
, Int8
, Int16
, Int32
, Int64
, UInt8
, UInt16
, UInt32
, UInt64
, UInt128
bp — опорные точки
одномерный вектор
Блок Prelookup принимает в качестве опорных точек останова сигналы с вещественными значениями любого числового типа данных, поддерживаемого Engee, кроме Bool
.
Типы данных: Float16
, Float32
, Float64
, Int8
, Int16
, Int32
, Int64
, UInt8
, UInt16
, UInt32
, UInt64
, UInt128
Выход
k — индекс интервала, содержащего вход u
скаляр
| вектор
| матрица
Индекс k является целым вещественным числом, определяющим интервал, содержащий входной сигнал u.
Значение индекса отсчитывается от единицы.
Типы данных: Float64
f — дробь, представляющая нормализованное положение входа u в интервале k
скаляр
| вектор
| матрица
Дробь f представляет нормализованное положение входа u в интервале k.
Типы данных: Float64
Параметры
Value — значения опорных точек
[10:10:110] (по умолчанию)
Опорные точки. Набор опорных точек должен представлять собой строго монотонно возрастающий вектор, содержащий два или более элементов.
Source — источник значений для опорных точек
Dialog (по умолчанию)
| Input port
Источник значений опорных точек:
-
Dialog
— значения опорных точек заданны в параметре Value. -
Input port
— значения опорных точек будут получены через соответствующий входной порт.
Index search method — метод поиска номера интервала
Binary search (по умолчанию)
| Linear search
| Evenly spaced points
Каждый метод поиска имеет преимущества в скорости в различных ситуациях:
-
Для равномерно расположенных опорных точек (например, 10, 20, 30 и так далее) оптимальная скорость достигается при выборе
Evenly spaced points
для расчета индексов таблицы. Этот алгоритм использует только первые две точки останова набора для определения смещения и расстояния между остальными точками. -
Для неравномерно распределенных опорных точек рекомендуется:
-
Linear search
— если входные значения для u не сильно меняются между шагами счета. -
Binary search
— если входные значения для u меняются более чем на один-два интервала таблицы за один шаг счета.
-
Неоптимальный выбор метода индексного поиска может привести к низкой производительности моделей, которые в значительной степени полагаются на таблицы поиска.
Extrapolation method — способ обработки входных значений, выходящих за пределы диапазона
Clip (по умолчанию)
| Linear
Варианты: Clip
или Linear
.
Разница между вариантами:
Clip
Вход блока | Выход блока |
---|---|
Меньше первой точки |
Номер = номер первой точки (например, 1) Доля = 0 |
Больше последней точки |
Номер = номер предпоследней точки Доля = 1 |
Предположим, что диапазон равен [1 2 3]
, и вы выбрали этот вариант. Если u равно 0,5
, номер равен 1
, доля интервала равна 0
. Если u равно 3,5
, индекс равен 2
, доля интервала равна 1
.
Linear
Вход блока | Выход блока |
---|---|
Меньше первой точки |
Номер = номер первой точки (например, 1) Доля = линейное расстояние от u до первой точки |
Больше последней точки |
Номер = номер предпоследней точки Доля = расстояние от предпоследней точки до u |
Предположим, что диапазон равен [1 2 3]
, и вы выбрали этот вариант. Если u равно 0,5
, номер равен 1
, а доля интервала -0,5
. Если u равно 3,5
, индекс равен 2
, а доля интервала 1,5
.
Output selection — выходные сигналы
Index and fraction (по умолчанию)
| Index only
-
Index only
— выводит только номер, без доли. -
Index and fraction
— выводит номер и долю в виде отдельных сигналов.