evalSurf
评估特定设计点的增益面
描述
例子
在指定值处计算一维增益面
创建一个带有一个调度变量的增益曲面,并在一个调度变量值列表上计算增益。
当你创建增益面使用tunableSurface
,你指定增益系数调整的设计点。这些点是典型的调度变量值,你已经采样或线性化了工厂。但是,您可能希望将增益面实现为一个带有不同于指定设计点的断点的查找表。在本例中,您将使用一组设计点创建增益曲面,然后使用一组不同的调度变量值对曲面进行计算。
创建一个标量增益,它作为一个调度变量的二次函数变化,t.假设你每隔5秒线性化你的植物t= 0到t= 40。
T = 0:5:40;域= struct(“t”t);Shapefcn = @(x) [x,x^2];可调的表面(“GS”1域shapefcn);
通常情况下,你将调整系数作为控制系统的一部分。对于本例,不进行调优,而是手动将系数设置为非零值。
GS = setData(GS,[12.1,4.2,2]);
在一组不同的时间值处计算增益面。
Tvals = [0,4,11,18,25,32,39,42];% 8个值GV = evalSurf(GS,tvals)
全球之声=8×19.9000 10.0200 10.6150 11.7000 13.2750 15.3400 17.8950 19.1400
全球之声
是一个8 × 1数组。你可以用tvals
而且全球之声
实现变量增益作为查找表。
在数值网格上计算增益面
在由两个调度变量的值组成的网格上计算一个增益曲面。
当你创建增益面使用tunableSurface
,你指定增益系数调整的设计点。这些点是典型的调度变量值,你已经采样或线性化了工厂。但是,您可能希望将增益面实现为一个带有不同于指定设计点的断点的查找表。在本例中,使用一组设计点创建增益曲面,然后使用一组不同的调度变量值对曲面进行计算。
创建一个标量值增益曲面,它是两个自变量的双线性函数, 而且V.
[alpha,V] = ndgrid(0:1.5:15,300:30:600);域= struct(“α”α,“V”, V);Shapefcn = @(x,y) [x,y,x*y];可调的表面(“GS”1域shapefcn);
通常情况下,你将调整系数作为控制系统的一部分。对于本例,不进行调优,而是手动将系数设置为非零值。
GS = setData(GS,[100,28,40,10]);
在所选值处计算增益 而且V.
Alpha_vec = [7:1:13];% N1 = 7分V_vec = [400:25:625];% N2 = 10分GV = evalSurf(GS,alpha_vec,V_vec);
计算增益面的断点不必位于所指定的范围内域
.但是,如果您试图计算超出调优范围太远的增益,软件就会发出警告。
断点也不需要有规律的间隔。evalSurf
计算由组成的网格上的增益面ndgrid (alpha_vec V_vec)
.检查结果数组的尺寸。
大小(问)
ans =1×27 10
默认情况下,网格尺寸N1-by-N2
是数组中的第一个,其次是增益维度。GS
是标量值增益,那么维数呢全球之声
是[7,10,1,1],或等效的[7,10]。
的每个位置的值全球之声
增益是否在相应的位置计算(alpha_vec V_vec)
配对在网格中。例如,全球之声(2、3)
增益是在V_vec (alpha_vec (2), (3))
或(8450)
.
计算数组值增益曲面
在包含两个调度变量的网格上计算数组值增益曲面。
创建一个有两个调度变量的向量值增益。
[alpha,V] = ndgrid(0:1.5:15,300:30:600);域= struct(“α”α,“V”, V);Shapefcn = @(x,y) [x,y,x*y];可调的表面(“GS”,(2, 2),域,shapefcn);
设初始常系数为的(2,2)
原因tunableSurface
来生成一个2乘2的增益矩阵。该矩阵中的每一项都是一个独立的可调增益曲面,它是两个调度变量的双线性函数。换句话说,增益面由:
每个系数在哪里 它本身是一个2 × 2矩阵。
通常,你会调整这些增益面的系数作为控制系统的一部分。对于本例,不进行调优,而是手动将系数设置为非零值。
K0 = 10*兰特(2);K1 = 10*兰特(2);K2 = 10*兰特(2);K3 = 10*兰特(2);
的tunableSurface
对象通过将数组值的系数连接到一个2乘8的数组(请参阅tunableSurface
参考页面)。因此,将这些值连接起来
改变的系数GS
.
GS = setData(GS,[K0 K1 K2 K3]);
现在在调度变量的选定值处计算增益面。
Alpha_vec = [7:1:13];% N1 = 7分V_vec = [400:25:625];% N2 = 10分GV = evalSurf(GS,alpha_vec,V_vec,“gridlast”);
的“gridlast”
排序数组全球之声
这样,增益值网格的尺寸,7 × 10,是最后的。增益阵列本身的尺寸,2 × 2,是第一个。
大小(问)
ans =1×42 2 7 10
输入参数
GS
- - - - - -获得表面
tunableSurface
对象
要计算的曲面,指定为tunableSurface
对象。GS
可以有任意数量的调度变量,并且可以是标量值或数组值。
X
- - - - - -点
数组
计算增益曲面的点,指定为数组。点是调度变量值的组合。X
有尺寸N——- - - - - -米,在那里米调度变量的数量在吗GS
而且N是要评估的点的数量吗GS
.因此,X
是用于评估增益的调度-变量-值组合的列表。例如,假设GS
有两个调度变量,一个
而且b
你想要评估GS
10时(一个
,b
)对。在这种情况下,X
是一个10 × 2数组,它列出了(一个
,b
).其中的点X
不需要匹配的设计点在GS。年代一个mplingGrid
.
X1,…,XM
- - - - - -Scheduling-variable值
数组
用于计算增益面的调度变量值,指定为米数组,米调度变量的数量在吗GS
.例如,如果GS
有两个调度变量,一个
而且b
,然后X1
而且X2
是向量一个
而且b
值,分别。增益曲面在网格上求值ndgrid (X1, X2)
.该网格中的值不必与其中的设计点匹配GS。年代一个mplingGrid
.
gridflag
- - - - - -输出数组的布局
“gridfirst”
(默认)|“gridlast”
输出数组的布局,指定为其中之一“gridfirst”
或“gridlast”
.
“gridfirst”
- - - - - -全球之声
尺寸大小[N1,…,纳米,纽约,ν)
首先是网格尺寸,最后是增益尺寸。这种布局是标量增益的自然格式,其中Ny = Nu = 1
.“gridlast”
- - - - - -全球之声
尺寸大小(纽约,ν,N1,…,海里)
首先是增益维度。这种格式对于矩阵值增益更可读。
输出参数
全球之声
-增益值
数组
获取值,作为数组返回。全球之声
包含在指定的点(调度变量值)处计算的增益X
或X1,…,XM
.的大小全球之声
取决于调度变量的数量GS
为增益的I/O维数GS
的值gridflag
.
如果你在一个列表上计算增益N
数组中指定的点X
,那么大小全球之声
是(N,纽约,ν)
.在这里,(纽约,ν)
为增益的I/O尺寸。例如,假设GS
是一个带有两个调度变量的标量增益曲面,一个
而且b
,X
10 × 2数组是否包含10(a, b)
对。然后全球之声
是包含十个值的列向量。
如果你在一个由向量指定的网格上计算增益X1,…,XM
的维数全球之声
取决于的值gridflag
.
Gridflag = 'gridfirst'
的大小(默认值)全球之声
是[N1,…,纳米,纽约,ν)
.每一个倪
的长度西
,第i个调度变量的值个数。例如,假设GS
是一个带有两个调度变量的标量增益曲面,一个
而且b
,X1
而且X2
都是4的向量一个
值和5b
值,分别。然后,大小全球之声
是[4,5,1,1]或等效的[4,5]。或者,如果GS
是三输出,两输入的向量值增益,那么大小是多少全球之声
(4、5、3、2)。Gridflag = 'gridlast'
-的尺寸全球之声
是(纽约,ν,N1,…,海里)
.例如,假设GS
是一个带有两个调度变量的标量增益曲面,一个
而且b
,X1
而且X2
都是4的向量一个
值和5b
值,分别。然后,大小全球之声
是(1、4、5)。或者,如果GS
是三输出,两输入的向量值增益,那么大小是多少全球之声
(3、2、4、5)。
版本历史
MATLAB命令
你点击了一个对应于这个MATLAB命令的链接:
在MATLAB命令窗口中输入命令来运行该命令。Web浏览器不支持MATLAB命令。万博1manbetx
您也可以从以下列表中选择网站:
如何获得最佳的网站性能
选择中国网站(中文或英文)以获得最佳的网站表现。其他MathWorks国家网站没有针对从您的位置访问进行优化。