Аппроксимируйте одномерную функцию с помощью динамической таблицы
Simulink / Интерполяционные таблицы
Блок Lookup Table Dynamic вычисляет приближение функционального y = f(x)
с помощью векторов ydat
и xdat
. Метод поиска может использовать интерполяцию, экстраполяцию или исходные значения входа.
Используя блок Lookup Table Dynamic, можно изменить табличные данные, не останавливая симуляцию. Например, можно включить новые табличные данные, если физическая система вы моделируете изменения.
Вектор xdat
является данными о точке останова, которые должны строго монотонно увеличиваться. Значение следующего элемента в векторе должно быть больше, чем значение предыдущего элемента после преобразования в тип данных с фиксированной точкой. Из-за квантования, xdat
может быть строго монотонным для типа данных с плавающей точкой, но не после преобразования в тип данных с фиксированной точкой.
Вектор ydat
является табличными данными, которые являются оценкой функции в значениях точки останова.
Входные параметры к xdat
и ydat
не могут быть скаляром (массив с одним элементом) значения. Если вы предоставляете скалярное значение любым из этих входных параметров, вы видите ошибку после симуляции. Предоставьте вектор 1 на n и xdat
и входным параметрам ydat
.
Вы задаете интерполяционную таблицу путем питания xdat
и ydat
как векторы 1 на n к блоку. Чтобы уменьшать использование ROM в сгенерированном коде для этого блока, можно использовать различные типы данных для xdat
и ydat
. Однако эти ограничения применяются:
Данные о точке останова xdat
и входной вектор x
должны иметь тот же знак, смещение и дробный наклон. Кроме того, точность и область значений для x
должны быть больше, чем или равными точности и области значений для xdat
.
Данные о таблице ydat
и выходной вектор y
должны иметь тот же знак, смещение и дробный наклон.
Точки останова с ровным интервалом могут сделать сгенерированный код Simulink® Coder™ без делений. Для получения дополнительной информации смотрите fixpt_evenspace_cleanup
в документации Simulink и Идентифицируйте сомнительные операции фиксированной точки (Embedded Coder) в документации Simulink Coder.
Блок использует входные значения, чтобы сгенерировать вывод с помощью метода, который вы выбираете для Lookup Method:
Метод поиска | Блокируйте действие |
---|---|
Interpolation-Extrapolation
| Выполняет линейную интерполяцию и экстраполяцию входных параметров.
ПримечаниеЕсли вы выбираете этот метод поиска, программное обеспечение Simulink Coder не может сгенерировать код для этого блока. |
Interpolation-Use End Values (значение по умолчанию) | Выполняет линейную интерполяцию, но не экстраполирует вне конечных точек данных о точке останова. Вместо этого блок использует значения конца. |
Use Input Nearest
| Находит элемент в |
Use Input Below
| Находит элемент в |
Use Input Above
| Находит элемент в |
Use Input Nearest
, Use Input Below
и методы Use Input Above
выполняют то же действие, когда вход x
совпадает со значением точки останова.
Некоторые непрерывные решатели подразделяют промежуток времени симуляции на главные и незначительные временные шаги. Незначительный временной шаг является подразделением главного временного шага. Решатель приводит к результату на каждом главном временном шаге и использует результаты на незначительных временных шагах, чтобы улучшить точность результата на главном временном шаге. Для непрерывных решателей вывод блока Lookup Table Dynamic может появиться как шаг ступеньки, потому что сигнал фиксируется в незначительном временном шаге, чтобы избежать неправильных результатов. Для получения дополнительной информации об эффекте решателей на блоке вывод, смотрите Решатели в документации Simulink.
Типы данных |
|
Прямое сквозное соединение |
|
Многомерные сигналы |
|
Сигналы переменного размера |
|
Обнаружение пересечения нулем |
|