Методы аппроксимации значений функций

Об аппроксимации значений функций

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

Методы интерполяции

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

  • Flat - Отключает интерполяцию и использует операцию округления под названием Use Input Below. Для получения дополнительной информации см. Раздел «Методы округления»

  • Nearest - Отключает интерполяцию и возвращает значение таблицы, соответствующее ближайшей к входу точке останова. Если вход равноудален от двух смежных точек по оси Х, выбирается точка по оси Х с более высоким индексом.

  • Linear point-slope - Подходит к линии между смежными точками останова и возвращает точку на этой линии, соответствующую входу. Это уравнение для линейного наклона точки, где x - входные данные, y - данные выходы таблицы (xi, yi - координата данных таблицы), а f - дробь. Для получения дополнительной информации о xi, yi, см. Раздел «О блоках интерполяционной таблицы».

    f=xxixi+1xi

    y=yi+f(yi+1yi)

  • Cubic spline - Подгоняет кубический сплайн к смежным точкам останова и возвращает точку на сплайне, соответствующую входу.

  • Linear Lagrange - Подходит к линии между смежными точками останова с помощью интерполяции Лагранжа первого порядка и возвращает точку на этой линии, соответствующую входу. Это уравнение для линейного Лагранжа, где x - входные данные, y - данные выходной таблицы, а f - дробь. f ограничено диапазоном от 0 до менее 1 ([0,1)). Дополнительные сведения о x и y см. в разделе О блоках интерполяционной таблицы.

    f=xxixi+1xi

    y=(1f)yi+fyi+1

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

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

    • Он производит меньше волн, чем кубический сплайн.

    • Он эффективнее для приложений реального времени, чем кубический сплайн.

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

    • В отличие от кубического сплайна, он поддерживает нескалярные сигналы.

Примечание

Блок Lookup Table Dynamic не позволяет вам выбрать метод интерполяции. The Interpolation-Extrapolation опция в Lookup Method поле диалогового окна параметров блоков выполняет линейную интерполяцию.

Каждый метод интерполяции включает компромисс между временем расчета и плавностью результата. Хотя округление самое быстрое, оно наименее гладкое. Линейная интерполяция медленнее, чем округление, но генерирует более плавные результаты, за исключением точек прерывания, где изменяется уклон. Кубическая сплайн интерполяция является самым медленным методом, но дает гладкие результаты. Акима даёт самые плавные результаты.

Методы экстраполяции

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

  • Clip - Отключает экстраполяцию и возвращает данные таблицы, соответствующие концу области значений набора данных точек по оси Х. Это не обеспечивает защиту от значений вне области допустимого.

  • Linear - Если метод интерполяции Linearэтот метод экстраполяции подходит для линии между первой или последней парой точек по оси Х, в зависимости от того, меньше ли вход первой или больше, чем последняя точка по оси Х. Если метод интерполяции Cubic spline или Akima splineэтот метод экстраполяции подходит для линейной поверхности, используя наклон интерполяции в первой или последней точке пропуска, в зависимости от того, меньше ли вход первой или больше последней точки разрыва. Метод экстраполяции возвращает точку на сгенерированной линейной поверхности, соответствующей входу.

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

  • Cubic spline - Подходит кубический сплайн к первой или последней паре точек останова, в зависимости от того, меньше ли вход первой или больше, чем последняя точка останова, соответственно. Этот метод возвращает точку на сплайне, соответствующую входу.

  • Akima spline - Подбирает акиму к первой или последней паре точек останова, в зависимости от того, меньше ли вход первой или больше, чем последняя точка останова, соответственно. Этот метод возвращает точку на сплайне, соответствующую входу.

Примечание

Блок Lookup Table Dynamic не позволяет вам выбрать метод экстраполяции. The Interpolation-Extrapolation опция в Lookup Method поле диалогового окна параметров блоков выполняет линейную экстраполяцию.

В дополнение к этим методам некоторые блоки интерполяционной таблицы, такие как блок n-D Lookup Table, позволяют вам выбрать действие, которое должно выполняться при встречах с ситуациями, которые требуют экстраполяции. Например, можно задать, что Simulink генерирует предупреждение или ошибку, когда входы интерполяционной таблицы находятся вне областей значений наборов данных точек по оси Х. Чтобы задать такое действие, выберите его из списка Diagnostic for out-of-range input в диалоговом окне параметров блоков.

Методы округления

Если вход падает между значениями точек по оси Х или вне области значений набора данных точек Х, и вы не задаете интерполяцию или экстраполяцию, блок округляет значение до смежной точки Х и возвращает соответствующее выходное значение. Например, блок Lookup Table Dynamic позволяет вам выбрать один из следующих методов округления:

  • Use Input Nearest - Возвращает выходное значение, соответствующее ближайшему входному значению.

  • Use Input Below - Возвращает выходное значение, соответствующее значению точки останова, которое сразу меньше, чем входное значение. Если значение точки по оси Х не существует ниже входа значения, оно возвращает значение точки по оси Х, наиболее близкое к входу значению.

  • Use Input Above - Возвращает выходное значение, соответствующее значению точки останова, которое непосредственно больше входного значения. Если значение точки по оси Х не существует выше входа значения, оно возвращает значение точки по оси Х, ближайшее к входу значению.

Пример выхода для методов поиска

В следующей модели блок Lookup Table Dynamic принимает вектор данных точек по оси Х, заданных [-5:5] и вектор данных таблиц заданных sinh([-5:5]).

Динамический блок Интерполяционная таблица выводит следующие значения при использовании заданных методов поиска и входов.

Метод поискаВходВыходКомментарий

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

1.4

2.156

Н/Д

5.2

83.59

Н/Д

Интерполяция -
Использование конечных значений

1.4

2.156

Н/Д

5.2

74.2

Блок использует значение для sinh(5.0).

Use Input Above

1.4

3.627

Блок использует значение для sinh(2.0).

5.2

74.2

Блок использует значение для sinh(5.0).

Use Input Below

1.4

1.175

Блок использует значение для sinh(1.0).

-5.2

-74.2

Блок использует значение для sinh(-5.0).

Use Input Nearest

1.4

1.175

Блок использует значение для sinh(1.0).

Похожие темы