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

1-D Lookup Table

Приближенная одномерная функция.

Тип: LookupTableND

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

/Basic/Lookup Tables/1-D Lookup Table

Описание

Блок 1-D Lookup Table вычисляет приближенное значение некоторой функции:

,

где функция может быть эмпирической.

Иконка блока 1-D Lookup Table отображает график функции, заданной в блоке.

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

Блок поддерживает следующие методы интерполяции: Flat, Linear point-slope, Linear Lagrange, Nearest, Cubic spline и Akima spline.

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

Задание опорных точек и таблицы выходных значений

Эти параметры блока задают значения для опорных точек и таблицы выходных значений.

Параметр блока Назначение

Breakpoints 1

Задает вектор опорных точек.

Table data

Определяет соответствующий набор выходных значений.

Как блок генерирует выходные данные

Блок 1-D Lookup Table генерирует выходные данные поиском по таблице или путем оценки значений на основе входных значений.

Входные данные блока Поведение блока 1-D Lookup Table

Совпадают со значениями в наборах данных опорных точек

Выводит табличное значение

Не совпадают со значениями в наборах данных опорных точек, но находятся в пределах диапазона

Интерполирует соответствующие значения таблицы, используя выбранный Interpolation method

Не совпадают со значениями в наборах данных опорных точек и находятся вне диапазона

Экстраполирует выходное значение, используя выбранный Extrapolation method

Порты

Вход

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

Details

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

Типы данных

Float16, Float32, Float64, Int8, Int16, Int32, Int64, Int128, UInt8, UInt16, UInt32, UInt64, UInt128, Fixed-point, Bool

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

Да

Выход

# OUT_1 — выходной сигнал, вычисленный путем поиска или оценки значений таблицы
скаляр | вектор | матрица

Details

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

Когда входные данные блока…​ То блок 1-D Lookup Table…​

Совпадают со значениями в наборах данных опорных точек

Выводит табличное значение

Не совпадают со значениями в наборах данных опорных точек, но находятся в пределах диапазона

Интерполирует соответствующие значения таблицы, используя выбранный Interpolation method

Не совпадают со значениями в наборах данных опорных точек и находятся вне диапазона

Экстраполирует выходное значение, используя выбранный Extrapolation method

Типы данных

Float16, Float32, Float64, Int8, Int16, Int32, Int64, Int128, UInt8, UInt16, UInt32, UInt64, UInt128, Fixed-point, Bool

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

Да

Параметры

Основные

# Table data — таблица выходных значений
Array of real and/or complex numbers

Details

Таблица выходных значений.

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

tanh.(collect(-5:5))

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

Table

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

Да

Вычисляемый

Да

# Breakpoints 1 — значения опорных точек для первого измерения
Array of real numbers

Details

Опорные точки для первого измерения.

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

collect(-5:5)

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

BreakpointsForDimension1

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

Да

Вычисляемый

Да

Методы аппроксимации

# Interpolation method — способ интерполяции между значениями опорных точек
Flat | Nearest | Linear point-slope | Linear Lagrange | Cubic spline | Akima spline

Details

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

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

Зависимости

  • Если вы выберете Cubic spline, то блок будет поддерживать только скалярные сигналы. Другие методы интерполяции поддерживают нескалярные сигналы.

  • Если вы выберете Akima spline, то методом экстраполяции может быть только Akima spline.

Значения

Flat | Nearest | Linear point-slope | Linear Lagrange | Cubic spline | Akima spline

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

Linear point-slope

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

InterpMethod

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

Нет

Вычисляемый

Нет

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

Details

Выбор метода экстраполяции.

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

Зависимости

  • Чтобы выбрать Cubic spline для Extrapolation method, необходимо также выбрать Cubic spline для Interpolation method.

  • Чтобы выбрать Akima spline для Extrapolation method, вы также должны выбрать Akima spline для Interpolation method.

Значения

Clip | Linear | Cubic spline | Akima spline

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

Linear

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

ExtrapMethod

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

Нет

Вычисляемый

Нет

Тип данных

# Table data — тип данных значений таблицы
Inherit: auto | Same as output | Float64 | Float32 | Float16 | Int8 | UInt8 | Int16 | UInt16 | Int32 | UInt32 | Int64 | UInt64 | Int128 | UInt128 | Fixed-point

Details

Укажите тип данных значений таблицы.

Значения

Inherit: auto | Same as output | Float64 | Float32 | Float16 | Int8 | UInt8 | Int16 | UInt16 | Int32 | UInt32 | Int64 | UInt64 | Int128 | UInt128 | Fixed-point

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

Same as output

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

TableDataTypeStr

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

Нет

Вычисляемый

Нет

# Table fixed-point type — тип данных с фиксированной точкой для таблицы
Data type

Details

Укажите тип данных с фиксированной точкой для таблицы.

