基于Python的ABAQUS

二次开发在飞机

蒙皮锤铆中的应用

在飞机蒙皮铆接技术中,锤铆是用一个小冲击力循环累计施加到铆钉使之变形的过程。根据锤铆铆接工艺和铆枪结构原理,铆钉的塑性变形是由铆枪的活塞循环碰撞冲锤而多次冲击铆钉产生的,铆枪活塞的冲击速度直接影响铆钉的变形量。

针对飞机蒙皮铆接仿真技术,国内外学者做了深入研究。Blanchot 等[1] 提出了铆钉铆接的3 种有限元模型;Zhang 等[2] 使用ABAQUS 软件模拟了压铆过程;刘平等[3] 对压铆过程阶段划分并进行仿真分析;郭庆等[4]利用SolidWorks 和COSMOS 软件研究了铆钉的应力集中系数;Manes 等[5] 和Atre 等[6] 研究了铆接件疲劳寿命的主要影响因素。针对锤铆工艺,应用有限元仿真技术的研究成果有限。Kadam[7] 和Bloxsom[8] 对气动铆枪等气动冲击工具进行研究,模拟其工作原理,建立了冲击工具的数学模型;Li 等[9] 建立了机器人铆接系统锤铆过程的动力学模型,分析了铆钉的塑性变形;曲巍崴等[10] 利用ABAQUS 软件进行了锤铆过程的仿真分析,其中对于几十次初速度加载采用手动操作,一次完整铆钉变形分析,需要不断的数据导入,过程烦琐,分析效率低。

本文采用Python 脚本语言,对ABAQUS 软件二次开发,建立了活塞初速度连续加载锤铆自动仿真分析程序,通过对初速度、分析时间、冲击次数等输入参数的调整,可自动完成锤铆分析过程,极大地提高锤铆分析过程的效率。与锤铆工艺试验的对比分析,验证了仿真结果的正确性。

1、锤铆冲击系统组成

根据锤铆工艺,锤铆冲击系统可以进行简化,如图1所示,本文应用的冲击系统的冲锤、铆钉与顶把3 部分紧密接触。通过控制电磁阀的通断控制压缩空气进入铆枪,活塞两端产生压力差,使活塞加速运动,达到最大初速度v0 时,与冲锤碰撞,受撞击后的冲锤获得动能,冲击铆钉使其变形,活塞往复运动,冲锤不断冲击铆钉,以达到铆钉变形要求。根据锤铆工艺,铆钉完成变形,需要活塞几十次的累计撞击。系统组成尺寸数据如图2 所示。

2、锤铆仿真程序二次开发

2.1 锤铆过程分析

根据锤铆工艺,铆钉完成变形,需要活塞几十次的累计撞击,由于ABAQUS 每次分析只能在初始分析步(Initial)中施加一次初速度载荷,所以,需要相应的几十次手动迭代分析才能完成铆钉的变形。即从第2 次分析开始,后续分析模型的初始状态是前一次的结果状态,需要手动操作完成对每次分析结果数据的处理与导入。

针对上述手动迭代分析问题的不足,本文提出了一种基于锤铆工艺过程的自动计算软件方法。先建立一次冲击的分析模型,从第2 次开始,将前一次的分析结果导入作为后一次分析的初始状态,进行循环。图3 为二次开发流程图。

2.2 软件开发基础

ABAQUS/CAE 前后处理脚本接口是基于Python语言的扩展,使用户可以直接与求解内核交互,因此可以用Python 脚本自动化创建、重复、修改模型,用于运行分析任务。ABAQUS 分析模型,主要分为模型数据库mdb、结果数据库odb 和图形显示界面元素session,如图4 所示。

在建模过程中主要是对mdb、session 进行操作,而在第2 次及以后冲击分析导入初始状态时,需要对odb文件操作,读入相关结果数据。

ABAQUS 可以录制用户在图形界面中的各种操作,转换为Python 脚本程序,为二次开发带来便利。本文第1、2 次冲击分析的程序生成就是按照上述思路方法完成的。

