主要内容

tunableSurface

创建可调增益表面的增益调度

描述

tunableSurface可以参数化和优化获得时间,这些收益变化作为一个或多个调度变量的函数。

为优化目的,方便参数化变量获得光滑获得表面的形式:

K ( n ( σ ) ) = γ ( K 0 + K 1 F 1 ( n ( σ ) ) + + K F ( n ( σ ) ) ] ,

在哪里

  • σ是一个调度变量的向量。

  • n(σ)是一个归一化函数(参见归一化输出参数的属性K)。

  • γ是一个比例因子(见归一化输出参数的属性K)。

  • F1、……F用户选择的基函数。

  • K0、……K系数是调优

您可以使用术语在一个通用的多项式作为基函数扩张。或者,当预期的形状K(σ),您可以使用更具体的功能。然后,您可以使用systune调整系数K0、……K,你的设计要求,在scheduling-variable值的范围。

例子

K= tunableSurface (的名字,K0init,,shapefcn)创建可调增益表面:

K ( n ( σ ) ) = γ ( K 0 + K 1 F 1 ( n ( σ ) ) + + K F ( n ( σ ) ) ]

可调表面K存储指定的基函数shapefcn和一组离散的σ值(设计点)由。表面可调增益可调系数K0、……K。增益值初始化为恒定增益K0init。您可以组合K与其他静态或动态元素来构造gain-scheduled控制系统的闭环模型。或者,使用K在一个参数化一个查找表slTuner接口模型金宝app®模型。然后,用systune调优K0、……K使闭环系统满足您的设计要求选定的设计点。

K= tunableSurface (的名字,K0init,)创建一个平面与常数,可调增益。这个语法是等价的K0init tunableGain(名称)

例子

全部折叠

创建一个标量获得K变化的二次函数t:

K ( t ) = K 0 + K 1 n ( t ) + K 2 ( n ( t ) ) 2

这个增益表面可以表示增益随时间。系数 K 0 , K 1 , K 2 可调参数的时变增益。对于这个示例,假设t变化从0到40。在这种情况下,标准化函数 n ( t ) = ( t - - - - - - 2 0 ) / 2 0

代表可调增益表面K(t在MATLAB®),首先选择一个向量的t值系统的设计要点。例如,如果你的设计点是快照的时变系统每5秒时间t = 40 t = 0时,使用以下采样网格:

t = 0:5:40;域=结构(“t”t);

指定一个变量的二次函数。

shapefcn = @ (x) [x, x ^ 2];

shapefcn是一个匿名的向量函数的句柄。中的每个条目词向量给出了多项式描述变量得到扩张。tunableSurface隐式地假定常数函数 f 0 ( t ) = 1 ,所以它不需要包含在shapefcn

创建一个可调增益表面K(t)。

K = tunableSurface (“K”1域shapefcn)
可调表面“K”标量收益:调度变量:* t *基函数:t, t ^ 2 *设计要点:1 x9网格的t值*正常化:默认(从设计点)

显示总结的特点获得表面,包括设计点和基础功能。检查的性质K

得到(K)
BasisFunctions: @ (x) [x, x ^ 2]系数:[1 x3 realp] SamplingGrid: [1 x1 struct]正常化:[1 x1 struct]的名字:“K”

系数产权的可调的表面可调系数的数组, ( K 0 , K 1 , K 2 ] ,存储为一个数组值realp块。

您现在可以使用可调表面控制系统模型。在MATLAB优化互连K与其他控制系统元素就像使用一个控制设计块创建一个可调控制系统模型。在仿真软件优化®,使用金宝appsetBlockParam为了使K在一个可调的参数化块slTuner接口。当你调整模型或slTuner接口的使用systune,由此产生的模型或接口包含调优值系数 K 0 , K 1 , K 2

调整系数后,您可以查看使用的形状产生的增益曲线viewSurf命令。对于这个示例,而手工调优,将系数设置为非零值。查看产生的增益作为时间的函数。

Ktuned = setData (K, [12.1, 4.2, 2]);viewSurf (Ktuned)

