主要内容

可调表面

创建可调增益表面以获得增益调度

描述

可调表面用于参数化和调优获得时间表,是作为一个或多个调度变量的函数而变化的增益。

出于调谐目的,可以方便地将可变增益参数化为平滑增益获得表面表格:

K. N σ = γ [ K. 0. + K. 1 F 1 N σ + ...... + K. m F m N σ ]

在哪里

  • σ是调度变量的向量。

  • Nσ)是一个标准化函数(请参阅规范化产出参数的属性K.)。

  • γ是一个比例因子(见规范化产出参数的属性K.)。

  • F1、……Fm是用户选择的基功能。

  • K.0.、……K.m系数需要调整吗

您可以在通用多项式扩展中使用术语作为基函数。或者,当预期的形状K.σ),则可以使用更具体的函数。你可以使用Systune.调整系数K.0.、……K.m,根据您的设计要求,在调度变量值范围内。

例子

K.= Tunablyurface(的名字k0init.领域shapefcn创建可调增益面:

K. N σ = γ [ K. 0. + K. 1 F 1 N σ + ...... + K. m F m N σ ]

可调表面K.存储指定的基本函数shapefcn和一个离散的一套σ值(设计点)给出领域.可调谐增益面具有可调谐系数K.0.、……K.m.增益值初始化为恒定增益k0init..你可以合并K.与其他静态或动态元素一起构建增益计划控制系统的闭环模型。或者,使用K.参数化一个查找表SLTUNER.接口到Simulink金宝app®模型。然后,用Systune.调音K.0.、……K.m以便闭环系统在选定的设计点满足您的设计要求。

K.= Tunablyurface(的名字k0init.领域创建一个具有恒定的、可调增益的平面。该语法等价于可调增益(名称,K0init)

例子

全部崩溃

创建标量增益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.这些值是系统的设计点。例如,如果你的设计点是一个时变系统从t = 0到t = 40每5秒的快照,请使用以下采样网格:

t=0:5:40;域=结构('T',t);

为可变增益指定一个二次函数。

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

shapefcn是匿名向量函数的句柄。向量中的每个条目在多项式展开式中给出一个描述可变增益的项。可调表面隐式假设常数函数 F 0. T. = 1 ,因此无需将其包含在shapefcn

创建可调增益面K.T.)。

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

该显示器总结了增益面的特点,包括设计要点和基本功能。检查K.

获取(K)
BasisFunctions: @(x)[x,x^2] Coefficients: [1x3 realp] SamplingGrid: [1x1 struct] normalize: [1x1 struct] Name: 'K'

系数可调谐表面的特性是可调谐系数的数组, [ K. 0. K. 1 K. 2 ] ,存储为数组值实际堵塞。

现在可以在控制系统模型中使用可调曲面。在MATLAB中进行调优,互连K.与其他控制系统元素一样,您可以使用控制设计块来创建可调控制系统模型。用于在Simulink®中调金宝app整,使用setBlockParam为了使K.类中可调块的参数化SLTUNER.接口。当您调整模型或SLTUNER.接口的使用Systune.,得到的模型或界面包含调整后的系数值 K. 0. K. 1 K. 2

调整系数后,您可以使用该系数查看产生的增益曲线的形状viewSurf命令对于本例,手动将系数设置为非零值而不是调整。将结果增益视为时间的函数。

K调谐=设定数据(K[12.1,4.2,2]);viewSurf(K调谐)

图中包含一个坐标轴。标题为增益K(t)的轴包含一个类型为line的对象。

viewSurf将增益显示为调度变量的函数,用于指定的调度变量值范围领域储存在SamplingGrid增益面性质。

此示例显示如何模拟标量增益K.具有对两个调度变量的双线性依赖性。您可以通过创建一个设计点网格来实现这一点,该网格表示两个变量的独立相关性。

假设第一个变量α入射角是否在0到15度之间,第二个变量是什么V.为300 ~ 600m /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..这些设计点是用于调优增益面系数的调度变量值。它们必须与你对植物取样时的参数值相对应。

[alpha,v] = ndgrid(0:3:15,300:50:600);

这些阵列,αV.,表示两个调度变量的独立变化,每个变量都跨越其整个范围。将它们放入结构中,以定义可调曲面的设计点。

Domain = struct(“α”α,'v',v);

创建描述双线性扩展的基本函数。

Shapefcn = @(x,y) [x,y,x*y];%或使用polyBasis('canonical',1,2)

返回的数组中shapefcn,其基本功能是:

F 1 X y = X F 2 X y = y F 3. X y = X y

创建可调增益表面。

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

您可以使用可调曲面作为Simulink模型中查找表块或MATLAB函数块的参数化。金宝app或者,使用模型连接命令将其作为可调元件合并到MATLAB建模的控制系统中。在调整系数之后,可以使用viewSurf命令。对于本例,不需要进行调整,而是手动将系数设置为非零值并查看结果增益。

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

图中包含一个坐标轴。标题为增益K(alpha,V)的轴包含一个类型为surface的对象。

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);Domain = struct(“α”α,'beta',β);

