ABAQUS粒子生成器弹丸和实际弹丸喷丸对比
本文摘要:(由ai生成)本文主要探讨了航空发动机关键零部件疲劳失效问题及解决方法。通过对比Python二次开发构建弹丸和粒子生成器生成弹丸这两种建模手段的单弹丸喷丸冲击结果,分析了它们之间的差异。此外,作者还研究了粒子生成器在其他领域的应用,并提供了相关结果图片。航空发动机关键零部件的疲劳失效一直是亟待解决的问题,提高材料疲劳强度可以减少部件维护次数从而降低成本,同时可以减少由于疲劳而导致的发动机故障。喷丸强化、激光冲击强化等表面强化技术通过表面改性可以显著提高材料疲劳寿命,具体表现为在材料表面引入残余压应力抑制裂纹的萌生和扩展;提高表面硬度从而提升材料的抗微动疲劳性能;细化晶粒使表面强度提升。然而,喷丸强化工艺参数繁多,不同材料对应的最优喷丸工艺不同,实验条件下确定材料喷丸工艺需要消耗大量材料(待强化材料和ALMEN试片),同时测量残余应力和硬度等表征结果也会消耗大量人力、物力。数值模拟手段通过大量的迭代发展,已经在航空航天、汽车和医学等领域得到广泛应用。近年来涌现出大量文献研究仿真手段在喷丸强化领域的应用。喷丸强化时间短,应变率高,变形较大的瞬时非线性特点导致其计算只能使用显式求解。ABAQUS和LS-DYNA在显式计算领域具有独特优势,是喷丸强化仿真计算的首选。激光冲击强化在调整步长较小的情况下可以采用隐式求解,求解结果相对显式求解精度较高,但求解效率较低。ABAQUS软件相比LS-DYNA而言灵活度更高,其可以通过python进行前后处理二次开发,Fortran进行求解二次开发以及修改关键字进行输入文件的二次开发。例如喷丸强化首先可以通过编写python脚本进行随机弹丸的建模和后处理残余应力和粗糙度的自动化提取,其次可以通过修改inp文件的关键字进行粒子生成器的定义,通过python和VDLOAD子程序的协同作用进行激光冲击前处理的参数化建模、光斑的路径定义、激光工艺参数的参数化定义以及脉冲曲线的参数化定义。作者通过阅读大量文献发现,通过python二次开发构建弹丸和通过粒子生成器生成弹丸是喷丸强化仿真常用的仿真手段。本文就这两种常用建模手段进行单弹丸的喷丸对比,单位制为mm、t、s。首先构建靶材模型,在ABAQUS软件构建1mm×1mm×0.5mm的靶材,网格大小为0.01,材料选用工业中常用的中国牌号为TC4的钛合金,其材料参数如下。密度杨氏模量泊松比ABCn4.5e-91.2e50.34109810920.0140.93通过CAE软件构建半径为0.15mm的铸钢丸,并对其进行刚体约束。其密度为7.85e-9,杨氏模量和泊松比分别为2.1e5和0.3,网格大小为0.01。冲击速度设定为80000mm/s。通过GUI界面构建的模型如下。构建粒子生成器的单弹丸模型有很多办法,控制粒子生成器的流率可以生成单个弹丸,其流率协调公式如下。其流率为粒子速度、密度和喷嘴阈值的函数关系。然而,通过控制流率的方式去生成单个弹丸的过程较为繁琐,本文直接通inp文件的节点坐标去构建粒子生成器生成的弹丸。粒子生成器生成弹丸的方式本质上属于生成随机节点,弹丸表示生成颗粒的球心位置,边界条件施加在生成的节点上。因此,首先在inp文件中构建part以及相应的节点号以及节点所在空间位置。**部件的名称*Part,name=nozzle**弹丸球心,即节点的空间位置*Node520252,0.5,0.5,0.66节点通过节点编号和后面跟着的节点空间位置坐标定义。前面所构建的靶材的最大节点编号为520251,因此对粒子生成器的弹丸节点编号命名为520252,其空间坐标为(0.5,0.5,0.66)。靶材长宽均为1mm×1mm,因此弹丸球心坐标与靶材中心对其。靶材厚度为0.5mm,弹丸半径为0.15mm,因此,0.66表示弹丸位于距靶材表面0.01mm的位置。*Element,type=PD3D520252,520252*Elset,elset=DEM,generate520252,520252,1下面对节点的单元类型和集合进行定义。粒子的单元类型为PD3D,粒子集合定义为DEM。*DISCRETESECTION,ELSET=DEM,shape=sphere,density=7.85e-9,alpha=0.00.15对粒子进行相关属性的定义。对上述集合DEM内的粒子定义其密度为7.85e-9,alpha阻尼先设定为0。0.15表示粒子半径为0.15。*discreteelasticity2.1e5,0.3对粒子进行杨氏模量和泊松比的定义,对于刚体而言,其并无太大价值,但其对粒子的法向接触行为的定义具有重要意义。ABAQUS帮助文档详细解释了Hertz接触与Johnson-Kendall-Robertsadhesive接触,具体公式计算见帮助文档。*su...
基于ABAQUS的VDLOAD子程序实现四轮小车移动
ABAQUS因其具有强大的子程序二次开发功能而倍受研究人员欢迎。VDLOAD子程序可以定义随时间和空间变化的载荷分布,可用于模拟汽车移动和激光冲击过程。其子程序模板如下:subroutinevdload(CReadonly(unmodifiable)variables-1nBlock,ndim,stepTime,totalTime,2amplitude,curCoords,velocity,dirCos,jltyp,sname,CWriteonly(modifiable)variable-1value)Cinclude'vaba_param.inc'CdimensioncurCoords(nBlock,ndim),velocity(nBlock,ndim),1dirCos(nBlock,ndim,ndim),value(nBlock)character*80snameCdo100km=1,nBlockusercodingtodefinevalue100continuereturnendvalue(nblock)是用户自定义的载荷大小,是程序中最重要的参数。ndim:坐标的方向数,1、2、和3分别表示三维空间中、全局坐标下的X、Y和Z三个坐标分量。steptime:表示当前分析步时间值,若有多个分析步存在,则其变化为0—>step1time—>0—>step2time—>…….—>0—>stepntimetotaltime:表示当前时间值,从0开始逐渐增大。curCoords(nblock,ndim):当前节点坐标。以上是用户常用的参数及其含义。本贴就以VDLOAD子程序实现生活中常见的四轮小车移动,程序相对简单,主要难点在于车轮的坐标控制,代码开源。对于四轮小车而言,假设车轮与地面的接触区域为正方形,示意图如下。其中前后车轮间距为L1,并排车轮距离为L2。蓝色区域为加载区,加载区长度为a*a。在ABAQUS中建模时,路面为XY平面,坐标原点位于路面模型的顶点。本模型默认整车位于路面的正中央,路面的长和宽分别为30mm和10mm,路面长的方向为X方向,宽为Y方向。初始时刻车轮距路面边缘的距离分别为xm和ym。先定义车身参数和运动参数。!车身参数L1=6L2=3a=0.5!运动参数speed=10000t=steptimedistance=speed*steptime!初始时刻车身距路面的距离xm=3ym=3每个车轮对路面的压强为:pressure=2000主程序:dok=1,nblock!节点坐标x=curCoords(k,1)y=curCoords(k,2)!上面一排车轮施加载荷if(y>=ym.and.y<=ym+a)then!第一个轮子if(x>=xm+distance.and.x<=xm+distance+a)thenvalue(k)=pressure!第二个轮子elseif(x>=xm+distance+a+L1.and.x<=xm+distance+a*2+L1)thenvalue(k)=pressureelsevalue(k)=0.0endif!下面一排车轮elif(y>=ym+a+L2.and.y<=ym+a*2+L2)then!第一个轮子if(x>=xm+distance.and.x<=xm+distance+a)thenvalue(k)=pressure!第二个轮子elseif(x>=xm+distance+a+L1.and.x<=xm+distance+a*2+L1)thenvalue(k)=pressureelsevalue(k)=0.0endifelsevalue(k)=0.0endifenddo程序编写完毕,接下来就是在ABAQUS软件建模,模型相对简单,就是一个板材。构建的模型如下。完整的代码如下subroutinevdload(CReadonly(unmodifiable)variables-1nBlock,ndim,stepTime,totalTime,2amplitude,curCoords,velocity,dirCos,jltyp,sname,CWriteonly(modifiable)variable-1value)Cinclude'vaba_param.inc'CdimensioncurCoords(nBlock,ndim),velocity(nBlock,ndim),1dirCos(nBlock,ndim,ndim),value(nBlock)character*80snameC!车身参数L1=6L2=3a=0.5!运动参数speed=10000...