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

Табличная функция одной переменной

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

1 d lookup table

Описание

Блок Табличная функция одной переменной вычисляет приближенное значение некоторой функции:

,

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

Иконка блока Табличная функция одной переменной отображает график функции, заданной в блоке.

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

Блок поддерживает следующие методы интерполяции: Ступенчатая, Линейная с угловым коэффициентом, Линейная полиномом Лагранжа, К ближайшему, Кубическими сплайнами и Сплайном Акимы.

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

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

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

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

Опорные точки 1

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

Данные таблицы

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

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

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

Входные данные блока Поведение блока Табличная функция одной переменной

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

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

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

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

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

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

Порты

Вход

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

Details

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

Типы данных

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

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

Да

Выход

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

Details

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

Когда входные данные блока…​ То блок Табличная функция одной переменной…​

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

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

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

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

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

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

Типы данных

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

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

Да

Параметры

Основные

# Данные таблицы — таблица выходных значений
Массив вещественных и/или комплексных чисел

Details

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

Значения

Array of real and/or complex numbers

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

tanh.(collect(-5:5))

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

Table

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

Да

# Опорные точки 1 — значения опорных точек для первого измерения
Массив вещественных чисел

Details

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

Значения

Array of real numbers

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

collect(-5:5)

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

BreakpointsForDimension1

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

Да

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

# Интерполяция — способ интерполяции между значениями опорных точек
Ступенчатая | К ближайшему | Линейная с угловым коэффициентом | Линейная полиномом Лагранжа | Кубическими сплайнами | Сплайном Акимы

Details

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

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

Зависимости

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

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

Значения

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

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

Linear point-slope

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

InterpMethod

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

Нет

# Экстраполяция — способ обработки входных значений, которые выходят за пределы диапазона набора данных опорных точек
Обрезать | Линейная | Кубическими сплайнами | Сплайном Акимы

Details

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

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

Зависимости

  • Чтобы выбрать Кубическими сплайнами для Extrapolation method, необходимо также выбрать Кубическими сплайнами для Interpolation method.

  • Чтобы выбрать Сплайном Акимы для Extrapolation method, вы также должны выбрать Сплайном Акимы для Interpolation method.

Значения

Clip | Linear | Cubic spline | Akima spline

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

Linear

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

ExtrapMethod

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

Нет

Тип данных

# Данные таблицы — тип данных значений таблицы
Наследовать автоматически | Наследовать от выхода | Float64 | Float32 | Float16 | Int8 | UInt8 | Int16 | UInt16 | Int32 | UInt32 | Int64 | UInt64 | Int128 | UInt128 | Фиксированная точка

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

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

Нет

# Тип данных таблицы в фиксированной точке — тип данных с фиксированной точкой для таблицы
Тип данных

Details

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

Зависимости

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

Значения

Data type

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

fixdt(1, 16, 0)

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

TableDataTypeStrFixed

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

Нет

# Опорные точки 1 — тип данных для значений опорных точек для первого измерения
Наследовать автоматически | Наследовать от входа | Float64 | Float32 | Float16 | Int8 | UInt8 | Int16 | UInt16 | Int32 | UInt32 | Int64 | UInt64 | Int128 | UInt128 | Фиксированная точка

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

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

Нет

# Тип опорных точек в фиксированной точке — тип данных с фиксированной точкой для значений опорных точек для первого измерения
Тип данных

Details

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

Зависимости

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

Значения

Data type

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

fixdt(1, 16, 0)

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

BreakpointsForDimension1DataTypeStrFixed

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

Нет

# Дробь — тип данных дроби
Наследовать автоматически | Float64 | Float32 | Фиксированная точка

Details

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

Значения

Inherit: auto | Float64 | Float32 | Fixed-point

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

Inherit: auto

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

FractionDataTypeStr

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

Нет

# Тип дроби в фиксированной точке — тип данных с фиксированной точкой дроби
Тип данных

Details

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

Зависимости

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

Значения

Data type

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

fixdt(1, 16, 0)

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

FractionDataTypeStrFixed

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

Нет

# Промежуточные результаты — тип данных промежуточных результатов
Наследовать автоматически | Наследовать от выхода | Float64 | Float32 | Int8 | UInt8 | Int16 | UInt16 | Int32 | UInt32 | Int64 | UInt64 | Int128 | UInt128 | Фиксированная точка

Details

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

Значения

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

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

Same as output

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

IntermediateResultsDataTypeStr

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

Нет

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

Details

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

Зависимости

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

Значения

Data type

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

fixdt(1, 16, 0)

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

IntermediateResultsDataTypeStrFixed

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

Нет

# Выход — тип выходных данных
Наследовать от данных таблицы | Наследовать от входа | Float64 | Float32 | Float16 | Int8 | UInt8 | Int16 | UInt16 | Int32 | UInt32 | Int64 | UInt64 | Int128 | UInt128 | Фиксированная точка

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

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

Нет

# Тип выхода в фиксированной точке — тип выходных данных с фиксированной точкой
Тип данных

Details

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

Зависимости

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

Значения

Data type

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

fixdt(1, 16, 0)

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

OutDataTypeStrFixed

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

Нет

# Метод округления до целого — режим округления для операций с фиксированной точкой
К большему | Конвергентный | К меньшему | К ближайшему | Математическое | К нулю

Details

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

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

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

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

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

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

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

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

Значения

Ceiling | Convergent | Floor | Nearest | Round | Zero

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

Floor

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

RndMeth

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

Нет

# Ограничить при переполнении целого — метод действия при переполнении
Логический тип

Details

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

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

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

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

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

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

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

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

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

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

Значения

Logical

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

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

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

SaturateOnIntegerOverflow

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

Нет

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

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