exponenta event banner

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

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

Описание

Расширения базовых функций используются для параметризации поверхностей усиления для настройки контроллеров, запланированных для усиления. 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