exponenta event banner

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

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

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