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

Полиномиальные основные функции для настраиваемой поверхности усиления

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

Синтаксис

shapefcn = polyBasis('canonical',degree)
shapefcn = polyBasis('chebyshev',degree)
shapefcn = polyBasis(___,nvars)
shapefcn = polyBasis(___,varnames)

Описание

пример

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

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

пример

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

shapefcn(x)=[T1(x),,Torder(x)].

Полиномы Чебышева заданы рекурсивно:

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

пример

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

shapefcn(x,y,z)=[xiyjzk:  0i,j,korder,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, заданном как a:

  • Вектор символов, для монопеременных основных функций.

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

Если вы не задаете varnames, то переменные в shapefcn называют {'x1','x2',...}.

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

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

свернуть все

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

Смотрите также

| |

Введенный в R2015b