Аппроксимация одномерной функции с помощью динамической таблицы
Таблицы Simulink/Lookup
Блок «Динамическая таблица подстановки» вычисляет аппроксимацию функции y = f(x) использование xdat и ydat векторы. Метод поиска может использовать интерполяцию, экстраполяцию или исходные значения входных данных.
С помощью блока «Динамический поиск таблицы» можно изменять данные таблицы без остановки моделирования. Например, можно включить новые табличные данные при изменении физической системы, которую вы моделируете.
xdat вектор - данные точки останова, которые должны быть строго монотонно увеличивающимися. Значение следующего элемента в векторе должно быть больше значения предыдущего элемента после преобразования в тип данных с фиксированной точкой. Вследствие квантования, xdat может быть строго монотонным для типа данных с плавающей точкой, но не после преобразования в тип данных с фиксированной точкой.
ydat vector - табличные данные, представляющие собой оценку функции в значениях точек останова.
Примечание
Входные данные для xdat и ydat не могут быть скалярными (одноэлементный массив) значениями. Если предоставить скалярное значение для любого из этих входов, при моделировании появится ошибка. Предоставление вектора 1 на n для обоих xdat и ydat входные данные.
Таблица подстановки определяется путем подачи xdat и ydat как векторы 1 на n для блока. Чтобы уменьшить использование ПЗУ в сгенерированном коде для этого блока, можно использовать различные типы данных для xdat и ydat. Однако эти ограничения действуют:
xdat данные точки останова и x входной вектор должен иметь одинаковый знак, смещение и дробный наклон. Кроме того, точность и диапазон для x должно быть больше или равно точности и диапазону для xdat.
ydat данные таблицы и y выходной вектор должен иметь одинаковый знак, смещение и дробный наклон.
Совет
Точки останова с четным интервалом могут сделать систему Simulink ® Coder™ свободной от кодового деления. Дополнительные сведения см. в разделеfixpt_evenspace_cleanup в документации Simulink и определить сомнительные операции с фиксированной точкой (встроенный кодер) в документации Simulink Coder.
Блок использует входные значения для формирования выходных данных с помощью метода, выбранного для метода подстановки:
| Метод подстановки | Блокировать действие |
|---|---|
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 соответствует значению точки останова.
Некоторые непрерывные решатели подразделяют временной интервал моделирования на основные и второстепенные временные шаги. Второстепенный временной шаг является подразделением основного временного шага. Решатель выдает результат на каждом основном шаге времени и использует результаты на второстепенных шагах времени для повышения точности результата на главном шаге времени. Для непрерывных решателей вывод блока «Динамическая таблица подстановки» может выглядеть как шаг лестницы, поскольку сигнал фиксируется на второстепенном шаге времени, чтобы избежать неправильных результатов. Дополнительные сведения о влиянии решателей на вывод блока см. в разделе Сравнение решателей в документации Simulink.
Типы данных |
|
Прямой проход |
|
Многомерные сигналы |
|
Сигналы переменного размера |
|
Обнаружение пересечения нулей |
|