Аппроксимируйте одномерную функцию с помощью динамической таблицы
Simulink/Интерполяционные таблицы
Динамический блок Интерполяционной таблицы вычисляет приближение функции y = f(x)
использование xdat
и ydat
векторы. Метод поиска может использовать интерполяцию, экстраполяцию или исходные значения входа.
Используя блок Интерполяционная Таблица Dynamic, можно изменять данные таблицы, не останавливая симуляцию. Для примера можно включать новые данные таблицы, если изменяется физическая система, которую вы моделируете.
The xdat
вектор - это данные точек по оси Х, которые должны быть строго монотонно увеличены. Значение следующего элемента в векторе должно быть больше, чем значение предыдущего элемента после преобразования в тип данных с фиксированной точкой. Из-за квантования xdat
может быть строго монотонным для типа данных с плавающей точкой, но не после преобразования в тип данных с фиксированной точкой.
The ydat
вектор - это данные таблицы, которая является оценкой функции в значениях точек по оси Х.
Примечание
Входы для xdat
и ydat
не может быть скалярным (одноэлементный массив) значениями. Если вы задаете скалярное значение для любого из этих входов, вы видите ошибку при симуляции. Предоставьте вектор 1 на n обоим xdat
и ydat
входы.
Вы определяете интерполяционную таблицу путем подачи xdat
и ydat
как векторы 1 на n в блок. Чтобы уменьшить использование ПЗУ в сгенерированном коде для этого блока, можно использовать различные типы данных для xdat
и ydat
. Однако эти ограничения применяются:
The xdat
данные точек по оси Х и x
входной вектор должен иметь тот же знак, смещение и дробный наклон. Кроме того, точность и область значений для x
должен быть больше или равен точности и области значений для xdat
.
The 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
| Находит элемент в |
Примечание
The Use Input Nearest
, Use Input Below
, и Use Input Above
методы выполняют то же действие, когда вход x
соответствует значению точки по оси Х.
Некоторые непрерывные решатели подразделяют диапазон времени симуляции на основной и незначительный временные шаги. Незначительный временной шаг является подразделением основного временного шага. Решатель производит результат на каждом основном временном шаге и использует результаты на незначительных временных шагах, чтобы улучшить точность результата на основном временном шаге. Для непрерывных решателей выход динамического блока Интерполяционной таблицы может появиться как шаг лестницы, потому что сигнал фиксирован в незначительном временном шаге, чтобы избежать неправильных результатов. Для получения дополнительной информации о эффекте решателей на вывод блоков смотрите Сравнение решателей в документации Simulink.
Типы данных |
|
Прямое сквозное соединение |
|
Многомерные сигналы |
|
Сигналы переменного размера |
|
Обнаружение пересечения нулем |
|