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

Динамическая аппроксимация табличной функции

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

lookup table dynamic

Описание

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

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

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

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

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

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

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

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

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

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

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

Значение параметра Методы аппроксимации Действие блока

Интерполяция-Экстраполяция

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

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

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

Интерполяция с граничными значениями (значение по умолчанию)

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

Использовать ближайшее входное значение

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

Использовать ближайшее входное значение снизу

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

Использовать ближайшее входное значение сверху

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

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

Порты

Вход

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

Details

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

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

Типы данных

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

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

Да

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

Details

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

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

Типы данных

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

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

Да

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

Details

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

Типы данных

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

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

Да

Выход

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

Details

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

Типы данных

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

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

Да

Параметры

Основные

# Методы аппроксимации — метод поиска
Интерполяция-Экстраполяция | Интерполяция с граничными значениями | Использовать ближайшее входное значение | Использовать ближайшее входное значение снизу | Использовать ближайшее входное значение сверху

Details

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

Значения

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

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

Interpolation-Use End Values

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

LookUpMeth

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

Нет

Атрибуты сигнала

# Тип данных выхода — тип выходных данных
Float64 | Float32 | Int8 | UInt8 | Int16 | UInt16 | Int32 | UInt32 | Int64 | UInt64 | Int128 | UInt128 | Bool | Фиксированная точка

Details

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

Значения

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

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

Float64

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

OutDataTypeStr

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

Нет

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

Details

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

Зависимости

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

Значения

Data type

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

fixdt(1, 16, 0)

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

OutDataTypeStrFixed

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

Нет

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

Details

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

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

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

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

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

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

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

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

Значения

Ceiling | Convergent | Floor | Nearest | Round | Zero

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

Floor

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

RndMeth

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

Нет

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

Details

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

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

Значения

Logical

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

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

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

DoSatur

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

Нет