polyBasis

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

Описание

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

пример

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

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

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

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

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

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

свернуть все

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

См. также

| |

Введенный в R2015b