Оценка поверхностей усиления в определенных расчетных точках
Создайте поверхность усиления с одной переменной планирования и оцените коэффициент усиления в списке значений переменных планирования.
При создании поверхности усиления с помощью tunableSurface, задаются точки проектирования, в которых настраиваются коэффициенты усиления. Эти точки, как правило, являются переменными планирования, при которых производится выборка или линеаризация завода. Однако может потребоваться реализовать поверхность усиления в виде таблицы подстановки с точками останова, отличающимися от заданных точек проектирования. В этом примере создается поверхность усиления с набором расчетных точек, а затем вычисляется поверхность с использованием другого набора значений плановых переменных.
Создайте скалярное усиление, которое изменяется как квадратичная функция одной переменной планирования, т. Предположим, что вы линеаризовали растение каждые пять секунд от 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. Каждая запись в этой матрице является независимо настраиваемой поверхностью усиления, которая является билинейной функцией двух переменных планирования. Другими словами, усилительная поверхность задается следующим образом:
+ K3αV,
где каждый из K0,...,K3 коэффициентов сам является матрицей 2 на 2.
Как правило, коэффициенты этих поверхностей усиления настраиваются как часть системы управления. В этом примере вместо настройки вручную установите коэффициенты на ненулевые значения.
K0 = 10*rand(2); K1 = 10*rand(2); K2 = 10*rand(2); K3 = 10*rand(2);
tunableSurface объект сохраняет коэффициенты со значениями массива путем их объединения в массив 2 на 8 (см. tunableSurface справочная страница). Поэтому объедините эти значения K0,...,K3, чтобы изменить коэффициенты 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 - ТочкиТочки, в которых вычисляется поверхность усиления, заданная как массив. Точка представляет собой комбинацию значений переменных планирования. X имеет размеры N-за-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-й переменной планирования. Например, предположим GS - скалярная поверхность усиления с двумя переменными планирования, a и b, и X1 и X2 являются векторами 4 a значения и 5 b значения, соответственно. Затем, размер GV представляет собой [4,5,1,1] или эквивалентно, [4,5]. Или, если GS представляет собой коэффициент усиления с тремя выходами и двумя входными векторными значениями, а затем размер 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 представляет собой коэффициент усиления с тремя выходами и двумя входными векторными значениями, а затем размер GV составляет [3,2,4,5].
getData | setData | tunableSurface | viewSurf
Имеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.