图包含一个坐标轴对象。坐标轴对象与标题增益K (t),包含t, ylabel K包含一个类型的对象。

viewSurf显示增益调度的函数变量,scheduling-variable值范围的规定和存储在SamplingGrid房地产获得的表面。

这个例子展示了如何建模一个标量K用双线性对两个调度变量的依赖。你这样做,通过创建一个网格的设计点代表独立的两个变量的依赖。

假设第一个变量α入射角,范围从0到15度,而第二个变量V是一个速度,范围从300到600 m / s。默认情况下,标准化变量:

x = α - - - - - - 7 5 7 5 , y = V - - - - - - 4 5 0 1 5 0

获得表面建模为:

K ( α , V ) = K 0 + K 1 x + K 2 y + K 3 x y ,

在哪里 K 0 , , K 3 可调参数。

创建一个网格的设计点,(α,V),是线性的αV。这些设计点是scheduling-variable值用于调优gain-surface系数。他们必须对应参数值的采样植物。

(α,V) = ndgrid (0:3:15,300:50:600);

这些数组,αV,代表了独立的两个调度变量的变化,每一个在其完整的范围。把它们放进一个结构定义为可调表面设计点。

域=结构(“α”α,“V”,V);

创建基函数,描述了双线性扩张。

shapefcn = @ (x, y) (x, y, x * y);%或使用polyBasis(“规范”,1、2)

在返回的数组shapefcn基函数是:

F 1 ( x , y ) = x F 2 ( x , y ) = y F 3 ( x , y ) = x y

创建一个可调增益表面。

K = tunableSurface (“K”1域shapefcn);

您可以使用可调表面作为一个查找表的参数化块或MATLAB仿真软件中功能块模型。金宝app或者,使用模型连接命令将它作为可调控制系统在MATLAB建模元素。调整系数后,您可以检查结果获得表面使用viewSurf命令。对于这个示例,而手工调优,将系数设置为非零值和视图产生的收益。

Ktuned = setData (K,[40岁,100年,28日10]);viewSurf (Ktuned)

图包含一个坐标轴对象。坐标轴对象与标题增益K(α,V),包含α,ylabel V表面包含一个类型的对象。

viewSurf显示获得表面作为调度变量的函数,所指定的值的范围和存储在SamplingGrid房地产获得的表面。

使用设计点创建一个获得表面不形成一个正则网格操作领域。获得表面变化作为一个双线性归一化调度变量的函数 α N β N :

K ( α N , β N ) = K 0 + K 1 α N + K 2 β N + K 3 α N β N

假设的值以下调度变量的兴趣 ( α , β ) 对。

