同零阶方法一样,一阶方法通过对目标函数添加罚函数将问题转换为非约束的。但是,与零阶方法不同的是,一阶方法将真实的有限元结果最小化,而不是对逼近数值进行操作。
一阶方法通过求解因变量的偏导数来进行优化。在每次迭代中,梯度计算(用最大斜度法或共轭方向法)确定搜索方向,并用线搜索法对非约束问题进行最小化。
因此,每次迭代都由一系列的子迭代(其中包括搜索方向和梯度计算)组成。这就使得一次优化迭代有多次分析循环。
OPFRST命令(GUI:Main Menu|Design Opt|Method/Tool)有两个输入域可以用来改善一阶方法的收敛。用户可以指定计算梯度的设计变量范围变化程度,也可以指定线搜索步长的范围。一般来说,这两个输入值的默认数值就足够了。
1.收敛检查
一阶方法在收敛或中断时结束。如果当前的设计序列满足下面任意一种情况,程序就判断为收敛。
1)目标函数值由最佳合理设计到当前设计的变化应小于目标函数容差。
2)从当前设计到前面设计目标函数的变化值应小于容差。
同时要求最后的迭代使用最大斜度搜索,否则要进行附加的迭代。
用下列方法指定目标函数容差。(www.daowen.com)
命令:OPVAR
GUI:Main Menu|Design Opt|Objective
问题在收敛之前可能中断。在用OPFRST命令NITR域指定的最大迭代次数达到的情况下出现。
2.一阶方法的特殊情况
与零阶方法相比,一阶方法计算量大且结果精确。但是,精确度高并不能保证最佳求解。下面是一些注意点。
1)一阶方法可能在不合理的设计序列上收敛。这时可能是找到了一个局部最小值,或是不存在合理设计空间。如果出现这种情况,可以使用零阶方法,因其可以更好地研究整个设计空间。
2)一阶方法更容易获得局部最小值。这是因为一阶方法从设计空间的一个序列开始计算求解,如果起点很接近局部最小值,就会选择该最小值而找不到全局最小值。
3)目标函数容差过紧将会引起迭代次数过多。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。