主要内容

可变目标

增益计划控制器的可变调谐目标

描述

在多个设计点(工作条件)调整固定或增益计划控制器时,您可能需要根据工作条件调整调整目标,例如,在工作范围的某些区域放松性能。使用可变目标构造隐式或显式依赖于设计点的调优目标。

例子

VG= varyingGoal (跳频票面价值1.票面价值2、……)使用模板和目标参数值集指定不同的目标。模板跳频是指定函数的函数句柄,TG=FH(p1,p2,…),其计算结果为调谐目标对象。数组par1,par2,。。。指定调优目标参数的值p1, p2,……在每个设计点。使用VG你会用任何调谐目标对象的输入systune

例子

VG= varyingGoal (___名称,值配置调优目标的其他属性。

例子

全部折叠

创建一个跨设计点网格指定可变增益和相位裕度的调优目标。

假设使用以下5乘5的设计点网格来调整控制器。

(α,V) = ndgrid (linspace(0, 20日5),linspace(700、1300、5));

进一步假设您有5×5的目标增益裕度阵列和对应于每个设计点的目标相位裕度阵列,如下所示。

(通用、PM) = ndgrid (linspace(7日20日5),linspace (70 5));

要在每个设计点强制执行指定的边距,请首先为边距目标创建一个模板。该模板是一个函数,用于获取增益和相位边距值并返回TuningGoal。利润率用这些边距表示对象。

调整目标。利润(“u”、通用、点);

使用模板和边距数组创建不同的目标。

VG=可变目标(FH、GM、PM);

为了更容易地跟踪哪个目标应用于哪个设计点,可以使用取样网格属性附加设计点信息VG

VG。年代一个mplingGrid = struct(“α”阿尔法“V”, V);

使用VGsystune就像使用其他调优目标一样。使用viewGoal可视化调优目标,并识别未能满足目标裕度的设计点。

创建一个调优目标,指定随一个调度变量而变化的循环形状,一个

假设要指定交叉频率随时间变化的环路形状2 *超过三个设计点。若要强制执行此要求,请首先为循环形状目标创建一个模板。该模板是一个接受数字标量输入参数并返回TuningGoal.LoopShape函数输入必须是标量,因此函数构造表示循环形状的LTI模型。

a=[5;10;15];s=tf(“年代”);FH = @(A)调优目标。LoopShape (“u”,2*A/s);

在这里“u”是系统中的分析点,是要施加回路形状要求的位置。

使用模板和数组创建不同的目标。

VG = varyingGoal(跳频);

将设计点信息附加到VG

VG。年代一个mplingGrid = struct(“a”,a);

每个值一个与强制执行相应循环形状的调整目标关联。例如,确认一个a=15,与第三个回路形状关联,30 /秒

LS3=getGoal(VG,“指数”3);特遣部队(LS3.LoopGain)
ans = 30—s连续时间传递函数。

创建一个跨设计点网格指定可变增益和相位裕度的调优目标。将调优目标配置为在某个位置打开循环时进行评估“罗”并且只适用于1到100 rad/s的频率范围。

指定设计点的网格以及目标增益裕度和相位裕度的相应网格。另外,为可变边距目标创建模板函数。

(α,V) = ndgrid (linspace(0, 20日5),linspace(700、1300、5));(通用、PM) = ndgrid (linspace(7日20日5),linspace (70 5));调整目标。利润(“u”、通用、点);

使用模板函数和边界数组来创建不同的目标。此外,使用名称,值对指定:

  • 为评估调优目标而打开循环的位置(开口属性)。

  • 变化目标所适用的频率范围(焦点属性)。

为基础优化目标指定的属性名称和值存储在设置变化目标的属性。

VG = varyingGoal (FH、通用点,“空缺”“罗”“焦点”,[1,100])
VG=varyingGoal及其属性:模板:@(gm,pm)TuningGoal.Margins('u',gm,pm)参数:{[5x5 double][5x5 double]}设置:{'Openings''LO''Focus'[1 100]}采样网格:[1x1 struct]名称:''作用于(gm,pm)值的5x5网格的变量优化目标。

为了更容易地跟踪哪个目标应用于哪个设计点,可以使用取样网格属性附加设计点信息VG

VG。年代一个mplingGrid = struct(“α”阿尔法“V”, V);

输入参数

全部折叠

模板用于不同的目标,指定为函数句柄。跳频指定一个或多个参数的函数,该函数的计算结果为调谐目标例如,假设您想要约束来自输入的阶跃响应中的超调r输出y在您的系统中,您希望允许约束在不同的设计点上变化。将模板指定为返回调整目标,超调对象。例如,可以指定跳频作为一个匿名函数

FH = @(os)调优目标。超过(“r”“y”,os);

因为调整目标,超调除了输入和输出信号,只有一个参数,跳频是只有一个参数的函数的句柄。对于其他调优目标,请使用更多参数。例如,TuningGoal。利润率有两个参数,增益裕度和相位裕度。因此,对于可变边际目标,跳频有两个论点。

调整目标。利润(“u”、通用、点);

模板函数允许在构造设计目标时具有很大的灵活性。例如,你可以写一个函数,goalspec (a, b),它将调优目标规范构造为一个重要的参数函数(a, b),并将函数保存在MATLAB中®文件然后,模板函数调用目标规格如下。

FH=@(a,b)调谐目标.边距(“u”goalspec (a, b));

类似地,如果调整目标参数不适合数字数组,则可以使用设计点索引作为输入,以跳频。例如,假设增益和相位裕度数据存储在结构数组中,年代,与字段通用汽车颗粒物,您可以使用以下方法。

FH=@(idx)调谐目标.边距(“u”, (idx) .GM年代”(idx) . pm);

idx是设计点网格的绝对索引。

优化目标参数,指定为与用于增益调度优化的模型阵列相同尺寸的数值阵列。为调优目标中的每个参数提供一个数组,数组中的每个条目都是您希望应用到相应设计点的参数值。例如,调整目标,超调目标只有一个参数,最大超调量。因此,请按如下参数配置。

PAL=OsVales;

奥斯瓦尔斯是在每个设计点强制执行的超调值数组。

TuningGoal。利润率目标有两个参数,增益裕度和相位裕度。因此,对于可变裕度目标,指定如下参数:

par1=GM;par2=PM;

在这里通用汽车是一个增益余量值和数组吗颗粒物是要在每个设计点强制执行的相位裕度值数组。

要使变量调优目标在特定设计点处于非活动状态,请设置票面价值数组(或数组)

名称-值对的观点

指定可选的逗号分隔的对名称,值参数。名称参数名和价值是对应的值。名称必须出现在引号内。可以以任意顺序指定多个名称和值对参数Name1, Value1,…,的家

使用名称,值对以指定底层调优目标的属性。例如,假设您想创建一个可变增益目标,该目标指定点之间的可变增益轮廓“L”“V”。您还希望仅在频带内强制执行增益目标[0π/ Ts],在标记的分析点处有一个循环开口远核圈.你使用名称,值对以指定增益目标的这些属性。

FH=@(w)调谐目标。增益(“F”“V”特遣部队(w w [1]));wdata VG = varyingGoal(跳频,“焦点”,[0 pi/Ts],“空缺”“远核圈”);

可以设置哪些属性取决于调谐目标你的函数对象跳频评估。例如,对于大多数不同的调优目标,您可以设置属性,例如开口模型焦点.对于一个变量TuningGoal。获得目标,你也可以用名称,值对来设置属性,例如稳定输入缩放OutputScaling.看个人调谐目标对象引用页,以获取每个调优目标的属性列表。

输出参数

全部折叠

变量调优目标,返回为可变目标对象。该对象在MATLAB变量中捕获调优目标及其跨设计点的变化。使用VG在输入参数中systune就像你会使用任何调谐目标对象。

VG具有以下属性。

财产 描述
样板

可变目标的模板,存储为包含一个或多个参数的函数的函数句柄,这些参数的值在调优操作范围内会发生变化。属性的初始值由跳频输入参数。

参数

在每个设计点调优目标参数,存储为单元阵列。单元格数组中的每个条目都是一个数值数组,其中包含每个设计点的参数值。例如,对于模板的可变边距目标

FG = FH = @(gm,pm)利润(“u”、通用、点);
此属性的值为{通用点},在那里通用汽车颗粒物是在每个设计点包含所需增益和相位裕度的阵列。

此属性的初始值由输入参数设置par1,par2,。。。

设置

要应用于不同目标中的每个目标实例的属性名称和值,存储为单元格数组。

默认值:{}

取样网格

设计点,存储为包含每个采样变量值数组的结构。设计点不需要位于矩形网格上,并且可以分散在整个工作范围内。中的数组大小取样网格参数属性必须匹配。

有关采样栅格的详细信息,请参见取样网格属性描述党卫军参考页面。

默认值:结构体没有字段

名称

变量目标的名称。集名称以标记目标的字符串。

默认值:''

提示

介绍了R2017b