Зависимости

Чтобы использовать этот параметр, установите для параметра Table data значение Fixed-point.

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

fixdt(1, 16, 0)

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

TableDataTypeStrFixed

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

Нет

Вычисляемый

Да

# Breakpoints 1 — тип данных для значений опорных точек для первого измерения
Inherit: auto | Same as input | Float64 | Float32 | Float16 | Int8 | UInt8 | Int16 | UInt16 | Int32 | UInt32 | Int64 | UInt64 | Int128 | UInt128 | Fixed-point

Details

Укажите тип данных для значений опорных точек для первого измерения

Значения

Inherit: auto | Same as input | Float64 | Float32 | Float16 | Int8 | UInt8 | Int16 | UInt16 | Int32 | UInt32 | Int64 | UInt64 | Int128 | UInt128 | Fixed-point

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

Same as input

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

BreakpointsForDimension1DataTypeStr

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

Нет

Вычисляемый

Нет

# Breakpoints 1 fixed-point type — тип данных с фиксированной точкой для значений опорных точек для первого измерения
Data type

Details

Укажите тип данных с фиксированной точкой для значений опорных точек для первого измерения.

Зависимости

Чтобы использовать этот параметр, установите для параметра Breakpoints 1 значение Fixed-point.

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

fixdt(1, 16, 0)

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

BreakpointsForDimension1DataTypeStrFixed

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

Нет

Вычисляемый

Да

# Fraction — тип данных дроби
Inherit: auto | Float64 | Float32 | Fixed-point

Details

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

Значения

Inherit: auto | Float64 | Float32 | Fixed-point

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

Inherit: auto

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

FractionDataTypeStr

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

Нет

Вычисляемый

Нет

# Fraction fixed-point type — тип данных с фиксированной точкой дроби
Data type

Details

Укажите тип данных с фиксированной точкой дроби.

Зависимости

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

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

fixdt(1, 16, 0)

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

FractionDataTypeStrFixed

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

Нет

Вычисляемый

Да

# Intermediate results — тип данных промежуточных результатов
Inherit: auto | Same as output | Float64 | Float32 | Int8 | UInt8 | Int16 | UInt16 | Int32 | UInt32 | Int64 | UInt64 | Int128 | UInt128 | Fixed-point

Details

Укажите тип данных промежуточных результатов.

Значения

Inherit: auto | Same as output | Float64 | Float32 | Int8 | UInt8 | Int16 | UInt16 | Int32 | UInt32 | Int64 | UInt64 | Int128 | UInt128 | Fixed-point

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

Same as output

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

IntermediateResultsDataTypeStr

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

Нет

Вычисляемый

Нет

# Intermediate results fixed-point type — тип данных с фиксированной точкой промежуточных результатов
Data type

Details

Укажите тип данных с фиксированной точкой промежуточных результатов.

Зависимости

Чтобы использовать этот параметр, установите для параметра Intermediate results значение Fixed-point.

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

fixdt(1, 16, 0)

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

IntermediateResultsDataTypeStrFixed

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

Нет

Вычисляемый

Да

# Output — тип выходных данных
Inherit: from `Table data` | Same as input | Float64 | Float32 | Float16 | Int8 | UInt8 | Int16 | UInt16 | Int32 | UInt32 | Int64 | UInt64 | Int128 | UInt128 | Fixed-point

Details

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

Значения

Inherit: from `Table data` | Same as input | Float64 | Float32 | Float16 | Int8 | UInt8 | Int16 | UInt16 | Int32 | UInt32 | Int64 | UInt64 | Int128 | UInt128 | Fixed-point

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

Same as input

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

OutDataTypeStr

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

Нет

Вычисляемый

Нет

# Output fixed-point type — тип выходных данных с фиксированной точкой
Data type

Details

Укажите тип выходных с фиксированной точкой.

Зависимости

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

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

fixdt(1, 16, 0)

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

OutDataTypeStrFixed

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

Нет

Вычисляемый

Да

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

Details

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

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

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

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

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

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

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

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

Значения

Ceiling | Convergent | Floor | Nearest | Round | Zero

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

Floor

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

RndMeth

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

Нет

Вычисляемый

Нет

# Saturate on integer overflow — метод действия при переполнении
Logical

Details

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

Действие Причины для принятия этого решения Что происходит при переполнении Пример

Установите этот флажок.

В вашей модели возможно переполнение, и вам нужна явная защита от насыщения в генерируемом коде.

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

Переполнение, связанное со знаковым 8-битным целым числом, может насытиться до -128 или 127.

Не устанавливайте этот флажок.

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

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

Число 130 не помещается в знаковое 8-битное целое число и сворачивается в -126

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

false (выключено)

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

SaturateOnIntegerOverflow

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

Нет

Вычисляемый

Нет

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

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