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

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

Второй этап операции поиска по таблице включает генерацию выходные параметры, которые соответствуют поданным входным сигналам. Если входные параметры совпадают со значениями индексов, заданных в наборах данных точки останова, блок выводит соответствующие значения. Однако, если входным параметрам не удается совпадать со значениями индекса в наборах данных точки останова, 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 extrapolationMethod . Модифицированный Акима кубический метод интерполяции Эрмита имеет эти свойства:

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

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

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

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

Примечание

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

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

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

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

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

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

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

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

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

Примечание

Блок Lookup Table Dynamic не позволяет вам выбрать метод экстраполяции. 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]).

Блок Lookup Table Dynamic выводит следующие значения при использовании заданных методов поиска и входных параметров.

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

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

1.4

2.156

N/A

5.2

83.59

N/A

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

1.4

2.156

N/A

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).

Похожие темы