而不是一个规则的网格 α β 值,这里系统在不规则间隔点上采样 α β -空间。

情节(alpha,beta,“o”

图中包含一个轴。轴包含类型为line的对象。

指定基函数。

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

使用这些采样函数值创建增益曲面的可调谐模型。

K = tunableSurface (“K”,1,域,shapefcn)
K =标量增益的可调曲面“K”:*调度变量:alpha,beta *基本函数:alpha,beta,alpha*beta *设计点:6x1 (alpha,beta)值的网格*标准化:默认(从设计点)

域名是6个列表 α β 对。默认情况下,规范化会移动 α β 因此,每个变量的范围的中心为零,并缩放它们,使它们的范围从-1到1。

K.Normalization.
ans =.带字段的结构:输入偏移:[-2.4000 0.5000]输入缩放:[1.5000 0.4500]输出缩放:1

创建一个可调增益曲面,它接受两个调度变量并返回一个3 × 3增益矩阵。增益矩阵中的每一项都是两个调度变量的独立函数。

创建一个设计点网格(alpha,v)

[alpha,v] = ndgrid(0:3:15,300:50:600);Domain = struct(“α”α,'v',v);

创建基础函数,该函数描述曲面如何随调度变量而变化。使用描述双线性扩展的基础αV.

shapefcn = polyBasis ('典范',1,2);

要创建可调曲面,请指定矩阵值增益曲面的初始值。当规范化调度变量均为零时,该值设置增益面的值。可调表面从您指定的初始值取增益面的尺寸。因此,要创建一个3 × 3的增益矩阵,需要使用一个3 × 3的初始值。

K0init=diag([0.05 0.05-0.05]);K0=可调表面(“K”、K0init域,shapefcn)
K0 = 3x3增益矩阵的可调曲面“K”:*调度变量:alpha,V *基函数:@(x1,x2)utFcnBasisOuterProduct(FDATA_,x1,x2) *设计点:(alpha,V)值的6x7网格*标准化:默认(从设计点)

输入参数

全部崩溃

为可调增益面标识标签,指定为字符向量。可调表面将此名称用于实际块,它表示曲面的可调系数。因此,您可以使用这个名称来引用a内的可调增益系数雄鸡控制系统的模型SLTUNER.接口。

可调谐增益面中常数项的初始值,指定为标量或数组。尺寸k0init.确定增益表面的I/O尺寸。例如,如果增益面表示双输入、双输出增益,则可以设置K0init = 1 (2).剩余的系数K1, K2,…始终具有相同的尺寸K0.可调谐系数自动展开,以便独立调谐每个I / O通道中的增益。

例如,对于一个双输入双输出曲面,增益矩阵中的每一项都有一组展开系数。

每个条目K.ij在可调增益矩阵中K.Nσ)由:

K. 一世 j N σ = K. 一世 j 0. + K. 一世 j 1 F 1 N σ + ...... + K. 一世 j m F m N σ

调整增益表面的设计点,指定为结构。该结构具有包含调度变量值的字段,您可以为增益预定调整进行植物。例如,假设您要调整作为两个调度变量的函数而变化的增益,αV..你将植物线性化在栅格αV.值,α= (0.5, 0.10, 0.15)V.= [700,800,900,1000]

.指定设计点,如下所示:

(α,V) = ndgrid((0.5, 0.10, 0.15),(700800900、1000));Domain = struct(“α”α,'v',v);

设计点不必位于一个矩形或有规则间隔的网格上(参见非规则网格上的增益曲面)。但是,为了获得最佳效果,请使用覆盖全方位操作条件的设计点。由于调整仅考虑这些设计点,因此调谐增益计划的有效性在远离设计点的操作条件下是可疑的。

用于根据调度变量(指定为函数句柄)对增益面建模的基函数。与句柄相关联的函数将调度变量的规范化值作为输入,并返回基函数值向量。基函数始终在规范化范围[–1,1]上运行。可调表面隐式地将调度变量归一成到此间隔。