2.3 建立第1次冲击模型

锤铆过程为动态问题,采用ABAQUS/ Explicit 求解器,为了提高分析效率,采用1/2 模型进行分析,建立锤铆有限元模型,如图5 所示。模型中的相关参数见表1。

第1 次冲击建模关键在于:

(1)尽可能减少图形界面选择。

在建模过程中,通过建立选择集,实现参数化选择。选择集作为部件属性,会随着模型的导入而传递。表2所示为其中部分关键选择集。

(2)重启动设置。

只有在建立分析步时,开启重启动设置,才能实现在后续分析结果的数据导入。重启动Python 语言如下:

m d b . m o d e l s [ ' M o d e l - 1 ' ] . s t e p s [ ' S t e p - 1 ' ] .

R e s t a r t ( n u m b e r I n t e r v a l s = 1 , o v e r l a y = O N , timeMarks=ON)

(3)接触类型。

在进行接触类型定义时,选择通用接触类型,否则在后续循环中无法传递。

2.4 建立第2次冲击模型

由于第1 次冲击,铆钉等部件存在应力应变,第2次冲击模型的建立要基于第1 次冲击分析的结果数据,建模过程流程图如图6 所示。

同样采用ABAQUS/Explicit 求解器,建立第2 次冲击分析模型。关键步骤如下:

(1)新建模型是在第1 次冲击分析模型的工程下,与第1 次分析模型同级。

(2)导入部件时,是从第1 次分析结果数据库odb文件导入。其中,部件名要与第1 次分析中的部件名一致,变形配置要选择“导入变形后的构型”,如图7 所示。

(3)复制对象时选择材料、截面、相互作用属性,并选择从第1 次分析模型中导入。

(4)建立分析步时,同样要设置重启动。

(5)定义输出,应与第1 次分析模型定义的相同。

(6)相互作用选择通用接触类型。

(7)通过定义预定义场的初始状态,输入第1 次结果数据库中的应力应变数据。如表3 所示,定义部件的初始状态。

(8)在导入部件时,第1 次冲击分析时建立的选择集,作为部件属性传递,在建模过程中,通过“选择集”进行选择,不能通过模型界面交互选择。

(9)建模完成后,新建任务(Job)进行分析。Job 名称应包含数字,便于循环,如:“Job_rivet_002”。

2.5 建立循环程序

在第2 次冲击分析结束后,应用Python 脚本语言,对其增加循环,以实现连续自动建模与分析过程。如图8 所示为锤铆自动仿真分析流程图。

自动程序编写关键在于:

(1)部件导入和预定义场初始状态输入时,从前一次Job 中导入。

(2)复制对象到当前模型中。

(3)新建分析步以变量命名,如:“'Step_'+str(i)”。

(4)新建Job 以变量命名,如:“'Job_Rivet_00'+str(i)”。

如图9 所示为锤铆自动仿真分析循环部分程序。

对每次分析最后的提交程序进行修改,添加等待完成和保存命令。命令如下:

mdb.jobs['Job_Rivet_00'+str(i)].submit()

mdb.jobs['Job_Rivet_00'+str(i)].waitForComp-letion()

mdb.save()

3、锤铆仿真应用与试验

根据锤铆工艺,基于建立的仿真程序进行仿真分析并进行锤铆试验,分析仿真与试验结果,验证仿真方法的正确性。

根据曲巍崴等[10],气压在0.2~0.6MPa 时,活塞初速度vo 约为6~12m/s,本文以0.5MPa 时,活塞10m/s 的初速度进行锤铆仿真分析与工艺试验。

根据 HB—Z 223.3—2003 标准,对仿真和试验的铆钉进行镦头成型合格性判定。铆钉镦头尺寸:

hmin=0.4d,D=(1.5±0.1)d。

3.1 锤铆仿真应用

