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)=[cos(π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,cos(πy),cos(πy)x,cos(π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