Оцените поверхности усиления в определенных точках проекта
GV = evalSurf(GS,X)
GV = evalSurf(GS,X1,...,XM)
GV = evalSurf(___,gridflag)
оценивает поверхность усиления в списке точек, заданных в массиве GV
= evalSurf(GS
,X
)X
. Точка является комбинацией значений переменных планирования. Таким образом X
является N-by-M массив, где N является числом точек, в котором можно оценить усиление, и M является количеством планирования переменных в GS
.
Создайте поверхность усиления с одной переменной планирования и оцените усиление в списке значений переменных планирования.
Когда вы создаете поверхность усиления использование tunableSurface
, вы задаете точки проекта, в которых настраиваются коэффициенты усиления. Эти точки обычно значения переменных планирования, в которых вы выбрали или линеаризовали объект. Однако вы можете хотеть реализовать поверхность усиления как интерполяционную таблицу с точками останова, которые отличаются от заданных точек проекта. В этом примере вы создаете поверхность усиления с набором точек проекта и затем оцениваете поверхность с помощью различного набора планирования значений переменных.
Создайте скалярное усиление, которое отличается как квадратичная функция одной переменной планирования, t. Предположим, что вы линеаризовали свой объект каждые пять секунд от t = 0 к t = 40.
t = 0:5:40; domain = struct('t',t); shapefcn = @(x) [x,x^2]; GS = tunableSurface('GS',1,domain,shapefcn);
Как правило, вы настроили бы коэффициенты как часть системы управления. В данном примере вместо настройки, вручную устанавливает коэффициенты на ненулевые значения.
GS = setData(GS,[12.1,4.2,2]);
Оцените поверхность усиления в различном наборе временных стоимостей.
tvals = [0,4,11,18,25,32,39,42]; % eight values
GV = evalSurf(GS,tvals)
GV = 8×1
9.9000
10.0200
10.6150
11.7000
13.2750
15.3400
17.8950
19.1400
GV
8 1 массив. Можно использовать tvals
и GV
, чтобы реализовать переменное усиление как интерполяционную таблицу.
Оцените поверхность усиления с двумя переменными планирования по сетке значений тех переменных.
Когда вы создаете поверхность усиления использование tunableSurface
, вы задаете точки проекта, в которых настраиваются коэффициенты усиления. Эти точки обычно значения переменных планирования, в которых вы выбрали или линеаризовали объект. Однако вы можете хотеть реализовать поверхность усиления как интерполяционную таблицу с точками останова, которые отличаются от заданных точек проекта. В этом примере вы создаете поверхность усиления с набором точек проекта и затем оцениваете поверхность с помощью различного набора значений переменных планирования.
Создайте поверхность усиления со скалярным знаком, которая является билинейной функцией двух независимых переменных, и V.
[alpha,V] = ndgrid(0:1.5:15,300:30:600); domain = struct('alpha',alpha,'V',V); shapefcn = @(x,y) [x,y,x*y]; GS = tunableSurface('GS',1,domain,shapefcn);
Как правило, вы настроили бы коэффициенты как часть системы управления. В данном примере вместо настройки, вручную устанавливает коэффициенты на ненулевые значения.
GS = setData(GS,[100,28,40,10]);
Оцените усиление в выбранных значениях и V.
alpha_vec = [7:1:13]; % N1 = 7 points V_vec = [400:25:625]; % N2 = 10 points GV = evalSurf(GS,alpha_vec,V_vec);
Точки останова, в которых вы оцениваете поверхность усиления, не должны находиться в пределах области значений, заданной domain
. Однако, при попытке оценить усиление слишком далеко вне области значений, используемой для настройки, программное обеспечение выдает предупреждение.
Точки останова также не должны быть расположены с равными интервалами. evalSurf
оценивает поверхность усиления по сетке, сформированной ndgrid(alpha_vec,V_vec)
. Исследуйте размерности полученного массива.
size(GV)
ans = 1×2
7 10
По умолчанию размерности сетки N1-by-N2
являются первыми в массиве, сопровождаемом размерностями усиления. GS
является усилением со скалярным знаком, таким образом, размерности GV
[7,10,1,1], или эквивалентно [7,10].
Значение в каждом месте GV
является усилением, оцененным в соответствующей паре (alpha_vec,V_vec)
в сетке. Например, GV(2,3)
является усилением, оцененным в (alpha_vec(2),V_vec(3))
или (8,450)
.
Оцените поверхность усиления со знаком массива с двумя переменными планирования по сетке значений тех переменных.
Создайте усиление с векторным знаком, которое имеет две переменные планирования.
[alpha,V] = ndgrid(0:1.5:15,300:30:600); domain = struct('alpha',alpha,'V',V); shapefcn = @(x,y) [x,y,x*y]; GS = tunableSurface('GS',ones(2,2),domain,shapefcn);
Установка начального постоянного коэффициента к ones(2,2)
заставляет tunableSurface
генерировать матрицу усиления 2 на 2. Каждая запись в той матрице является независимо настраиваемой поверхностью усиления, которая является билинейной функцией двух переменных планирования. Другими словами, поверхностью усиления дают:
где каждый из коэффициентов самостоятельно матрица 2 на 2.
Как правило, вы настроили бы коэффициенты тех поверхностей усиления как часть системы управления. В данном примере вместо настройки, вручную устанавливает коэффициенты на ненулевые значения.
K0 = 10*rand(2); K1 = 10*rand(2); K2 = 10*rand(2); K3 = 10*rand(2);
Коэффициенты объектно-ориентированной памяти tunableSurface
со знаком массива путем конкатенации их в 2 8 массив (см. страницу с описанием tunableSurface
). Поэтому конкатенируйте эти значения изменить коэффициенты GS
.
GS = setData(GS,[K0 K1 K2 K3]);
Теперь оцените поверхность усиления в выбранных значениях переменных планирования.
alpha_vec = [7:1:13]; % N1 = 7 points V_vec = [400:25:625]; % N2 = 10 points GV = evalSurf(GS,alpha_vec,V_vec,'gridlast');
'gridlast'
заказывает массиву GV
, таким образом, что размерности сетки значений усиления, 7 10, являются последними. Размерности самого массива усиления, 2 на 2, являются первыми.
size(GV)
ans = 1×4
2 2 7 10
GS
— Поверхность усиленияtunableSurface
Поверхность усиления, чтобы оценить, заданный как объект tunableSurface
. GS
может иметь любое количество планирования переменных, и может быть со скалярным знаком или со знаком массива.
X
'points'Точки, в которых можно оценить поверхность усиления, заданную как массив. Точка является комбинацией значений переменных планирования. X
имеет размерности N-by-M, где M является количеством планирования переменных в GS
, и N является числом точек, в котором можно оценить GS
. Таким образом X
является списком комбинаций значения переменных планирования, в которых можно оценить усиление. Например, предположите, что GS
имеет две переменные планирования, a
и b
, и вы хотите оценить GS
в 10 (a
, b
) пары. В этом случае X
10 2 массив, который перечисляет (a
, b
). Точки в X
не должны совпадать с точками проекта в GS.SamplingGrid
.
X1,...,XM
— Значения переменных планированияЗначения переменных планирования, в которых можно оценить поверхность усиления, заданную как массивы M, где M является количеством планирования переменных в GS
. Например, если GS
имеет две переменные планирования, a
и b
, то X1
и X2
являются векторами a
и значений b
, соответственно. Поверхность усиления оценена по сетке ndgrid(X1,X2)
. Значения в той сетке не должны совпадать с точками проекта в GS.SamplingGrid
.
gridflag
— Размещение выходного массива'gridfirst'
(значение по умолчанию) | 'gridlast'
Размещение выходного массива, заданного или как 'gridfirst'
или как 'gridlast'
.
'gridfirst'
— GV
имеет размер [N1,...,NM,Ny,Nu]
с размерностями сетки сначала и размерностями усиления в последний раз. Это размещение является естественным форматом для скалярного усиления, где Ny = Nu = 1
.
'gridlast'
— GV
имеет размер [Ny,Nu,N1,...,NM]
с размерностями усиления сначала. Этот формат более читаем для усилений с матричным знаком.
GV
— Получите значенияПолучите значения, возвращенные как массив. GV
содержит усиление, оцененное в точках (значения переменных планирования), заданные X
или X1,...,XM
. Размер GV
зависит от количества планирования переменных в GS
, размерностях ввода-вывода усиления, заданного GS
и значением gridflag
.
Если вы вычисляете усиление в списке точек N
, заданных в массиве X
, то размером GV
является [N,Ny,Nu]
. Здесь, [Ny,Nu]
является размерностями ввода-вывода усиления. Например, предположите, что GS
является скалярной поверхностью усиления с двумя переменными планирования, a
и b
, и X
10 2 массив, содержащий 10 пар (a,b)
. Затем GV
является вектор-столбцом десяти значений.
Если вы вычисляете усиление по сетке, заданной векторами X1,...,XM
, то размерности GV
зависят от значения gridflag
.
gridflag = 'gridfirst'
(значение по умолчанию) — Размером GV
является [N1,...,NM,Ny,Nu]
. Каждый Ni
является длиной Xi
, количеством значений i-th планирование переменной. Например, предположите, что GS
является скалярной поверхностью усиления с двумя переменными планирования, a
и b
, и X1
и X2
являются векторами 4 значений a
и 5 значений b
, соответственно. Затем размер GV
[4,5,1,1] или эквивалентно, [4,5]. Или, если GS
является с тремя выводами, 2D входом усиление с векторным знаком, то размер GV
[4,5,3,2].
gridflag = 'gridlast'
— Размером GV
является [Ny,Nu,N1,...,NM]
. Например, предположите, что GS
является скалярной поверхностью усиления с двумя переменными планирования, a
и b
, и X1
и X2
являются векторами 4 значений a
и 5 значений b
, соответственно. Затем размер GV
[1,1,4,5]. Или, если GS
является с тремя выводами, 2D входом усиление с векторным знаком, то размер GV
[3,2,4,5].
getData
| setData
| tunableSurface
| viewSurf
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.