根据锤铆工艺进行初步锤铆试验,利用冲击力传感器采集锤铆过程的冲击力。截取两次冲击数据进行分析,如图10 所示,基于MATLAB 软件分析得到一次冲击完成时间即一次波峰发生时间约为(0.2722–0.2697)s=0.0025s。为确保仿真分析时一次冲击的完成,确定一次冲击的分析时间t=0.0035s。

根据建立的锤铆仿真分析程序,建立锤铆有限元分析模型,如图11 所示,程序建立的分析模型,模型部分输入参数如表4 所示。

运行程序,进行自动锤铆仿真,使建模分析过程自动运行,得到仿真结果。分析发现,在冲击次数达到25次时,铆钉墩头尺寸D=6.43mm,H=1.58mm,达到变形要求,铆接合格,图12 所示为铆钉变形图。

3.2 锤铆工艺试验

根据锤铆工艺,基于双三坐标机器人平台进行铆接试验,并对锤铆冲击力进行采集,铆接试验平台如图13所示。

调整铆枪输入气压至0.5MPa,进行锤铆工艺试验,通过调整施铆时间,达到铆钉变形要求,并采集锤铆时的冲击力。图14 为采集到的锤铆冲击力,通过分析:0.5MPa 铆枪输入气压下,施铆时间为1.08s,锤铆次数达到25 次时。图15 为铆钉墩头成形图。

通过测量,施铆后镦头平均尺寸 D=6.39mm,H=1.62mm,铆钉变形达到要求,墩头合格。分析发现,相同气压时,在满足铆钉变形要求下,仿真和试验所得的冲击次数相同,验证了仿真分析方法的正确性。

4、结 论

(1)使用Python 对ABAQUS 前处理进行二次开发,建立锤铆铆接连续仿真程序,较手动迭代锤铆仿真过程,极大地降低了锤铆模拟过程的工作量。使得用户可以根据不同的输入参数进行调整分析。

(2)基于三坐标机器人试验平台进行了锤铆工艺试验,根据建立的仿真程序进行了仿真分析,分析仿真结果与试验结果,验证了仿真方法的正确性。

(3)通过对锤铆工艺仿真分析,得到在一定活塞初速度(输入气压)时,达到铆钉变形所需的冲击次数。为深入研究锤铆工艺提供高效的方法。

(4)本文提出了基于Python 脚本语言对ABAQUS二次开发的思路与过程,为循环加载及结果数据的导入等相关工程问题提供重要的借鉴与指导。

END

免责声明:本文引用自《航空制造技术》2018年第61卷第16期,作者陈彦海,秦运海,姜春英,康玉祥,叶长龙。文章著作权归作者所有,本公众号作为发布方,文章仅供参考阅读使用,且不承担因理解歧义带来的法律责任。如需参阅该论文所在期刊,请到正规渠道购买。


北京嘉通壹航科技有限公司倾力打造的小程序“壹航文库”,是专属于航空人的文库,3w+文档图样,覆盖✦飞机设计、飞机制造、维修工程、适航法规、军情报告、国际标准、标准件库、实用文档✦ 多个专业,赋能航空全产业链,是航空企业和从业者的忠实好伙伴!

点分享点点赞点在看

