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

Lookup Table Dynamic

Аппроксимация одномерной функции с помощью динамической таблицы.

lookup table dynamic

Описание

Чем этот блок отличается от других блоков с таблицами поиска

Блок Lookup Table Dynamic вычисляет аппроксимацию функции с помощью векторов xdat и ydat. Метод поиска может использовать интерполяцию, экстраполяцию или исходные значения входных данных.

Используя блок Lookup Table Dynamic, можно изменить данные таблицы, не останавливая моделирование. Например, можно добавить новые данные в таблицу, если изменится физическая система, которая моделируется.

Входные данные для контрольных точек и данных таблицы

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

Вектор ydat — это табличные данные, которые представляют собой значение функции в опорных точках.

Входные данные xdat и ydat не могут быть скаляром (одноэлементным массивом). Если ввести для любого из них скалярное значение, то при моделировании будет выводиться сообщение об ошибке.

Определение таблицы поиска

Определение таблицы поиска производится путем задания входных векторов xdat и ydat. Чтобы сократить использование памяти только в генерируемом коде для этого блока, можно использовать различные типы данных для xdat и ydat.

Как блок вычисляет выходные данные

Блок использует входные значения для вычисления выходных данных, используя метод, который выбран в параметре Lookup Method:

Значение параметра Lookup Method Действие блока

Interpolation-Extrapolation

Выполняет линейную интерполяцию и экстраполяцию входных данных.

  • Если входные данные совпадают с опорной точкой, то выходными данными будет соответствующий элемент в таблице данных.

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

Interpolation-Use End Values (значение по умолчанию)

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

Use Input Nearest

Находит ближайший к текущему входному значению элемент в xdat. Соответствующий элемент в ydat является выходным значением.

Use Input Below

Находит ближайший к текущему входному значению и расположенный ниже него элемент в xdat. Соответствующий элемент в ydat является выходным значением. Если в xdat нет элемента ниже текущего входного значения, блок находит ближайший элемент.

Use Input Above

Находит ближайший к текущему входному значению и расположенный выше него элемент в xdat. Соответствующий элемент в ydat является выходным значением. Если в xdat нет элемента выше текущего входного значения, блок находит ближайший элемент.

Методы Use Input Nearest, Use Input Below и Use Input Above выполняют одно и то же действие, когда значения входного вектора x совпадают со значениями опорных точек.

Порты

Вход

x — вектор входных данных
скаляр | вектор | двумерная матрица

Вещественный входной сигнал.

Входной вектор x и вектор опорных точек xdat должны иметь одинаковый тип по знаку, смещению и дробному наклону. Кроме того, точность и диапазон для типа данных x должны быть больше или равны точности и диапазону для xdat.

Типы данных: Float32, Float64, Int8, Int16, Int32, Int64, Int128, UInt8, UInt16, UInt32, UInt64, UInt128, Bool, Fixed

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

xdat — вектор значений опорных точек
вектор строго монотонно возрастающих значений размерностью 1 на n | матрица

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

Входной вектор x и вектор опорных точек xdat должны иметь одинаковый тип по знаку, смещению и дробному наклону. Кроме того, точность и диапазон для типа данных x должны быть больше или равны точности и диапазону для xdat.

Типы данных: Float32, Float64, Int8, Int16, Int32, Int64, Int128, UInt8, UInt16, UInt32, UInt64, UInt128, Bool, Fixed

ydat — табличные данные
вектор размерностью 1 на n

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

Типы данных: Float32, Float64, Int8, Int16, Int32, Int64, Int128, UInt8, UInt16, UInt32, UInt64, UInt128, Bool, Fixed

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

Выход

y — аппроксимация y = f(x) с помощью динамической таблицы
вектор размерностью 1 на n | скаляр

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

Типы данных: Float32, Float64, Int8, Int16, Int32, Int64, Int128, UInt8, UInt16, UInt32, UInt64, UInt128, Bool, Fixed

Параметры

Main

Lookup Method — метод поиска
Interpolation-Use End Values (по умолчанию) | Interpolation-Extrapolation | Use Input Nearest | Use Input Below | Use Input Above

Блок вычисляет выходные данные, применяя выбранный метод поиска Lookup Method к входным векторам опорных точек xdat и табличных данных ydat. Подробнее см. в разделе Как блок вычисляет выходные данные.

Программное использование

Параметр блока

LookUpMeth

Значения

Interpolation-Use End Values | Interpolation-Extrapolation | Use Input Nearest | Use Input Below | Use Input Above

По умолчанию

Interpolation-Use End Values

Signal Attributes

Output data type — тип выходных данных
Float64 (по умолчанию) | Float32 | Int8 | Int16 | Int32 | Int64 | Int128 | UInt8 | UInt16 | UInt32 | UInt64 | UInt128 | Bool | Fixed point

Укажите тип выходных данных.

Программное использование

Параметр блока:

OutDataTypeStr

Значение:

Float16 | Float32 | Float64 | Int8 | Int16 | Int32 | Int64 | Int128 | UInt8 | UInt16 | UInt32 | UInt64 | UInt128 | Fixed | Bool

По умолчанию:

Float64

Integer rounding mode — режим округления для операций с фиксированной точкой
Floor (по умолчанию) | Ceiling | Convergent | Nearest | Round | Zero

Выберите режим округления для операций с фиксированной точкой. Вы можете выбрать:

  • Floor — округляет как положительные, так и отрицательные числа в меньшую сторону (в сторону отрицательной бесконечности).

  • Ceiling — округляет как положительные, так и отрицательные числа в большую сторону (в сторону положительной бесконечности).

  • Convergent — округляет число до ближайшего представимого значения. В случае если дробная часть числа оканчивается на 5, число округляется до ближайшего четного целого числа.

  • Nearest — округляет число до ближайшего представимого значения. В случае если дробная часть числа оканчивается на 5, число округляется в большую сторону (в сторону положительной бесконечности).

  • Round — округляет число до ближайшего представимого значения. В случае если дробная часть числа оканчивается на 5, положительные числа округляются в большую сторону (в сторону положительной бесконечности), а отрицательные – в меньшую (в сторону отрицательной бесконечности).

  • Zero — округляет число в сторону нуля.

Параметры блока всегда округляют до ближайшего представимого значения.

Программное использование

Параметр блока

RndMeth

Значения

Ceiling | Convergent | Floor | Nearest | Round | Zero

По умолчанию

Floor

Saturate to max or min when overflows occur — насыщение до целого при переполнении
выключено (по умолчанию) | включено

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

При установке этого флажка насыщение применяется ко всем внутренним операциям блока, а не только к выходу или результату.

Программное использование

Параметр блока

DoSatur

Значения

выключено | включено

По умолчанию

выключено