当调整增益调度控制系统时,有时在设计网格的不同点执行不同的设计要求是有用的。例如,你可能想:
指定显式或隐式依赖于设计点的可变调优目标。
在设计点的子集执行调优目标,但在其他设计点忽略它。
从特定运行中排除一个设计点systune
,但保留它用于分析或其他调优操作。
从设计和分析的所有阶段中删除一个设计点。
有几种方法可以定义跨设计点更改的调优目标。
的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 = varyingGoal (FH、通用、点);
为了更容易地跟踪哪个目标应用于哪个设计点,可以使用SamplingGrid
属性附加设计点信息VG
.
VG。SamplingGrid =结构(“α”α,“V”, V);
使用VG
与systune
就像使用其他调优目标一样。使用viewGoal
可视化调优目标,并识别未能满足目标裕度的设计点。对于不同的调优目标,viewGoal
Plot包含滑块,用于检查特定设计点的目标和系统性能。看到验证增益计划控制系统.
模板函数允许在构造设计目标时具有很大的灵活性。例如,你可以写一个函数,goalspec (a, b)
,将目标超调构造为参数的非平凡函数(a, b)
,并将函数保存在MATLAB中®文件。然后调用模板函数goalspec
:
FH = @(a,b)调优目标。超过(“r”y ', goalspec (a, b));
有关配置不同目标的更多信息,请参见varyingGoal
参考页面。
强制需求随设计点而变化的另一种方法是为每个设计点创建需求的单独实例。当您的目标只适用于设计数组中的少数模型时,这种方法非常有用。例如,假设您想要强制执行1/年代循环形状只在前五个设计点,与交叉频率,取决于调度变量。再假设你创建了一个向量,wc
,它包含每个设计点的目标带宽。然后你可以构建一个TuningGoal。LoopShape
每个设计点的需求。将每一TuningGoal。LoopShape
需求与相应的设计点使用模型
需求的属性。
为ct = 1:length(wc) R(ct) = TuningGoal。LoopShape (“u”、wc (ct));R (ct)。模型= ct;结束
如果wc
覆盖网格中的所有设计点,这种方法相当于使用varyingGoal
对象。这是一个有用的替代varyingGoal
当您只想约束几个设计点时。
您可以将需求的变化部分合并到控制系统的闭环模型中,而不是创建变化的需求。这种方法是目标规范化的一种形式,它可以用一个统一的目标覆盖所有设计点。
例如,假设你想限制收益d
来y
转换为依赖于调度变量的数量。假设T0
是闭环系统在每个设计点的一组模型。进一步假设您已经创建了一个表,gmax
,为每个设计点的最大增益值,σ.然后您可以添加另一个输出y
=y / gmax
的闭环模型,如下所示。
%创建标量增益1/gmax的数组yScaling =重塑(1。/ gmax 1大小(gmax) [1]);yScaling = ss (yScaling,“InputName”,“y”,“OutputName”,“y”);%将这些增益串联到T0的y输出T0 =连接(T0、yScaling T0.InputName, [T0。OutputName;{“y”}));
根据表格,最大增益在每个设计点都有变化gmax
.然后,您可以使用一个限制收益为1的单一需求d
转换成比例输出y
.
R = TuningGoal。获得(' d ',“y”1);
这样有效的需求规范化将需求的可变性从需求对象移走,R
,到闭环模型,T0
.
在仿真金宝app软件®,您可以使用类似的方法,通过一个增益块提供相关的模型输入和输出。然后,在对模型进行线性化时,根据操作条件改变块的增益值。例如,将增益设为MATLAB变量,并使用参数
财产slLinearizer
按每个线性化条件更改变量值。
属性可以将调优目标的应用限制为设计网格中的模型子集模型
属性。通过模型数组中的线性索引指定模型。例如,假设您有一个调优目标,要求的事情
.配置要求的事情
在一个3乘3的设计网格中应用到第一个和最后一个模型。
要求的事情。模型= [1,9];
当你打电话systune
与要求的事情
不管是硬目标还是软目标,systune
执行要求的事情
对于这些模型,而对于网格的其余部分忽略它。
systune
运行您可以从调优中排除一个或多个设计点,而不需要从数组中删除相应的模型或重新配置调优目标。这样做可能很有用,例如,当对整个设计网格进行调优未能满足您的设计需求时,可以识别出有问题的设计点。当您希望在特定的调优运行中排除某些设计点,但要保留以便进行性能分析或进一步调优时,它也很有用。
的SkipModels
选择systuneOptions
允许您在设计网格中指定模型以排除调优。通过模型数组中的线性索引指定模型。例如,配置systuneOptions
在一个3乘3的设计网格中跳过第一个和最后一个模型。
选择= systuneOptions;opt.SkipModels = [1, 9];
当你打电话systune
与选择
,优化算法忽略这些模型。
作为一种替代方法,您可以完全从模型网格中消除设计点,这样它们就不会对调优或分析的任何阶段做出贡献。要做到这一点,使用voidModel
,它将模型数组中的指定模型替换为南
.当采样网格中包含代表不相关或非物理设计点的点时,此选项非常有用。使用voidModel
让您设计网格上的设计点几乎是规则的。
viewGoal
|varyingGoal
|systuneOptions