例如,考虑调度变量值α= (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 在哪里αNV.N是归一化的调度变量(见规范化财产K.)。

您可以使用匿名函数来指定描述变量增益所需的任何一组基本函数。或者,您可以使用帮助程序函数自动为常用扩展生成基功能:

  • PolyBasis.-幂级数展开和切比雪夫展开。

  • fourierBasis-周期傅里叶级数展开。由fourierBasis是周期性的,这样一个增益面K.由这些函数定义K.(1) =K.(1). 使用创建增益曲面时可调表面,软件将规范化您使用指定的计划变量范围领域到区间[- 1,1]。因此,如果使用周期基函数,则相应调度变量的采样范围必须恰好是一个周期。这个限制确保了基函数的周期性与调度变量的周期性相匹配。例如,周期变化的调度变量为角度,取值范围为0 ~ 2π,那么相应的值领域也必须在0到2之间π

  • NDBASE-从低维度扩展构建多维扩展。当您希望为不同的调度变量使用不同的基础函数时,此函数非常有用。

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

输出参数

全部崩溃

可调增益表面,作为一个返回可调表面对象。该对象具有以下属性,用于存储增益曲面的系数、基函数和其他信息:

  • 基准功能-基函数,指定为函数句柄。当您创建增益表面时,shapefcn输入参数设置此属性的初始值。

  • 系数- 增益表面的可调系数,指定为阵列值实际可调参数。尺寸k0init.以及基础职能的数量shapefcn确定K.系数

    标量的收益,K.系数有尺寸[1,m + 1],在那里m为基函数的个数。的条目K.系数对应于可调系数K.0.、……K.m

    对于数组值的增益,每个系数扩展到维度k0init.. 这些展开系数以水平方向串联在一起K.系数.因此,例如,对于一个双输入双输出的增益面,K.系数有尺寸(2, 2 (M + 1))

    每个条目K.ij在可调增益矩阵中K.Nσ)由:

    K. 一世 j N σ = K. 一世 j 0. + K. 一世 j 1 F 1 N σ + ...... + K. 一世 j m F m N σ

  • SamplingGrid- 设计点网格,指定为数据结构。当您创建增益表面时,领域输入参数设置此属性的初始值。

  • 规范化- 标准化偏移和缩放,指定为具有字段的结构:

    • 输入偏移- 每个调度变量的偏移量矢量矢量图。

    • 输入缩放-每个调度变量的比例因子向量。

    • OutputScaling-整体增益的比例因子。

    一般来说,可调表面参数化采用以下形式:

    K. σ = OutputScaling [ K. 0. + K. 1 F 1 N σ + + K. m F m N σ ]

    在哪里Nσ)是标准化调度变量,由以下公式给出:

    N σ = σ 输入偏移 输入缩放

    可调表面规范化调度变量以压缩其数值范围并提高优化过程的数值稳定性。默认情况下,OutputScaling= 1,和可调表面计算的值输入偏移输入缩放那张地图SamplingGrid每个调度变量的域为[- 1,1]。因此,N= 0在设计点范围的中心。

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

    • 如果您对特定的设计点有一个已知的增益值,您可以进行设置规范化。输入偏移因此N= 0在该设计点。然后你可以设置k0init.以已知的获得价值。

    • 如果要将调度变量限制为非负值,请设置规范化。输入偏移到设计网格中该变量的最小值。这个限制是有用的,例如,当你的基函数包括 σ

  • 的名字-增益面的名称,指定为字符向量。创建增益曲面时的名字输入参数设置此属性的初始值。

提示

  • 在MATLAB建模的控制系统中调整增益面®:将增益面与中设计点对应的植物模型阵列连接领域.例如,假设G是这样的数组吗K.表示可变积分时间。下面的命令构建一个闭环模型,您可以使用Systune.命令。

    C0 = tf(K,[1 0]);T0 =反馈(C0 * G, 1);
  • 要在Simulink中建模的控制系统中调整增益面:使用增益面参数化查找表、矩阵插值或金宝appMATLAB函数Simulink模型中的块金宝app。例如,假设ST0是一个SLTUNER.与Simulink模型的接口,金宝app以及可获得是接口中调谐块的名称。以下命令设置了参数化可获得到可调增益面。

    st0 = setblockparam(st0,“可获得的”、K);

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

  • 当你使用WrithblockValue.(金宝appSimulink Control Design)为了将调谐增益面写入Simulink模型,软件使用金宝appcodegen生成增益面MATLAB代码。您可以使用codegen你自己检查这个代码。

R2015b中引入