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