主要内容

evalSurf

评估特定设计点的增益面

描述

例子

全球之声= evalSurf (GSX在数组中指定的点列表处计算增益曲面X.点是调度变量值的组合。因此X是一个N——- - - - - -数组,N是用来评估增益的点的数量,和调度变量的数量在吗GS

例子

全球之声= evalSurf (GSX1,…,XM计算由向量生成的矩形网格上的增益曲面X1,…,XM.每个向量包含一个调度变量的值GS

例子

全球之声= evalSurf (___gridflag的布局。全球之声

例子

全部折叠

创建一个带有一个调度变量的增益曲面,并在一个调度变量值列表上计算增益。

当你创建增益面使用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的增益矩阵。该矩阵中的每一项都是一个独立的可调增益曲面,它是两个调度变量的双线性函数。换句话说,增益面由:

G 年代 K 0 + K 1 α + K 2 V + K 3. α V

每个系数在哪里 K 0 ... K 3. 它本身是一个2 × 2矩阵。

通常,你会调整这些增益面的系数作为控制系统的一部分。对于本例,不进行调优,而是手动将系数设置为非零值。

K0 = 10*兰特(2);K1 = 10*兰特(2);K2 = 10*兰特(2);K3 = 10*兰特(2);

tunableSurface对象通过将数组值的系数连接到一个2乘8的数组(请参阅tunableSurface参考页面)。因此,将这些值连接起来 K 0 ... K 3. 改变的系数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

输入参数

全部折叠

要计算的曲面,指定为tunableSurface对象。GS可以有任意数量的调度变量,并且可以是标量值或数组值。

计算增益曲面的点,指定为数组。点是调度变量值的组合。X有尺寸N——- - - - - -,在那里调度变量的数量在吗GS而且N是要评估的点的数量吗GS.因此,X是用于评估增益的调度-变量-值组合的列表。例如,假设GS有两个调度变量,一个而且b你想要评估GS10时(一个b)对。在这种情况下,X是一个10 × 2数组,它列出了(一个b).其中的点X不需要匹配的设计点在GS。年代一个mplingGrid

用于计算增益面的调度变量值,指定为数组,调度变量的数量在吗GS.例如,如果GS有两个调度变量,一个而且b,然后X1而且X2是向量一个而且b值,分别。增益曲面在网格上求值ndgrid (X1, X2).该网格中的值不必与其中的设计点匹配GS。年代一个mplingGrid

输出数组的布局,指定为其中之一“gridfirst”“gridlast”

  • “gridfirst”- - - - - -全球之声尺寸大小[N1,…,纳米,纽约,ν)首先是网格尺寸,最后是增益尺寸。这种布局是标量增益的自然格式,其中Ny = Nu = 1

  • “gridlast”- - - - - -全球之声尺寸大小(纽约,ν,N1,…,海里)首先是增益维度。这种格式对于矩阵值增益更可读。

输出参数

全部折叠

获取值,作为数组返回。全球之声包含在指定的点(调度变量值)处计算的增益XX1,…,XM.的大小全球之声取决于调度变量的数量GS为增益的I/O维数GS的值gridflag

如果你在一个列表上计算增益N数组中指定的点X,那么大小全球之声(N,纽约,ν).在这里,(纽约,ν)为增益的I/O尺寸。例如,假设GS是一个带有两个调度变量的标量增益曲面,一个而且b,X10 × 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)。

提示

  • 使用evalSurf将调优增益曲面转换为查找表。集X1,…,XM到所需的表断点并使用全球之声作为表数据。表断点不需要与用于调优的设计点匹配GS

版本历史

在R2015b中引入