前期推送【OpenSEES】浅析Newton迭代(一):减少刚度重构工作量与减少迭代次数谁更有意义?是迭代三部曲的第一篇,与大家分享了几类基础的牛顿迭代算法。本次推送将和大家分享带线搜索的牛顿迭代法(Newton-Raphson with Line-Search)的原理及其相应的实例。点击“阅读原文”可下载本推送的算例模型、相应工具源码及参考资料。
线搜索基本原理
牛顿法为求解函数f(x)=0的解,而带线搜索的牛顿迭代法则是求解f(x)的极小值min(f(x))。线搜索迭代式中,λ为搜索步长系数,pk为搜索方向。其中,搜索方向一般可由牛顿法直接确定;搜索步长系数λ的求解则分为两步:先确定搜索范围,再通过二分法等方法确定满足线搜索容差的值。
数学上常用 Wolfe条件来确定步长系数λ的搜索范围(点击“阅读原文”可下载参考资料),而OpenSEES则进行了简化,直接通过常量λmin(默认0.1)及λmax(默认10)确定搜索范围。
在搜索范围内,OpenSEES提供了Bisection,InitialInterpolated(默认),RegulaFalsi,Secant四种搜索方法。每次搜索均计算一次不平衡力,直至不平衡力满足线搜索容差或超过最大搜索次数方退出搜索,进而确定下一步迭代的初始位移。
综上所述:带线搜索的牛顿迭代法先通过牛顿法确定搜索方向,再通过线搜索确定最优的搜索步长系数,进而确定最优的迭代步长,因此可一定程度降低迭代次数。由于线搜索仅涉及不平衡力计算,因此不会明显增加迭代耗时。
模型与实例
采用与推送【OpenSEES】浅析Newton迭代(一):减少刚度重构工作量与减少迭代次数谁更有意义?相同的测试模型。为让每个迭代算法均各尽其能,简单补充了个小算法:当分析不收敛时自动缩短积分补步长并增加最大迭代次数(点击“阅读原文”可下载,包含于“1_Function.tcl”)。
迭代方法分别采用搜索容差0.1的线搜索牛顿法(NRLS)、搜索容差0.8NRLS法及牛顿法(NR),采用人工波进行0.4g、0.6g、0.8g的动力弹塑性时程分析。
在0.8g的地震作用下,结构最大层间位移角已远超过规范的最大弹塑性位移角限值(1/50)。此时仅搜索容差0.1的NRLS法完成此项加载。因此线搜索容差的降低有利于提高迭代的收敛性。
从迭代次数及迭代耗时的角度,带线搜索的牛顿法(NRLS)迭代次数均小于牛顿法(但差别不明显)。由于线搜索过程仅涉及不平衡力计算,因此小搜索容差的NRLS在提升收敛性的同时基本不影响迭代耗时。
线搜索可有效优化牛顿迭代算法。降低搜索容差可提升收敛性且对迭代耗时基本没有影响,因此推荐尝试使用小容差的线搜索来优化迭代算法。
点击“阅读原文”可下载本推送的算例模型、相应工具源码及参考资料。更多信息详看”README.md“。
【会议总结】OpenSEES Days Eurasia 2019 in PolyU
【广东省性能设计规程】与国家高规对比浅谈反应谱的修正与完善
【广东省性能设计规程】性能设计基本方法与PBSD的实现
【编程】Python效率测试与调用.Net的基本方法
【YTO】YJK to OpenSees:框架结构算例验证
【PBSD】超限工程的免费好助手:结构抗震性能设计软件PBSD功能简介
【广东省性能设计规程】与国家高规对比浅谈反应谱的修正与完善
【PBSD】纤维剖分与PMM截面分析文档——柱单元篇
【Perform3D】推荐一款免费的YTP导模工具
【OpenSees】浅析两类纤维单元:位移元与应力元
【OpenSees】浅析纤维单元的数值积分方法
【OpenSees】浅析分布塑性铰单元的数值积分方法
【OpenSees】应力元纤维单元的Localization Issues
【OpenSees】宏观梁柱单元的强度软化模拟
【OpenSees】如何利用应变控制截面分析的进程
【OpenSees】浅析剪力墙宏观单元:MVLEM
【OpenSees】浅析剪力墙宏观单元:SFI-MVLEM
【OpenSees】浅析剪力墙宏观单元:分层壳单元
【OpenSees】SecAggregator为DispBC赋予剪切刚度乃无用功
【OpenSEES】浅析Newton迭代(一):减少刚度重构工作量与减少迭代次数谁更有意义?
【OpenSees】常见问题解决方法(一)
【Perform3D】【OpenSees】SDOF非线性动力时程分析的实现与算例
【工具】PC端文字识别小工具2.0[Mini_OCR]
【工具】OSV2.0 [OpenSees可视化工具]
【工具】FSV [轻巧OpenSees纤维截面可视化工具]
【工具】GMI2.0 [地震波智能截波工具]
【工具】Ductility(延性系数计算工具)