【OpenSEES】浅析Newton迭代(三):基于Krylov优化迭代算法
本期推送将通过算例,在浅析Plain、Penalty(罚数法)的同时,复现可能会引发错误的环节。点击“阅读原文”可查看与本推送相关的测试算例。下期推送将浅析Lagrange(拉格朗日乘子法)、Transformation约束处理方法。
测试模型简介
算例如图2所示:杆件由柔性杆(element elasticBeamColumn 1 1 2 20 29000 1400 1)和刚性杆约束(rigidLink -beam 2 3)组成,一段支座固接,一段支座为滑动支座。因此,节点2和节点3应具有相同的水平位移和转角,节点2和节点3之前的垂直位移差等于转角乘以刚性杆长度。体系刚度矩阵如图1所示。
Plain
Plain命令主页如图2所示,可知Plain仅可处理”fix”及”equalDOF”两类约束,无法处理”rigidLink”多点约束。若仍采用Plain处理上述约束,则刚度矩阵如图2所示。可知,此时矩阵奇异,无法完成矩阵求解。
图2 Plain处理后的刚度矩阵与求解结果
若仍计划求解上述算例,可通过相对刚性的elasticBeamColumn替代rigidLink约束,如根据柔性杆弹模放大1E4倍定义刚性杆(element elasticBeamColumn 2 2 3 20 29000 E4 1400 1),此时进行求解将获得如图3所示的有效结果。
图3 通过刚性单元实现约束并通过Plain约束处理完成求解
Penalty(罚数法)在不改变矩阵维度的前提下,通过在刚度矩阵中引入大刚度弹簧实现约束,其命令主页如图4所示。可知,弹簧刚度(罚数)应足够大以满足约束需求,但也不应过大避免方程组病态。理论上可为每个约束定义不同的罚数,但OpenSess仅允许用户分别对所有单点约束及所有多点约束定义相同的罚数,这为罚数的取值带来一定的挑战。本例中罚数取值为1E4倍的柔性杆线刚度,刚度矩阵如图4所示,其中红色项为用于处理约束的罚数赋予项,可见矩阵维度未改变。
由于微小的位移变化将引起大刚度弹簧力的显著变化,因此在Penalty中采用与力相关的收敛准则(如能量收敛准则NormUnbalance等)并不明智,将出现如图5所示的收敛问题。
图5 Penalty罚数法与力相关的收敛准则
-
小结
-
Plain仅适用于处理“fix”及“equalDOF”约束问题; -
Penalty引入罚数实现约束,罚数应足够大以满足约束需求,但也不应过大避免方程组病态;
-
由于罚数的存在,Penalty应使用仅与位移相关的收敛准则。
精彩回顾:
【会议总结】OpenSEES Days Eurasia 2019 in PolyU
【PBSD】【OpenSees】在2019日本E-Defense盲测比赛的表现
-
PBSD
【PBSD】2019年更新历史——结构抗震性能设计软件PBSD
【PBSD】超限工程好助手:结构抗震性能设计软件PBSD功能简介
【PBSD】【OpenSEES】【YTO】智能化的结构弹塑性分析全套解决方案
【PBSD】V1.0.5.0版正式发布:免费地震动工具箱之教学视频
【PBSD】【PERFORM-3D】性能前馈集中塑性铰单元的定义、优势与测试
【PBSD】性能前馈集中塑性单元PFLPH与纤维单元力学性能对比
-
OpenSees
【OpenSEES】OpenSEES历史版本下载:v1.7.2-v3.1.0
【OpenSees】应力元纤维单元的Localization Issues
【OpenSees】新版Ibarra-Medina-Krawinkler(IMK)模型的前世今生
【OpenSEES】浅析迭代(二):基于LineSearch优化迭代算法
【OpenSEES】浅析迭代(三):基于Krylov优化迭代算法
【OpenSees】SecAggregator为DispBC赋予剪切刚度乃无用功
-
WSAP
-
编程与工具
【工具】OSRun [OpenSees运行辅助工具][开源]
【工具】FSV [OpenSees纤维截面可视化工具][开源]