当调整的增益调度的控制系统中,有时是有用的执行在设计网格的不同点不同的设计需求。例如,您可能希望:
指定显式或隐式地依赖于设计点的具有可变调谐目标。
在设计点的子集强制执行调整的目标,但在其他设计要点忽略它。
从特定的运行中排除设计点systune
,但保留其分析或其他调整操作。
消除设计和分析的各个阶段的设计要点。
有几种方法来定义整个设计点变化的调整目标。
的varyingGoal
命令,可以构建一个或明或暗地取决于设计点调整目标。
例如,创建一个调整目标跨越的设计要点网格指定可变增益和相位裕度。假设你使用的设计要点如下5×5格来调整你的控制器。
(α,V) = ndgrid (linspace(0, 20日5),linspace(700、1300、5));
进一步假设你有5乘5的目标增益边界和目标相位边界对应于每个设计点的阵列,如下面所示。
[GM,PM] = ndgrid(linspace(7,20,5),linspace(45,70,5));
要在每个设计点强制指定边距,首先为边距目标创建一个模板。模板是一个函数,它获取增益和相位裕度值并返回TuningGoal.Margins
对象与这些边距。
FH = @(GM,PM)TuningGoal.Margins(“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)TuningGoal.Overshoot(“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
,对于每个设计点的最大增益值,σ。然后,您可以添加其他输出YS
=y / gmax
到闭环模型,如下所述。
%创建标量数组,增益为1/gmaxyScaling =重塑(1./gmax,[1种1尺寸(GMAX)]);yScaling = SS(yScaling,'InputName','Y',“OutputName”,“y”);%将这些增益串联到T0的y输出T0 =连接(T0,yScaling,T0.InputName,[T0.OutputName; {“y”}));
最大增益在每个设计点根据表改变GMAX
。然后您可以使用一个限制为1的增益的单一需求d
到比例输出YS
。
R = TuningGoal.Gain(' d ',“y”,1);
这种需求的有效规范化将需求的可变性从需求对象中移开,R
,为闭环模型,T0
。
在仿真万博1manbetx软件®,您可以使用类似的方法,通过增益块提供相关的模型输入和输出。然后,当你线性化模型时,改变块的增益值与操作条件。例如,设置增益为MATLAB变量,并使用参数
物业slLinearizer
来改变与每个线性化条件的变量的值。
属性可以将调优目标的应用程序限制为设计网格中模型的一个子集楷模
的调整目标财产。通过模型数组中的线性索引指定模型。举例来说,假设你有一个调整的目标,要求的事情
。配置要求的事情
适用于第一个和最后一个车型在3×3设计网格。
Req.Models = [1,9]。
当你打电话systune
同要求的事情
无论是硬目标还是软目标,systune
强制实施要求的事情
对于这些模型,忽略网格的其他部分。
systune
运行您可以从调优中排除一个或多个设计点,而无需从数组中删除相应的模型或重新配置调优目标。这样做很有用,例如,当对整个设计网格进行调优不能满足设计需求时,可以识别出有问题的设计点。当您希望在特定调优运行中排除某些设计点,但为了进行性能分析或进一步调优而保留这些设计点时,它也很有用。
的SkipModels
选择systuneOptions
允许您在设计网格中指定模型,以排除调优。通过模型数组中的线性索引指定模型。例如,配置systuneOptions
跳过第一个和最后的模型在3×3设计网格。
选择= systuneOptions;opt.SkipModels = [1, 9];
当你打电话systune
同选择
时,优化算法忽略了这些模型。
作为替代方案,可以消除从整个模型网格设计要点,使他们不参与调整或分析的任何阶段。要做到这一点,利用voidModel
,它将模型数组中的指定模型替换为为NaN
。当你的扫描网格包括代表不相关的或是非物理的设计要点点此选项很有用。运用voidModel
让你设计过的设计要点,这几乎是普通的网格。
systuneOptions
|varyingGoal
|viewGoal