( α , β ) = { ( - - - - - - 0 9 , 0 0 5 ) ( - - - - - - 1 5 , 0 6 ) ( - - - - - - 1 5 , 0 9 5 ) ( - - - - - - 2 5 , 0 5 ) ( - - - - - - 3 2 , 0 7 ) ( - - - - - - 3 9 , 0 3 )

指定 ( α , β ) 样本值向量。

α= (-0.9;-1.5;-1.5;-2.5;-3.2;-3.9);β= [0.05;0.6;0.95;0.5;0.7;0.3);域=结构(“α”α,“β”,β);

而不是常规电网 ( α , β ) 值,这里的系统采样间隔不规则点 ( α , β ) 讨论。

情节(α,β,“o”)

图包含一个坐标轴对象。轴包含一行对象显示其值只使用标记。

指定基函数。

shapefcn = @ (x, y) (x, y, x * y);

创建可调模型获得的表面使用这些采样值的函数。

K = tunableSurface (“K”1域shapefcn)
可调的表面“K”标量收益:*调度变量:α,β*基函数:α,βαβ* *设计点:6 x1网格(α,β)值*正常化:默认(从设计点)

域的列表6 ( α , β ) 对。正常化,默认情况下,转变 α β 所以每个变量的范围的中心是零,和尺度范围从1到1。

K.Normalization
ans =结构体字段:InputOffset: [-2.4000 - 0.5000] InputScaling: [1.5000 - 0.4500] OutputScaling: 1

创建一个可调增益表面,需要两个调度变量和返回一个3×3增益矩阵。增益矩阵中的每个条目是一个独立的两个调度变量的函数。

创建一个网格的设计点(α,V)

(α,V) = ndgrid (0:3:15,300:50:600);域=结构(“α”α,“V”,V);

创建描述表面的基函数随调度变量。使用的基础上,描述了一个双线性扩张αV

shapefcn = polyBasis (“规范”、1、2);

创建可调表面,指定的初始值矩阵值获得表面。这个值集的价值获得表面规范化调度变量时都是零。tunableSurface将获得表面的尺寸从你指定的初始值。因此,创建一个3×3增益矩阵,使用3 x3的初始值。

K0init =诊断接头(0.05 [0.05—-0.05]);K0 = tunableSurface (“K”、K0init域,shapefcn)
3 x3增益矩阵的可调的表面“K”: *调度变量:α,V *基函数:@ (x1, x2) utFcnBasisOuterProduct (FDATA_ (x1, x2) *设计点:6 x7网格(α,V)值*正常化:默认(从设计点)

输入参数

全部折叠

可调增益表面识别标签,指定为一个特征向量。tunableSurface使用这个名称realp块,代表了表面的可调系数。因此,您可以使用这个名称指的是在一个可调增益系数一族控制系统或模型slTuner接口。

初始值可调增益常数项的表面,指定为一个标量或数组。的尺寸K0init确定I / O方面获得的表面。例如,如果获得表面代表了两个输入,两个输出增益,可以设置K0init = 1 (2)。其余系数K1, K2,…总是有相同的大小K0。可调系数自动扩展,这样在每个I / O通道独立调整。

例如,对于两个输入,两个输出表面,有一组中的每个条目的膨胀系数增益矩阵。

每个条目Kij在可调增益矩阵K(n(σ)是由:

K j ( n ( σ ) ) = K j 0 + K j 1 F 1 ( n ( σ ) ) + + K j F ( n ( σ ) )

设计点的表面调整,指定为一个结构。结构字段包含调度变量的值在你样品的工厂gain-scheduled调优。例如,假设你想调整增益变化作为两个调度变量的函数,αV。你在网格的线性化植物αV值,α= (0.5,0.10,0.15)V= (700800900、1000)

。指定设计要点如下:

(α,V) = ndgrid ((0.5, 0.10, 0.15), (700800900、1000));域=结构(“α”α,“V”,V);

设计点不必躺在一个矩形或定期间隔的网格(见获得表面在非正规的网格)。然而,最佳结果用设计点,覆盖整个范围的操作条件。自调优只考虑这些设计点,调整增益调度问题的有效性远从设计点的操作条件。

基函数用于模型获得表面的调度变量指定为一个函数处理。相关的函数处理需要调度变量的归一化值作为输入,并返回一个矢量基函数的值。基函数总是操作规范化区间[1]。tunableSurface隐式可实现调度变量区间。

例如,考虑scheduling-variable值α= (0.5,0.10,0.15)V= (700800900、1000)。以下表达式创建基函数为双线性增加表面在这些变量:

shapefcn = @ (x, y) [x y x * y];

shapefcn是一个匿名函数两个变量。基函数描述参数化 G ( α , V ) = G 0 + G 1 α N + G 2 V N + G 3 α N V N 在哪里αNVN是归一化调度变量(参见吗归一化的属性K)。

您可以使用匿名函数来指定任何一组基函数,你需要描述变量。或者,您可以使用辅助函数自动生成基函数常用的扩展:

  • polyBasis——幂级数展开和切比雪夫扩张。

  • fourierBasis——定期傅里叶级数展开。生成的基函数fourierBasis是周期性的,这样获得的表面K由这些功能满足定义的K(1)=K(1)。当您创建一个表面使用tunableSurface,该软件可实现scheduling-variable您指定的范围区间[1]。因此,如果你使用定期函数,那么相应的调度变量的采样范围必须是一个周期。这一限制保证了基函数的周期性调度变量的匹配。例如,如果定期不同调度变量是一个范围从0到2角π,那么相应的值还必须从0到2吗π

  • ndBasis——从低维扩展构建多维扩张。这个函数是非常有用的,当你想要使用不同的基函数对不同调度变量。

有关更多信息,请参见参考页面的函数的基函数生成。

输出参数

全部折叠

可调增益表面,作为一个返回tunableSurface对象。这个对象有以下属性存储系数,基函数,获得表面和其他信息:

  • BasisFunctions——基函数,指定为一个函数处理。当您创建获得表面,shapefcn输入参数设置这个属性的初始值。

  • 系数-可调系数的获得表面,指定为一个数组值realp可调参数。的尺寸K0init和基函数的数量shapefcn确定的尺寸K.Coefficients

    标量的收益,K.Coefficients有尺寸(1)M + 1),在那里基函数的数量。的条目K.Coefficients对应于可调系数K0、……K

    对于数组值收益,每个系数扩展的维度K0init。这些扩展系数是连接水平K.Coefficients。因此,例如,两个输入,两个输出增益表面,K.Coefficients有尺寸(2,2 (M + 1))

    每个条目Kij在可调增益矩阵K(n(σ)是由:

    K j ( n ( σ ) ) = K j 0 + K j 1 F 1 ( n ( σ ) ) + + K j F ( n ( σ ) )

  • SamplingGrid——网格的设计点,指定为一个数据结构。当您创建获得表面,输入参数设置这个属性的初始值。

  • 归一化——标准化抵消和扩展,与字段指定为一个结构:

    • InputOffset——为每个调度变量矢量的补偿。

    • InputScaling——为每个调度变量向量扩展因素。

    • OutputScaling为了整体利益,比例因子。

    一般来说,tunableSurface参数化的形式:

    K ( σ ) = OutputScaling ( K 0 + K 1 F 1 ( n ( σ ) ) + + K F ( n ( σ ) ) ] ,

    在哪里n(σ)是归一化调度变量,给出的:

    n ( σ ) = σ InputOffset InputScaling

    tunableSurface可实现调度变量压缩他们的数值范围,提高优化过程的数值稳定性。默认情况下,OutputScaling= 1,tunableSurface计算的值InputOffsetInputScaling这地图SamplingGrid域的每个调度变量[1]。因此,n= 0的中心设计点范围。

    您可以更改默认的规范化,通过调整这些字段的值。例如:

    • 如果你有一个已知的增益值为一个特定的设计点,您可以设置Normalization.InputOffsetn在设计点= 0。你可以设置K0init已知的增益值。

    • 如果你想限制一个调度变量非负价值,集Normalization.InputOffset该变量的最小值在网格设计。这个限制是有用的,例如,当你的基函数包括 σ

  • 的名字——获得表面的名称指定为一个特征向量。当您创建获得表面,的名字输入参数设置这个属性的初始值。

提示

  • 调整增加表面在MATLAB控制系统建模®:连接获得表面与数组的植物模型对应于设计点。例如,假设G是一个数组,然后呢K表示一个变量积分时间。以下命令构建一个闭环模型,您可以调整的systune命令。

    C0 =特遣部队(K, [1 0]);T0 =反馈(C0 * G, 1);
  • 调整增加表面在一个控制系统建模仿真软件:使用增益曲面参数化按照查询表,矩阵插值,或金宝appMATLAB函数在仿真软件模型。金宝app例如,假设ST0是一个slTuner接口仿真软件模型,金宝appGainTable是一个调谐块的名字在接口。下面的命令集的参数化GainTable可调增益表面。

    ST0 = setBlockParam (ST0,“GainTable”、K);

    看到参数化得到时间表为更多的信息。

  • 当你使用writeBlockValue(金宝app仿真软件控制设计)写一个调谐获得表面仿真软件模型,软件使用金宝appcodegen为获得表面生成MATLAB代码。您可以使用codegen你自己检查该代码。

版本历史

介绍了R2015b