полиоснование

Функции полиномиального базиса для настраиваемой поверхности усиления

Описание

Расширения базовых функций используются для параметризации поверхностей усиления для настройки контроллеров, запланированных для усиления. polyBasis генерирует стандартные расширения полинома в любом числе переменных планирования. Используйте результирующие функции для создания настраиваемых поверхностей усиления с помощью tunableSurface.

пример

shapefcn = polyBasis('canonical',degree) генерирует функцию, которая оценивает мощности входной переменной, x, до degree:

shapefcn (x) = [x, x2,..., xorder].

пример

shapefcn = polyBasis('chebyshev',degree) генерирует функцию, которая вычисляет многочлены Чебышева до degree:

shapefcn (x) = [T1 (x),..., Тордер (x)].

Полиномы Чебышёва определяются рекурсивно:

T0 (x) = 1; T1 (x) = x; Ti + 1 (x) = 2xTi (x) − Ti − 1 (x).

пример

shapefcn = polyBasis(___,nvars) генерирует nvars-мерное полиномиальное расширение путем взятия внешнего произведения nvars 1-D многочленов. Результирующая функция shapefcn берет nvars входные аргументы и возвращает вектор с (degree+1)^(nvars-1) записей. Например, для nvars = 3 и канонические многочлены,

shapefcn (x, y, z) = [xiyjzk: 0≤i,j,k≤order, i + j + k > 0].

Таким образом, чтобы определить билинейную функцию в двух переменных планирования, используйте:

shapefcn = polyBasis('canonical',1,2);
Использование результирующей функции с tunableSurface определяет переменное усиление формы:

K (x, y) = K0 + K1x + K2y + K3xy.

Здесь x и y являются нормализованными переменными планирования, значения которых лежат в диапазоне [-1,1]. (см. tunableSurface для получения дополнительной информации

Для определения базисных функций в нескольких переменных планирования, где расширения различны для каждой переменной, используйте ndBasis.

пример

shapefcn = polyBasis(___,varnames) задает имена переменных. Используйте этот синтаксис с любым из предыдущих синтаксисов, чтобы назвать переменные в shapefcn. Использование имен переменных повышает читаемость tunableSurface отображение объектов и любого кода MATLAB ®, генерируемого с помощьюcodegen.

Примеры

свернуть все

Создайте базовые функции для коэффициента усиления, который изменяется как кубическая функция одной переменной планирования.

shapefcn = polyBasis('canonical',3);

shapefcn является дескриптором функции одной переменной, которая возвращает массив значений, соответствующих первым трем степеням ее ввода. Другими словами, shapefcn(x) = [x x^2 x^3]. Например, изучить shapefcn(-0.2).

x = -0.2;
shapefcn(x)
ans = 1×3

   -0.2000    0.0400   -0.0080

Оценка [x x^2 x^3] для x = -0.2 возвращает тот же результат.

[x x^2 x^3]
ans = 1×3

   -0.2000    0.0400   -0.0080

Использовать shapefcn в качестве входного аргумента для tunableSurface для определения поверхности усиления полинома. Это shapefcn эквивалентно использованию:

shapefcn = @(x) [x x^2 x^3];

Создайте набор базисных функций, которые являются многочленами Чебышева одной переменной, вплоть до третьей степени.

shapefcn = polyBasis('chebyshev',3);

Создайте базовые функции для билинейной поверхности усиления [x, y, xy]. Назовите переменные, чтобы сделать функцию более удобочитаемой.

shapefcn = polyBasis('canonical',1,2,{'x','y'})
shapefcn = function_handle with value:
    @(x,y)utFcnBasisOuterProduct(FDATA_,x,y)

Подтвердите значения, возвращенные shapefcn для конкретной пары (x, y).

x = 0.2;
y = -0.5;
shapefcn(x,y)
ans = 1×3

    0.2000   -0.5000   -0.1000

Это shapefcn эквивалентно:

shapefcn = @(x,y)[x,y,x*y];

Основные функции shapefcn являются первым порядком в каждой из двух переменных. Чтобы создать набор базисных функций в различных степенях для каждой переменной, используйте ndBasis.

Входные аргументы

свернуть все

Степень полиномиального расширения, заданная как положительное целое число.

Число переменных планирования, указанное как положительное целое число.

Имена переменных в созданной функции shapefcn, указывается как:

  • Символьный вектор для моновариабельных базисных функций.

  • Массив ячеек символьных векторов для многовариантных базисных функций.

Если не указать varnames, затем переменные в shapefcn названы {'x1','x2',...}.

Пример: {'alpha','V'}

Выходные аргументы

свернуть все

Полиномиальное расширение, указанное как дескриптор функции. shapefcn принимает в качестве входных аргументов количество переменных, указанных nvars. Функция вычисляет полиномы в этих переменных до заданной степени и возвращает результирующие значения в векторе. При использовании shapefcn для создания поверхности усиления, tunableSurface автоматически генерирует перестраиваемые коэффициенты для каждого многочлена в векторе.

См. также

| |

Представлен в R2015b