ndBasis

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

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

Синтаксис

shapefcn = ndBasis(F1,F2)
shapefcn = ndBasis(F1,F2,...,FN)

Описание

пример

shapefcn = ndBasis(F1,F2) формирует внешнее (тензор) продукт двух расширений основной функции. Каждое расширение основной функции является функцией, которая возвращает вектор условий расширения, такой, как возвращено polyBasis. Если F1(x1)=[F1,1(x1),F1,2(x1),,F1,i(x1)] и F2(x2)=[F2,1(x2),F2,2(x2),,F2,i(x2)], затем shapefcn является вектором условий формы:

Fij=F1,i(x1)F2,j(x2).

Условия перечислены ориентированным на столбец способом, с i, отличающимся сначала, затем j.

shapefcn = ndBasis(F1,F2,...,FN) формирует векторное произведение из трех или больше расширений основной функции. Условия в векторе, возвращенном shapefcn, имеют форму:

Fi1iN=F1,ii(x1)F2,i2(x2)FN,iN(xN).

Эти условия перечислены в порядке сортировки тот из N-мерного массива, с i 1 варьирование сначала, затем i 2, и так далее. Каждый Fj может самостоятельно быть многомерным расширением основной функции.

Примеры

свернуть все

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

Задайте одномерный набор основных функций.

F = @(x)[x,x^2];

Эквивалентно, можно использовать polyBasis, чтобы создать F.

F = polyBasis('canonical',2);

Сгенерируйте двумерное расширение от F.

F2D = ndBasis(F,F);

F2D является функцией двух переменных. Функция возвращает вектор, содержащий оцененные основные функции тех двух переменных:

F2D(x,y)=[x,x2,y,yx,yx2,y2,xy2,x2y2].

Чтобы подтвердить это, оцените F2D для x = 0.2, y =-0.3.

F2D(0.2,-0.3)
ans = 1×8

    0.2000    0.0400   -0.3000   -0.0600   -0.0120    0.0900    0.0180    0.0036

Расширение, которое вы комбинируете с ndBasis, не должно иметь того же порядка. Например, объедините F с расширением первого порядка в одной переменной.

G = @(y)[y];
F2D2 = ndBasis(F,G);

Массив, возвращенный F2D2, подобен возвращенному F2D без условий, которые квадратичны во второй переменной.

F2D2(x,y)=[x,x2,y,yx,yx2].

Оцените F2D2 для x = 0.2, y =-0.3, чтобы подтвердить порядок условий.

F2D2(0.2,-0.3)
ans = 1×5

    0.2000    0.0400   -0.3000   -0.0600   -0.0120

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

Сначала сгенерируйте одномерные расширения. Назовите переменные для улучшенной удобочитаемости.

F1 = polyBasis('canonical',2,'x');
F2 = fourierBasis(1,1,'y');

Для простоты этот пример берет только первую гармонику периодического изменения. Этим расширениям дали основные функции:

F1(x)=[x,x2],F2(y)=[потому что(πy),sin(πy)].

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

F = ndBasis(F1,F2)
F = function_handle with value:
    @(x,y)utFcnBasisOuterProduct(FDATA_,x,y)

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

F(x,y)=[x,x2,потому что(πy),потому что(πy)x,потому что(πy)x2,sin(πy),xsin(πy),x2sin(πy)].

Чтобы подтвердить это, оцените F для x = 0.2, y =-0.3.

F(0.2,-0.3)
ans = 1×8

    0.2000    0.0400    0.5878    0.1176    0.0235   -0.8090   -0.1618   -0.0324

Входные параметры

свернуть все

Расширение основной функции, заданное как указатель на функцию. Функция должна возвратить вектор основных функций одной или нескольких переменных планирования. Можно задать эти основные функции явным образом или использование polyBasis или fourierBasis.

Пример: F = @(x)[x,x^2,x^3]

Пример: F = polyBasis(3,2)

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

свернуть все

Расширение основной функции, заданное как указатель на функцию. shapefcn берет в качестве входных параметров общее количество переменных в F1,F2,...,FN. Это возвращает вектор функций тех переменных, заданных на интервале [–1,1] для каждой входной переменной. Когда вы используете shapefcn, чтобы создать поверхность усиления, tunableSurface автоматически генерирует настраиваемые коэффициенты для каждого термина в векторе.

Советы

  • Операция ndBasis ассоциативна:

    ndBasis(F1,ndBasis(F2,F3)) = ndBasis(ndBasis(F1,F2),F3) = ndBasis(F1,F2,F3)

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

| |

Введенный в R2015b