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