abaqus生成odb文件_【前沿技术】基于Python的ABAQUS二次开发在飞机蒙皮锤铆中的应用...相关推荐

  1. autocad python二次开发_基于Python AutoCAD ActiveX 二次开发,pyautocad应用技术

    AutoCAD应用程序开发系列 基于Python AutoCAD ActiveX 二次开发技术 主要库:pyautocad==0.2.0 内容#:基于Python AutoCAD ActiveX 二次 ...

  2. 基于Python AutoCAD ActiveX 二次开发,pyautocad应用技术

    AutoCAD应用程序开发系列 基于Python AutoCAD ActiveX 二次开发技术 主要库:pyautocad==0.2.0 内容#:基于Python AutoCAD ActiveX 二次 ...

  3. 基于Python的DELMIA二次开发(一):创建零件

    基于Python的delmia二次开发系列 文章目录 前言 一.基础概念 1.对象.集合.属性.方法 2.继承.聚合 二.Python连接Delmia 三.简单示例 前言 delmia和catia属同 ...

  4. 基于Python的ArcGIS二次开发实验实习教程

    基于Python的ArcGIS二次开发实验实习教程. ISBN编号: 9787307221772 原价(定价): 39元, 武汉大学出版社 天猫正版链接: https://detail.tmall.c ...

  5. 基于Python的Solidworks二次开发小尝试(一)

    文章目录 前言 一.自我理解 二.使用步骤 1.建立 Python 与 SolidWorks 之间的关联 2.通过录制宏获取vb代码 总结 前言 第一次运用python对solidworks进行二次开 ...

  6. 基于python 的 ansys 二次开发-----借助pyansys安装包。

    基于python实现ansys的二次开发需要安装pyansys模块.主要通过输入apdl命令流实现对ansys的控制. pip install pyansys pip install pyvista ...

  7. 基于Python的Solidworks二次开发小尝试(二)

    文章目录 前言 步骤 1.通过录制宏,自动绘图 2.修改问题 总结 前言 能够对solidworks进行基本的参数修改的操作后,开始练习新建组装等操作. 步骤 1.通过录制宏,自动绘图 因为本人对So ...

  8. 基于Python的DELMIA二次开发(二):创建产品

    DELMIA二次开发系列 文章目录 前言 一.创建前的准备 二.程序结构 三.运行结果 前言 本例基于CAA V5 VB help文档,用Python语言展示了如何创建产品以及以现有产品为参考创建其新 ...

  9. 基于Python的Solidworks二次开发方法

    关于python简易二次开发Solidworks的小程序 第一次动手开发了一个Solidworks的小程序,实验的功能也很简单,出来分享一下,第一次大佬们也可以指出一些问题,来帮助我改进~ 此处特别感 ...

最新文章

  1. 基于Codis的Redis集群部署
  2. 配电箱接线口诀_电路设计和家庭电路控制系统大全,学会接线不求人!
  3. c#调用Discuz的UCenter 1.5的API及示例。
  4. python web 框架(八)-- Scrapy
  5. 美女的床真的好难爬......
  6. xshell1分钟就会自动断_手术室自动门不能正常控制开关门维修案例
  7. Duration(2020多校第二场D)
  8. hex文件格式解析_玩转Hex文件
  9. Python学习笔记:序列之字符串
  10. H3C 常用信息查看命令
  11. 控制系统状态空间表达式的解(1)——求解线性定常系统零输入响应
  12. linux鼠标手势,Linux 系统中全能的鼠标手势——Easystroke.docx
  13. c语言strict函数的作用,C语言实现进制转换函数的实例详解
  14. 三步解决Tomcat假死状态
  15. 姿态估计1-04:FSA-Net(头部姿态估算)-白话给你讲论文-翻译无死角(2)
  16. 主程玩失踪,公司蒸发600w,创始人秒变打工仔(含视频)
  17. pip安装pandas失败的问题
  18. 挑战程序设计竞赛:反转法
  19. kylin如何支持flink_Flink 在快手实时多维分析场景的应用
  20. Centos7 resolv.conf被重置的解决方案

热门文章

  1. win7计算机 我的文档,Win7系统优化:如何移动Win7我的文档保存位置
  2. java执行linux跳板机_跳板机登录服务器脚本及命令制作
  3. VMware ESXi 8.0虚拟机开心版下载!有福利有惊喜!
  4. 西门子828D 840Dsl数控程序PLC西门子数控程序中文注释,详细解释介绍
  5. RS-169系列产品说明书
  6. KNN实现手写数字识别(Python-OpenCV)
  7. U盘装win7系统nbsp;NTLDRnbsp;is…
  8. google的开源项目总结
  9. Edge下载pdf而不是在线打开
  10. 第26章 FMC—扩展外部SDRAM—零死角玩转STM32-F429系列