论文:Cluster Computing-Aided Open-Source Programming Framework for Model Updating of Civil Structures. Structural Control and Health Monitoring. 2024.
00
太长不看版
大型结构的设计优化和模型更新需要消耗大量计算资源。实现上述目标依赖可靠的模型更新技术和高效的优化算法,但是,已有研究多依赖于商业软件平台,由于其不同软件之间接口复杂、版权限制等因素限制了软件推广和相关研究的深入开展。因此,本文基于开源平台OpenSees和Python,开发了适用于复杂工程结构模型更新与优化设计的开源程序框架。
首先,通过开源分布式计算框架dispy搭建高性能计算(High Performance Computing, HPC)集群,开发适用于集群计算的粒子群优化算法;进一步编写不同功能模块的软件接口,连接模型分析平台与开源集群计算平台,将模型更新过程中的大量数值分析工作分配到HPC集群的每个线程(Thread)上,实现复杂工程结构模型的集群分析和模型更新。通过4个算例(框架结构的损伤识别、空间网架结构的优化、大跨斜拉桥的线性与非线性更新)来介绍本程序的实现方式、计算效率与精度。
为了便于大家使用和交流,相关程序代码和示例已开源,详见以下链接:
https://github.com/zhengjunhao11/Cluster-computing-aided-model-updating-program-framework
01
分布式计算框架-dispy
dispy(distributed and parallel computing with/for python)是一个通用、全面且易于使用的分布式并行计算框架。通过创建、使用和管理计算集群,可以实现在集群、网格或云中的多台计算服务器协同并行计算。相比于其他分布式计算框架,dispy的主要特性和优势主要体现在以下几个方面:(1)框架更加精简,由4个模块(dispy.py、dispynode.py、dispyscheduler.py和dispynetrelay.py)来分别实现计算任务的分发、执行、通信和数据传输;(2)计算环境更加灵活,每个计算服务器之间通过IPv4地址进行连接,允许用户在本地的计算服务器上完成计算任务以外,还适用于在云端部署大规模计算集群;(3)更强的可扩展性,允许用户动态地添加或移除计算节点,确保计算资源得到充分利用。
02
集群计算辅助的模型更新程序
为了实现大型结构的精细有限元模型更新,本文基于OpenSees和Python编写了相关的模型更新程序,程序计算流程如图1所示。
图1 程序计算流程
(1)集群计算辅助的粒子群优化(PSO)算法
本文采用PSO算法作为更新算法,对其进行二次开发,集成集群计算辅助技术,实现利用网络计算资源的PSO计算加速。该算法的使用和实现如图2所示,具体可以参考我们的论文。
图2 创建计算集群的流程
(2)程序开发
基于Python编写了主程序main.py、高性能计算集群cluster_env.py和分析计算optimization.py三个模块,连接集群优化算法cluster_pso.py和有限元分析平台OpenSees,实现集群计算辅助的复杂结构模型更新与优化,不同模块间的数据传递及相互关系如图3所示。在optimization.py里定义相关函数即可实现在其他工程领域的应用。
图3 基于集群计算的模型更新程序框架
03
案例分析
(1)结构设计优化
以某空间网架结构为例,通过优化结构中杆件的截面积和结构布置形式,从而减少材料用量,目标函数如下式所示:
调用两个计算节点(12th Gen Intel Core i7-12700 K, 64 G RAM and 12thGen Intel Core i9-12900 K, 64 G RAM),搭建了一个拥有30个工作线程的计算集群开展上述结构的设计优化,整个过程耗时约9mins。优化结果和既有研究基本一致,如图4和表1所示。
图4 结构设计优化过程
表1 优化结果对比
(2)基于模态响应的大跨斜拉桥线性更新
选取苏通长江大桥的振动台试验为研究对象,在OpenSees里建立桥梁的精细化有限元模型,如图5所示,全桥一共9896个节点,15473个单元。
图5 基于OpenSees的桥梁精细化数值模型
以试验的模态识别结果构建线性更新的目标函数,如下所示。选取包括材料弹模、几何尺寸等11个参数,开展上述桥梁的线性更新。
更新时,选取7台计算节点,搭建一个拥有60个工作线程的计算集群,耗时约7h22mins,进行6600次模态分析,即可完成上述桥梁的线性模型更新,更新过程如图6所示,更新前后的结果与实测对比如表3所示。
表2 计算节点信息
图6 基于模态分析的模型更新过程
表3 桥梁模态结果对比
(3)基于时程响应的大跨斜拉桥非线性更新
此外,在结构的服役过程,受强震作用可能进入塑性状态,因此,有必要开展非线性模型更新,以评估结构的损伤状态。以苏通大桥试验模型在PGA=1.1g人工波下的时程响应构建目标函数,如下所示,开展了基于时程分析的大跨斜拉桥非线性模型更新。
相较于线性更新,进一步选取包括材料强度、弹性模量、钢筋强度、结构阻尼比等共47个更新参数。调用某超算中心的7个计算节点(Intel Xeon Gold 6338 256G RAM)搭建了一个拥有170工作线程的计算集群,耗时约30天,进行了5100次的非线性时程响应计算,更新完的模型部分测点的时程响应与实测结果对比如图7所示。
图7 模型更新后部分测点的时程响应对比
04
讨论
(1)不同算法的效率对比
以上述斜拉桥模型的线性更新为例,选取了部分常用的算法,与本文所开发的算法对比了计算效率和精度,如表4所示。结果表明:PSO算法具有较高的精度,借助计算集群可以有效实现模型更新过程的加速,例如,采用60个线程的计算集群开展上述桥梁的线性更新时,计算速度可以提升约49倍。
表4 算法效率对比
(2)与基于代理模型的模型更新方法对比
同样以上述斜拉桥模型的线性更新为例,以代理模型中最常用的Kriging模型为例,对比了直接采用有限元模型与基于Kriging代理模型的两种线性更新方法,模态计算对比结果如表5所示。结果表明本文的方法计算精度明显更高。
表5 频率对比
(3)不同更新方式对比
选取基于不同更新方式(线性/非线性更新)的模型预测桥梁在强震下各测点的响应,如图8所示。结果表明,虽然基于时程分析的非线性更新方法需要耗费更多的时间和计算资源,但该方法可以充分考虑结构的非线性模型参数,更新后的模型能更准确表征桥梁的损伤特征,从而大幅提升模型的计算精度。
图8 不同更新方式精度对比
03
结语
大跨桥梁的运维、加固和优化都依赖高保真、精细化的数值模型,模型更新技术是复杂结构数据驱动建模的基础。本文基于OpenSees和Python,开发了适用于复杂工程结构模型更新的开源集群计算程序框架,该程序主要有以下优势:(1)通过内嵌不同目标函数,可实现在不同工程领域的应用;(2)允许用户根据实际的计算资源和工程需要,搭建合适的计算集群,例如本文搭建了拥有30、60和170个工作线程的计算集群;(3)具有较高的计算精度和效率,以大跨斜拉桥的线性更新为例,算例的各阶模态计算误差在1%以内,相比单线程分析方案计算速度提升约49倍。
联络邮箱:
林楷奇:linkq@fzu.edu.cn
郑俊浩:jhzheng1999@163com
程序源代码及应用实例已开源至如下网址:https://github.com/zhengjunhao11/Cluster-computing-aided-model-updating-program-framework
---End---