ndBasis

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

Описание

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

пример

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