基于梯度优化
基于梯度优化是一种数学方法,用于查找目标函数的局部最优值(通常为最小值),同时改变一组相关参数。
对于实际工业案例,通常无法按照要研究的几何参数找到目标函数的解析表达式。当无法直接从解析表达式计算导数时,则根据局部离散值以迭代方式查找通向最小值的路径。
序列二次规划 (SQP) 使用离散一阶导数(梯度)查找目标函数局部最小值的路径。在 Simcenter STAR-CCM+ 中,伴随求解器按照几何参数计算目标函数(成本函数)的必要梯度。
例如,要按照几何参数求得管系统的最小压降,则通过伴随求解器计算必要的梯度信息,然后在Design Manager中启动 SQP 搜索以移至最初猜测中压降最小的点。有关工作流程的更多详细信息,请参见设置基于梯度的优化研究。
梯度计算
目标函数的梯度信息定义如下:
其中
-
为设计参数的矢量。 -
为要在有约束或无约束情况下进行优化的目标。 -
为表面网格。 -
为 Simcenter STAR-CCM+ 中的几何灵敏度。请参见几何灵敏度。 -
为 Simcenter STAR-CCM+ 中的表面灵敏度。请参见表面灵敏度。
梯度 是为每个边界表面计算的,即几何灵敏度与表面灵敏度之积。
序列二次规划 (SQP) 法
SQP 方法以迭代方式从所选初始点 开始搜索通向最优值的路径。
考虑基于梯度的优化,其中只有一个几何参数作为Design Manager中的输入参数。则目标函数为 。
从初始点 开始,可以使用以 为中心的 2 阶泰勒展开式逼近 :
所逼近目标函数的最小值在 处。
根据上面的方程,可以找到下一个点 。
按照一般表示法,从点 开始,下一个点是 。
迭代地构建序列 ,用以转向点 - 参数的收敛值,此处出现 的最小值。
1 阶导数 按 的梯度灵敏度提供。Eqn. (5176)
由于 2 阶导数的计算成本很高,因此在Design Manager中,它由 1 阶导数进行数值估算,如下所示:
按照优化科学,使用 1 阶和 2 阶导数直接计算 称为牛顿法。
对于带约束的优化,将简单目标函数 替换为该问题的拉格朗日函数:
-
为拉格朗日函数。 -
为目标函数。 -
为优化问题的不等式约束,它符合 。 -
为优化问题的等式约束,它符合 。 -
为不等式约束 的拉格朗日乘数。 -
为等式约束 的拉格朗日乘数。
该拉格朗日示例基于假设一个几何参数。可以将方程缩放至包含多个几何参数的矩阵。
则设计空间中的下一点是: