应用Python-GPU求解的实时混合试验方法研究_董晓辉.pdf
《应用Python-GPU求解的实时混合试验方法研究_董晓辉.pdf》由会员分享,可在线阅读,更多相关《应用Python-GPU求解的实时混合试验方法研究_董晓辉.pdf(9页珍藏版)》请在咨信网上搜索。
1、第 36 卷第 2 期2023 年 4 月振 动 工 程 学 报Journal of Vibration EngineeringVol.36 No.2Apr.2023应用 Python-GPU求解的实时混合试验方法研究董晓辉1,唐贞云1,2,李振宝1,杜修力1(1.北京工业大学城市与工程安全减灾教育部重点试验室,北京 100124;2.河北省地震灾害防御与风险评价重点实验室,河北 三河 065201)摘要:提出了基于 Python和图形处理器(GPU)数值求解的实时混合试验系统。将土结相互作用系统作为试验模型,使用 PythonGPU 代替 CPU 数值求解,对提出的实时混合试验系统进行了仿真
2、与试验验证。研究结果表明,使用 PythonGPU 对无条件稳定算法求解,积分步长 20 ms时 GPU 实时求解模型自由度超过 24000,是同一台计算机CPU 求解规模的 7倍左右,提升了实时混合试验的试验能力。关键词:实时混合试验;图形处理器;Python;数值积分算法;求解效率中图分类号:TU311.3;TU352.1 文献标志码:A 文章编号:1004-4523(2023)02-0517-09 DOI:10.16385/ki.issn.1004-4523.2023.02.023引 言实时混合试验1是一种将数值仿真与物理试验相结合的试验方法,将试验结构分为数值子结构与物理子结构,两部分
3、数据实时交互传输,使得大型复杂结构大比例试验成为可能,现已得到广泛应用。在实时混合试验中,数值子结构动力求解需在一个时间步长内完成,数值子结构模型自由度越高,求解耗时越大。过大的时间步长影响数值积分算法的精度及物理子结构加载的准确性,无法满足实时混合试验的需要。在数值子结构动力分析过程中通常采用计算效率更高的显式积分算法进行求解,显式积分算法(例如中心差分法)通常为条件稳定算法,积分步长越小精度越高2。过小的步长限制了数值模型实时求解规模,难以实现大规模数值模型的实时求解3。为解决此问题众多学者在改进数值积分算法3及提升数值子结构计算效率4等方面做出研究。在改进数值积分算法的研究中,Nakas
4、hima等5及 Chang67分别提出拟动力试验的无条件稳定显式积分算法,但这些方法在实时混合试验中为隐式算法。吴斌等8基于上述方法进行研究,利用位移向前差分修正建立实时混合试验中无条件稳定的显式积分 Chang算法。Chen等9基于离散控制原理和极值的概念提出 CR 法,在线性结构和部分非线性系统中具有无条件稳定性,且速度和位移均显式。Tang 等10基于运动方程离散化提出 TL 算法,在线性结构系统中具有无条件稳定性,且速度和位移均显式表达。基于现有的动力分析算法,在提升实时混合实验数值子结构计算效率方面也有众多学者研究。Nakashima 等11提 出 Digital Signal Pr
5、ocessor(DSP)方法,在一个时间步长内完成数值模型仿真和动力响应信号处理,实现了 10自由度模型 330 ms时间步长或 12 自由度模型 500 ms 时间步长的实时混合试验。Chae 等12开发 Hybrid FEM 程序,实现514 自由度框架模型 10 ms 时间步长的实时混合试验。Zhu等13提出使用两台目标计算机的实时混合试验 DRTHS系统提升求解规模,实现超过 1240自由度时间步长为 20 ms的实时混合试验。Lu等14在DRTHS 系统的基础上结合计算机并行计算提出RTHSW 系统,使用条件稳定的中心差分法实现时间步长为 20 ms 条件不超过 7000 自由度(R
6、ayleigh阻尼 0)或 40602 自由度(Rayleigh 阻尼=0)模型的实时混合试验。综上所述,通过改进实时混合试验数值求解算法及求解的方法,可以提升数值子结构模型实时求解能力,但目前的求解规模仍在7000以内(Rayleigh阻尼 0)。在实时混合试验中,数值子结构求解通常基于计算机的中央处理器(CPU)运算,然而在进行大量数据运算时,CPU 的计算能力难以满足模型实时求解的需要。图形处理器(GPU)芯片与 CPU 的架构不同,GPU 中有数倍于 CPU 的计算单元,在进行大收稿日期:2021-10-17;修订日期:2021-12-22基金项目:国家自然科学基金面上项目(51978
7、016);河北省地震灾害防御与风险评价重点实验室开放基金资助项目(FZ213104)。振 动 工 程 学 报第 36 卷规模数值计算时 GPU 具有明显优势。在土木工程领域,GPU 的高性能求解已得到应用。刘晓强15应用 GPU 提升大规模数据绘制和拓扑分析性能,实现相比 CPU 数十倍的加速效果,满足土木工程领域防灾减灾数据可视化需求。解琳琳等16应用 GPU 加速 OpenSees 有限元仿真,对城市地震灾害进行模拟,实现相比 CPU 计算 39 倍的加速效果。在实时混合试验研究方面,董晓辉等17已应用 MATLAB软件实现 GPU 求解数值子结构,基于 GPU 求解实时混合试验架构并验证
8、其性能,证明了应用 GPU 求解数值模型可以提升试验模型规模,降低时间步长。在 MATLABGPU 实时混合试验系统架构中,使用GPU 加速条件稳定的显式算法求解,并且子结构之间通讯存在 3 ms的延迟。为解决上述问题,本文提出使用 Python 编程建立基于 GPU 计算的实时混合试验系统,优化基于 GPU 求解的实时混合试验系统,以土结相互作用系统为模型进行振动台实时混合试验,测试架构的可行性及性能。1试验系统组成在基于 PythonGPU 求解的实时混合试验系统中,使用 GPU 代替 CPU 作为数值模型求解的硬件。为了实现数值模型的高效仿真及数据实时交互,试验系统如图 1 所示,分为三
9、个部分:数值子结构部分,信号处理部分和试验子结构部分。1.1数值子结构部分数值子结构部分负责数值模型实时动力分析,在此部分使用 Python 作为编程语言编写动力求解算法,调用 CuPy 函数库实现 GPU 运算18。在模型仿真程序中添加 UDP 网络通讯模块19,实现基于GPU 的模型动力求解与试验子结构实时通讯。1.2信号处理部分信号处理部分负责固定数值子结构求解的时间步长,信号插值以及振动台控制补偿。在实时混合试验中,数值子结构快速且准确的求解是试验成功的关键,试验的时间步长需要保持固定不变。由于数值模型仿真在非实时系统 Windows20上运行,每一步数值模型求解所用的时间不固定,对此
10、需要保证每一步模型时间步长固定且求解耗时均小于时间步长。控制时间步长可以通过 LabVIEW 等软件的定时循环或在数值求解计算机外添加实时硬件。本文在两个子结构之间添加 Simulink Realtime xPC(下文简称 xPC)实时硬件,xPC 实时硬件有较好的实时性21,可以实现 50 kHz 的实时仿真,即可以实现最小时间步长为 210-5的实时仿真,能满足实时混合试验最小时间步长为 110-3的要求。在xPC 中添加 UDP网络通讯模块22,连接数值子结构与试验子结构;添加信号插值模块,对数值子结构动力响应的离散信号进行插值,使得输入试验子结构的信号指令更平滑。为降低试验子结构加载装
11、置的加载误差,在 xPC 中添加 FSCS 补偿控制器23。完成插值及补偿后,xPC 将信号通过 UDP传输至试验子结构。1.3试验子结构部分试验子结构部分与基于 CPU 的实时混合试验方法相同,通过物理加载的方法对试件试验。加载装置的控制器接收到数值子结构响应后,对试验试件加载。在试验试件上布置加速度及位移传感器,将时程响应传输至加载系统控制器采集,再通过加载系统控制器将试件响应反馈至数值子结构。2基于 Python的 GPU求解性能Python 作为一种解释型编程语言具有丰富的拓展库,适用于各种系统平台,随着版本的不断更新和语言新功能的添加,被广泛应用于科研领域。图 1 基于 GPU 的实
12、时混合试验系统Fig.1 Real-time hybrid simulation system based on GPU518第 2 期董晓辉,等:应用 Python-GPU 求解的实时混合试验方法研究CuPy18是一个借助 CUDA实现 GPU加速的 Numpy格式数据运算库,可以利用 GPU 的众多 CUDA 核心提升数值计算效率。本文选择 Python 作为编程语言,实现基于 CuPy 函数库的数值子结构模型GPU 实时求解。2.1实施方案使用 Python 进行数值模型动力求解需要建立数值子结构动力方程,模型的质量、刚度和阻尼矩阵需要借助有限元软件前处理得到。本文选择使用 ABAQUS
13、 有限元软件建立数值子结构模型,调整划分网格完成模型前处理,添加模型参数矩阵输出脚本,得到数值子结构模型的质量和刚度矩阵,模型阻尼采用 Rayleigh 阻尼。将模型的质量、刚度、阻 尼 参 数 矩 阵 导 入 Python 中 建 立 结 构 动 力方程。使用 CuPy 库进行 GPU 加速计算前,将 CuPy库添加至数值子结构求解的程序中,并将模型及算法所需的参数通过 cupy.asarray函数转换为 CuPy数据格式18。为实现数值子结构与试验子结构之间数据交互,完成模型动力分析后使用 cupy.asnumpy 函数将界面响应转换为 Numpy数据格式,在每一步长动力分析前后添加 UD
14、P通讯脚本,并在 xPC软件环境和试验子结构部分中配置好 UDP 端口实现网络通讯。使用 PythonGPU 进行实时混合试验时,数值子结构部分流程如图 2所示。2.2仿真参数及配置为验证本文提出的 PythonGPU 求解数值模型方法的可行性与性能,采用如图 3 所示的土结相互作用模型作为算例,其中上部结构为试验子结构,下部土体为数值子结构。数值子结构动力分析分别使用条件稳定的中心差分法和无条件稳定的Newmark 算法。试验子结构为单自由度铝框架,质 量 ms=14.5 t,刚 度 ks=10.03 kN/mm,阻 尼 cs=3.74 kN/(ms-1),与数值子结构顶部中心锚固连接。数值
15、子结构模型尺寸为 30 m30 m15 m,密度为 2.15103 kg/m3,弹性模量为 7.2106 Pa,泊松比为 0.35,阻尼比为 0.05,模型四周及底部节点添加弹簧阻尼器模拟远场土边界条件,节点法向弹簧刚度为 20000 N/m,切向为 10000 N/m,法向阻 尼 器 阻 尼 为 1.437106 N/(m s-1),切 向 为9.45106 N/(ms-1)。数值模型在 ABAQUS 有限元软件中建模,每个节点有三个自由度,通过调整网格划分的间距调整模型的求解规模,网格越密,动力求解计算量越大。仿真中模型荷载为 Kobe 地震波,加速度幅值调整为 0.5g。仿真中使用 GP
16、U服务器作为求解计算机,软件与硬件环境如表 1 所示。本文研究选择的土结相互作用模型仅为了验证 PythonGPU 求解的可行性与计算效率。使用PythonGPU 的数值模型求解方法不限于本研究中的线弹性模型与模型边界条件,适用于任何形式的实时混合试验。图 2 基于 Python-GPU 求解数值子结构流程Fig.2 Process of solving numerical substructure based on Python-GPU图 3 土-结相互作用系统Fig.3 Interaction system of soil-structure表 1 仿真系统配置参数Tab.1 The co
17、nfiguration parameters of simulation system系统配置名CPU 型号CPU 性能GPU 型号GPU 性能内存操作系统软件环境GPU 服务器Intel Xeon E5-2690 V414核 2.6 GHzNVIDIA Tesla V10010.6 TFLOPS32 GBWindows 10 64位Python 3.8 CuPy 10.2 CUDA 10.2519振 动 工 程 学 报第 36 卷2.3仿真结果数值子结构求解的 GPU 计算机与物理子结构仿真 xPC之间通过 UDP网络连接,数据传输需要时间。为了测试UDP网络通讯耗时在实时混合试验一个时间步
18、长内的占比,使用 GPU计算机通过 UDP网络向 xPC 硬件发送数据 10000次,计算单次 UDP 通讯耗时。使用 Python 中的 time 函数统计总耗时为0.078 s,平均单次通讯耗时为 0.078/10000=7.8710-3 ms,当实时混合试验时间步长为 1 ms时,UDP通讯耗时的占比为 0.79%。使用UDP网络传输数据的耗时在一个时间步长内可以忽略不计。为了测试 GPU 求解数值模型的精度与性能,分别选取自由度为 2592,5400,10830 以及 24375 的模型,时间步长为 1 ms作为算例,中心差分法与 Newmark法运用 CPU 与 GPU 求解的试验子
19、结构加速度时程对比如图 4 所示,GPU 与 CPU 求解结果相同,说明 GPU 可以替代 CPU 作为实时混合试验的数值求解硬件。在求解算法中使用 Python 中的 time 函数统计分别使用 GPU 与 CPU,求解算法为中心差分法与Newmark 法的计算耗时,结果如表 2 所示。表中SR(Speedup Ratio)为 加 速 比,计 算 公 式 为 SR=TCPU/TGPU,其中,TCPU为使用 CPU 求解每一步长平均耗时,TGPU为使用 GPU 求解每一步长平均耗时。将表 2中的数据绘图如图 5所示,图 5中纵坐标为单次求解模型所需的耗时,横坐标为模型自由度数。随着模型自由度的
20、提升,两种算法求解所需的时间均有增加,使用 CPU 求解 5400 自由度模型耗时超过了实时混合试验的实时性要求(最大时间步长 20 ms),而此时使用 GPU 求解仅需不到 1 ms。模型规模越大,GPU 相比 CPU 的加速越明显,当模型自由度为 24375时,GPU 相比 CPU 的加速比可达50 余倍。无论是使用 CPU 还是 GPU,条件稳定的中心差分法求解所需的时间均小于无条件稳定的Newmark 法。原因是中心差分法的计算量相比Newmark法小,因此求解耗时短。图 5 CPU 与 GPU 求解性能对比Fig.5 Comparisons of solution performan
21、ce by CPU and GPU图 4 CPU 与 GPU 求解试验子结构加速度时程对比Fig.4 Comparisons of solving acceleration time history of physical substructure based on CPU and GPU表 2 求解耗时对比Tab.2 Comparisons of solving time cost模型自由度259254001083024375中心差分法TCPU/ms9.3938.81185.69850.85TGPU/ms0.360.883.7416.28SR26.0844.1049.6552.26Newma
22、rk-算法TCPU/ms9.4043.42228.031032.35TGPU/ms0.840.954.6119.36SR11.1945.7149.4653.32520第 2 期董晓辉,等:应用 Python-GPU 求解的实时混合试验方法研究3试验验证本文使用 Python 作为编程语言,应用 CuPy 库进行基于 GPU 求解的实时混合试验,设计了振动台实时混合试验系统,验证试验系统的可行性。数值子结构部分 GPU 求解数值模型后将子结构交界面动力响应发送至信号处理部分。在信号处理部分,配置好 Simulink xPC 软件硬件环境,通过 UDP网络连接数值子结构与物理子结构部分。物理子结构
23、采用振动台作为加载装置。本文试验目的在于验证基于 PythonGPU 求解的实时混合试验系统的性能及可行性,为避免物理子结构试件建模误差,试验中物理子结构在 xPC 实时系统中仿真求解。当振动台系统接收到数值子结构的界面响应后振动台空台运行,测量振动台台面位移及加速度,传输至 xPC 中进行物理子结构仿真。物理子结构仿真计算的动力响应通过信号处理部分传输至数值子结构部分,由此构成如图 6 所示的基于 PythonGPU 求解的实时混合试验系统,图中试验子结构仿真部分为求解动力平衡方程,M 为试验子结构质量;C 为试验子结构阻尼;K 为试验子结构刚度;为加速度;u?为速度;u为位移;t为外荷载加
24、速度激励。试验中所用振动台照片如图 7所示。3.1试验参数试验中所用模型为本文 2.2节土结相互作用模型的缩尺模型,采用 Wang等24提出的缩尺方法,缩尺比为 104。数值子结构部分由 ABAQUS 有限元软件前处理得到,通过添加脚本提取模型参数并使用 MATLAB 将参数转换为矩阵形式。试验子结构部分为单自由度结构,采用 Newmark 算法仿真,质 量 ms=1.45 kg,刚 度 ks=1003 N/m,阻 尼 cs=0.374 N/(ms-1)。试验在振动台台面布置位移及加速度传感器,对振动台输入白噪声信号并进行振动台系统辨识,使用 3阶传递函数辨识振动台特性,振动台传递函数如下式所
25、示:Gst=2.76 106s3+161.9s2+4.504 104s+2.769 106(1)对 振动台输入白噪声位移信号,振动台实际加载情况与期望的响应有幅值和相位误差。为此,在振动台信号输入前添加 Tang 等25提出的 FSCS 补偿控制器,对振动台系统进行控制补偿。补偿前后振动台位移时程对比如图 8 所示,补偿后的振动台幅值和相位误差相比未补偿时减小。图 6 验证试验实现过程Fig.6 Implementation process of verification testing图 8 振动台控制效果Fig.8 The control performance of shaking ta
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 应用 Python GPU 求解 实时 混合 试验 方法 研究 董晓辉
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【自信****多点】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【自信****多点】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。