徐凤军,高跃飞,柯 彪
(中北大学 机电工程学院,山西 太原 030051)
迫击炮是一种弹道弯曲、体积小、质量轻、结构简单、机动性良好的火炮,常作为步兵的伴随武器,它通常由炮身、炮架、座板、瞄准装置和附件组成[1]。座板作为迫击炮的重要组成部分,在射击时,通过控制土壤来保证迫击炮具有良好的后坐和复进的稳定性,从而改善迫击炮连续射击能力并提高射击精度和密集度,所以座板的结构将直接决定迫击炮的性能,而座板的刚度和强度是重要的设计目标。对迫击炮座板的工作状况进行仿真,能够代替传统的反复试验和修改设计,大大节省设计成本和研发周期。使用有限元软件对座板的刚度和强度进行仿真分析,可以得到迫击炮发射时的最大变形以及应力应变场等数据,从而检验设计是否达到要求,并可优化设计、降低成本、进一步提高迫击炮的性能。
ABAQUS是国际上先进的大型通用有限元软件,具有丰富的单元库,可以模拟各种复杂的线性与非线性问题[2],但其对大多设计人员而言较难掌握。本文基于ABAQUS的定制开发功能,应用Python脚本语言和ABAQUS GUI Toolkit联合开发技术,对ABAQUS/CAE交互界面进行全面修改,定制了迫击炮座板参数化设计系统。设计人员通过在系统的交互对话框输入参数就能完成建模和仿真分析,提高了迫击炮座板的设计效率。
在ABAQUS/CAE中进行数值模拟时,一般先由用户环境的对话框或命令行接口收集用户操作信息,并发出基于Python语言的脚本命令与内核通信,然后这些脚本命令经内核Python解释器逐行解释并执行。ABAQUS的开发方法包括:①通过用户子程序开发新的模型,控制ABAQUS计算过程和计算结果;②通过环境初始化文件改变ABAQUS的许多缺省设置;③通过内核脚本实现前处理建模和后处理分析计算结果;④通过GUI脚本创建新的图形用户界面和用户交互。本文的系统设计主要基于后两种方法。
2.1.1 图形界面设计
ABAQUS/CAE图形界面库是对FOX/Toolkit的二次扩展,其中以FX开头的为原始库中的类,以AFX开头的即为ABAQUS的扩展类。界面设计时为提高设计效率,利用 ABAQUS/CAE菜单栏中Plugins>Abaqus>RSG Dialog Builder打开插件编辑工具,先绘制出简单的对话框并编排控件布局,保证对话框的条理性与美观性,并以Standard plug-in保存,最后对保存的文件进行重新编辑,以满足GUI工具的读取和调用。
2.1.2 脚本程序设计
ABAQUS的内核脚本基于Python语言,而且针对ABAQUS的具体应用又进行了二次扩展,增加了mdb,odb 和 session 三 大 类 约 500 个 对 象[3]。ABAQUS/CAE下的所有操作都会在当前工作目录下的abaqus.rpy文件中给出对应的脚本语句,所以在编制建模、画网格等功能内核脚本时主要采用记录、修改的模式,这样既可以节省大量的时间,又提高了编程准确性。
2.2.1 有限元模型的建立
迫击炮不仅要求能在松软的山地使用,同样在城镇中的硬质水泥地面也要有很好的射击性能。在硬质水泥地面射击时,座板受炮膛合力和3个筋板与地接触面的支反力,筋板棱脊上的受力最大,应力集中最为严重,焊道易拉裂,使用此类阵地考核座板的强度最为适宜,所以选择刚性地面作为使用环境进行数值模拟。分析模型如图1所示。
图1 分析模型
分析模型中包含迫击炮座板、驻臼和炮尾三部分,座板和驻臼合并为一体。炮尾的尾球与驻臼间通过面面硬接触传递载荷,摩擦力由罚函数法定义,系数为0.2。射击时,炮身与座板刚性连接,直接将炮膛合力添加到炮尾简化模型的圆柱面上。模型采用自由网格划分技术,分析步采用Static General,单元类型选为C3D10M[4]。
2.2.2 系统的初始化
初始化文件design App.py的代码如下:
from abaqusGui import AFXApp
import sys
from model Main Window import Model Main Window
#初始化应用程序
app= AFXApp('AbaqusS/CAE','SIMULA')
app.init(sys.argv)
#构建主窗体
Model Main Window(app)
#创建并启动仿真系统
app.create()
app.run()
在初始化程序中将调用系统界面定制文件“model Main Window.py”对 ABAQUS/CAE 的 通 用界面进行定制修改。
2.2.3 程序模块间调用关系
设计系统的程序模块间调用关系如图2所示。
首先点击系统程序的入口文件(run_program.bat)启动ABAQUS主程序并读入定制模块程序,完成初始化。定制系统界面如图3所示。系统界面以ABAQUS/CAE为母版,对原有菜单、工具、模型树等控件作选择性导入,并在系统界面添加定制菜单和定制按钮,3个工具按钮分别为参数建模、添加载荷和提交分析作业。
图2 程序模块间调用关系
图3 定制系统界面
点击参数建模工具,将打开如图4所示的建模输入对话框。为方便设计人员,在对话框的左边为标有尺寸参数的零件结构图,右栏为参数输入文本框。建模时考虑到了零件装配的尺寸关联性,例如炮尾尾球与驻臼的球形槽,建模的参数输入分为座板和驻臼两步。在输入栏下方为模型的材料选择框,设计人员可以对模型赋予不同的材料属性。本例选用座板常用的7075-T6超硬铝合金。点击“确定”后,将自动生成模型并完成装配和网格划分等,座板的有限元模型如图5所示。
图4 座板参数建模对话框
图6为定制对话框,点击添加载荷工具打开如图6(a)所示对话框,为防止迫击炮打滑,在硬质水泥地面的允许射角为70°~85°,该例射角取为70°,方位角分别取0°(身管轴线沿筋板方向)和60°(身管轴线与筋板对称面呈60°角)进行仿真,并选择事先计算好的炮膛合力文件(.txt)。
图5 座板的有限元模型
图6 定制对话框
点击系统界面第3个工具将打开如图6(b)所示的仿真设置对话框,选择静力学仿真并设置仿真资源和路径后提交作业,首先生成输入文件(.inp),然后通过后台编制脚本程序将输入文件提交给ABAQUS/Standard求解器进行数值运算。
仿真完成后,可通过对仿真结果进行分析处理,从而对设计方案进行检验,选取最佳尺寸,优化设计方案。仿真分析得到的应力云图如图7所示。在射角为70°、0°方位角下,最大应力为558.5 MPa;在射角为70°、60°方位角下,最大应力为460.8 MPa。所以0°方位角为危险工况,通过参数建模对话框增大肋板厚度,在70°射角和0°方位角时进行仿真,得到的最大应力为457.1 MPa(见图8),可见增加肋板厚度可有效减轻应力集中问题。
应用ABAQUS的定制开发技术,开发了迫击炮座板的参数化设计系统,设计人员只需在对话框中修改尺寸参数并设定工况后,就能完成快速建模和仿真分析,从而通过仿真结果就可对设计方案进行评估,代替了传统的反复试验,降低了研发成本,提高了设计效率。
图7 不同方位角、射角时的应力云图
图8 肋板厚度增加后方位角0°、射角70°时的应力云图
[1] 谈乐赋,张相炎,管红根,等.火炮概论[M].北京:北京理工大学出版社,2005.
[2] 黄霖.ABAQUS/CAE二次开发功能与应用实例[J].计算机辅助工程,2011,20(4):96-99.
[3] 王家林,李平.ABAQUS箱型桥梁的GUI二次开发[J].重庆交通大学学报(自然科学版),2009,28(6):1000-1004.
[4] 庄茁,由小川,廖剑辉,等.基于ABAQUS的有限元分析和应用[M].北京:清华大学出版社,2009.