优化算法如何制定最小化问题
当您优化Simulink参数时®模型满足设计要求,Simulink设计优化™软件自动将需求转换为约束优化问题,然后使用优化技术解决问题。约束优化问题对Simulink模型进行迭代仿真,将仿真结果与约束目标进行比较,并使用优化方法调整调优参数以更好地满足目标。
本主题描述该软件如何制定优化算法所使用的约束优化问题。对于每个优化算法,软件制定以下类型的最小化问题之一:
有关每个优化算法如何制定这些问题的更多信息,请参阅:
可行性问题与约束公式
可行性意味着优化算法在指定的公差范围内找到满足所有约束的参数值,但不最小化任何目标或代价函数。
在下图中,x1,x3.,xn表示参数值的组合P1而且P2都是可行解因为它们不违反下界约束。
在Simulink模型中,您可以通过在Check块(检查步骤响应特性,…)或需求对象(sdo.requirements.StepResponseEnvelope
,…),如下图所示。
这些约束条件是分段线性边界.分段线性界ybnd与n边可以表示为:
该软件计算模拟响应与边缘之间的符号距离。下界的带符号距离为:
在哪里ysim卡是模拟响应,是正在优化的参数的函数。
上界的带符号距离为:
在命令行中,optimFcn供应c
直接从Cleq
领域的瓦尔斯
.
如果所有约束条件满足(c≤0)对于某些参数值的组合,则该解是可行的。在下图中,x1而且x3.都是可行的解决方案。
当你的模型有多个需求或向量信号提供一个需求时,约束向量会被扩展为每个信号的约束违反和边界:
跟踪问题
类中除了下界和上界之外,还可以指定引用信号对照参考资料核对块或sdo.requirements.SignalTracking
对象,Simulink模型输出可以跟踪该对象。跟踪目标为误差平方和跟踪目标。
将参考信号指定为时间-幅度对序列:
该软件将模拟响应计算为时间-振幅对序列:
这里的一些值tsim卡可能匹配的值t裁判.
一个新的时间基地,t新的元素结合而成t裁判而且tsim卡.不在两者最小-最大值范围内的元素t裁判而且tsim卡省略:
使用线性插值,该软件计算的值y裁判而且ysim卡在时间点t新然后计算缩放误差:
最后,软件计算加权的平方积分误差:
请注意
重量w(t)默认为1。您只能在命令行中指定不同的权重值。
当您的模型有需求或矢量信号满足需求时,跟踪目标等于每个信号的单个跟踪积分误差之和:
梯度下降法问题公式
梯度下降方法使用这个函数fmincon
优化模型参数以满足设计要求。
问题类型 | 问题公式化 |
---|---|
可行性问题 | 软件制定约束C(x),详见可行性问题与约束公式.
|
跟踪问题 | 软件制定跟踪目标F(x),详见跟踪问题并使跟踪目标最小化:
|
混合可行性与跟踪问题 | 该软件将以下问题公式最小化:
请注意 当跟踪参考信号时,软件会忽略最大可行的解决方案选项。 |
单纯形搜索法问题公式
Simplex Search方法使用该函数fminsearch
而且fminbnd
优化模型参数以满足设计要求。fminbnd
如果正在优化一个标量参数,则使用fminsearch
使用。不能使用参数边界
与fminsearch
.
问题类型 | 问题公式化 |
---|---|
可行性问题 | 软件制定约束C(x),详见可行性问题与约束公式然后最小化最大约束违反:
|
跟踪问题 | 软件制定跟踪目标F(x),详见跟踪问题然后最小化跟踪目标:
|
混合可行性与跟踪问题 | 该软件分两步制定问题:
|
模式搜索方法问题公式
Pattern Search方法使用该函数patternsearch
(全局优化工具箱)优化模型参数以满足设计要求。
问题类型 | 问题公式化 |
---|---|
可行性问题 | 软件制定约束C(x),详见可行性问题与约束公式然后最小化最大约束违反:
|
跟踪问题 | 软件制定跟踪目标F(x),详见跟踪问题然后最小化跟踪目标:
|
混合可行性与跟踪问题 | 该软件分两步制定问题:
|
梯度计算
为梯度下降法
(fmincon
)优化求解器,梯度计算使用数值摄动:
x是标量设计变量。
x最小值的下界是x.
x马克斯的上限是x.
x典型的的缩放值是x.
opt_fcn是目标函数。
dx相对较大,以适应模拟求解器的公差。
如果你想用任何其他方式计算梯度,你可以在你编写的用于以编程方式执行设计优化的代价函数中这样做。看到sdo.optimize
而且GradFcn
的sdo。OptimizeOptions
获取更多信息。