APP下载

基于Pro/E二次开发和Matlab联合的火炮身管设计

2014-09-01李正伟高跃飞徐凤军

火炮发射与控制学报 2014年4期
关键词:身管二次开发火炮

李正伟,高跃飞,柯 彪,徐凤军

(1.中北大学 机电工程学院,山西 太原 030051;2.西北机电工程研究所,陕西 咸阳 712099;3.中国兵器装备研究院,北京 102202)

基于Pro/E二次开发和Matlab联合的火炮身管设计

李正伟1,高跃飞1,柯 彪2,徐凤军3

(1.中北大学 机电工程学院,山西 太原 030051;2.西北机电工程研究所,陕西 咸阳 712099;3.中国兵器装备研究院,北京 102202)

根据火炮结构设计的特点,利用计算机辅助设计技术,将火炮身管的设计计算和实体建模集成在一个设计环境下进行,可无缝衔接各个设计环节,自动完成零件的参数化建模,从而可提高设计效率。基于Pro/TOOLKIT对Pro/E进行了用户界面的定制,同时利用C++完成Pro/E与Matlab的接口设计,在Pro/E环境下实现了火炮身管的设计计算,并根据计算的外形尺寸数据自动完成身管的实体建模。此方法也可为火炮其他零件的设计与参数化建模的集成设计提供参考。

Pro/E二次开发;Matlab;身管设计; 参数化建模

身管是炮身的主要零件,发射时承受高温、高压、高速火药气体的作用[1]。对于身管设计,火炮战术技术要求不同,其设计程序也不一样;另外,还要考虑诸多因素,如火炮发射时身管承受的各种力、炮膛结构、强度校核及身管与其他部件的配合等因素。传统身管设计人工劳动量大且数据多,不易整理和有效利用,另外,身管模型不易快速创建和参数化。文献[2]利用基于Automation GATEWAY的Pro/E二次开发通过参数对零件模型的驱动实现了炮身的参数化建模。文献[3]利用基于SolidWorks的二次开发实现了对加农炮身管模型的参数化驱动。文献[4]通过编写定制的GUI应用在ABAQUS中实现了火炮参数化建模。上述参数化建模均是利用身管设计完成后的有关数据来进行操作的,并没有考虑身管的设计问题。文献[5]将各种工具集成在Flexware开发工具中,提出了一种模板化设计的方法来实现火炮身管的设计并对身管模型进行参数化建模,此方法模板较多且设计界面和参数化建模并不在同一环境下。因此笔者采用基于Pro/TOOLKIT应用程序的Pro/E二次开发和Matlab的联合来实现火炮身管的设计和参数化建模,简化了设计过程,使身管设计和参数化建模集成在Pro/E环境即同一环境下进行,从而使得设计人员精力集中在设计问题上,而不是在建模的细节上。此外,该方法可减少使用工具,缩短研发周期,提高设计效率。

1 使用工具

1.1 Pro/E

Automation GATEWAY是针对Pro/E软件二次开发的程序接口,虽然简单易用,但利用此程序接口不能访问Pro/E所有的底层资源;Pro/TOOLKIT是PTC公司为Pro/E软件定制的开发工具包,利用它几乎可以直接访问Pro/E软件所有的底层资源,可以对Pro/E进行深层次的二次开发。所谓的Pro/TOOLKIT应用程序是指利用Pro/E软件自带的Pro/TOOLKIT工具包,C语言进行程序设计,采用C编译器和链接器创建能够在Pro/E环境中运行的可执行程序或动态链接库形式的程序[6]。因此,笔者用基于Pro/TOOLKIT应用程序的Pro/E二次开发在Pro/E环境下进行菜单项和设计界面的定制来实现火炮身管的的设计和参数化建模。

1.2 Visual Studio 2008

根据Pro/TOOLKIT应用程序的定义,采用C++语言并选择编程软件Visual Studio 2008,利用Pro/TOOLKIT提供的函数库和头文件编写代码,然后编写计算程序,最后在软件中设置有关属性,使程序能够顺利的进行编译。

MFC(Microsoft Foundation Class)是VC++程序的一个重要的软件资源,可以实现程序界面的可视化设计[6],且人机交互性好,十分方便页面的布局、修改和调试。MFC对话框模式有模式对话框和无模式对话框两种,身管设计界面选用无模式对话框,因其在状态激活时可以不用关闭对话框就能激活另外的窗口。在Pro/E软件菜单栏中,点击指定的菜单项后就可以打开MFC无模式对话框即身管的设计界面。因此Pro/E软件既是设计界面的载体,也是身管模型创建的工具。故在Pro/E环境下,身管设计完成后,能直接对身管模型进行参数化建模,方便观察关键参数的变化对身管模型的影响。

1.3 Matlab

Matlab软件是一款科学计算软件,使用方便,代码语言简洁、运算高效。身管设计过程中计算量大且复杂,若用C++语言编写计算程序则不易实现,而利用Matlab软件编写计算程序则可以很好的解决这个问题。根据1.1和1.2所述,程序的编译是在Visual Studio 2008中进行的,因此,关键的问题是Matlab软件编写的计算程序如何集成在C++程序中并在Pro/E环境下后台运行,即C++如何调用Matlab。

C++调用Matlab的方法主要有调用Matlab计算引擎、包含m文件转换成的C/C++文件和调用m文件生成的DLL文件3种方法[7],笔者则采用第3种方法即利用Matlab自己的代码编译器mcc将m文件代码转换成DLL库(动态链接库)。具体做法是在Matlab中输入如下命令(xx为m文件名,xxx为转换生成后的文件名):

mcc -W lib:xxx -T link:lib xx

编译后在Matlab工作路径下得到的xxx.h、xxx.lib和xxx.dll文件为所需要的文件,将这些文件移动到VC++程序工作路径下并在程序中添加它们,另外还需要在程序中添加如下代码:

#pragma comment(lib, "mclmcrrt.lib")

其中mclmcrrt.lib为Matlab提供的库文件,它使得m代码的dll文件能够在程序中顺利的编译。

在xxx.h头文件中,xxxInitialize()函数用来初始化对xxx.dll文件的调用,xxxTerminate()函数用来终止xxx.dll文件的调用,两者必须有且同时出现,否则程序调用xxx.dll文件时会出现错误。

综上所述,Visual Studio 2008软件用来进行身管设计界面的设计和Pro/TOOLKIT应用程序的编译,Matlab软件用来编写计算程序并利用C++调用 Matlab的方法使计算程序在Pro/E环境下后台运行,而身管的设计过程和三维模型的创建最终是在Pro/E软件中完成的。

2 身管设计

2.1 设计方法

炮身通常由身管、炮闩和炮尾及其他一些辅助装置例如炮口制退器等组成,身管又有多种种类,笔者则选择单筒线膛身管进行设计。

线膛身管的内部结构由药室、坡膛和膛线3部分组成。炮膛设计时,既可参考现有结构,也可根据火炮总体的要求进行新的结构改进,以满足设计要求。

身管外形设计时则需要按照身管强度设计理论的进行身管强度极限的分析与计算,并需要考虑身管与炮身其他部件的配合。

身管模型的创建,主要依据是最终得到的身管的内、外径数据,因单筒身管是一个管状零件,故对身管模型截面进行划分,将内、外径数据转换成各截面端点的坐标值,然后由旋转等命令自动旋转生成身管三维模型。

2.2 设计思路

根据身管设计的相关知识,采用如图1所示的流程图来进行整体设计的布置,主要分为3部分:炮膛结构设计;外形结构设计;身管参数化建模。

2.3 炮膛结构设计

在药室结构设计中,需要选择药筒定装式或药筒分装式的药室结构,然后调用数据库后即可对炮膛结构参量(本体、连接锥和全长)进行调整和修改。坡膛一般被认为包括在药室结构中,因此在药室结构设计好后,就可以选择坡膛是一锥度还是两锥度,并输入其大端直径等参数。膛线设计较复杂,需要选择身管的材料(从数据库中提取)和输入膛线各参量(膛线的宽度、深度和数目)等一系列参数,最后采用第三强度理论的相当应力进行膛线强度的校核。这3部分结构设计完成后就可以将身管内径方向上的数据 和有关数据保存到指定的数据库中,方便后续部分的提取。

2.4 外形结构设计

由于火炮发射时伴随的各种物理化学现象难以准确掌握,身管内部受力也较复杂,因此,根据基本假设[8]在Matlab中编写内弹道方程组并转换成相关文件,在输入原始数据后,后台自动运行Matlab并进行内弹道程序的计算,完成后会得到炮口膛压和最大膛压两个重要参量,并可得到p-t、p-l、v-t、v-l曲线和相关数据。根据上述相关参数可进行身管高低温压力曲线的计算和绘制,选择身管各部分的安全系数和身管的材料后就可以进行身管理论强度曲线的计算。最后,根据外径计算公式[1]就可以确定身管的理论外形并可绘制身管的理论外形图,公式为

式中:d1为炮膛结构设计得到的身管内径;σp为选择的身管材料的比例极限;P1为身管理论强度极限。

上述步骤完成后将外径方向上的数据d2和有关数据保存到指定的数据库中。

2.5 身管参数化建模

炮膛和外形两部分结构设计完成后,将内径、外径数据提取出来并对身管的截面进行划分,并将内、外径数据和相关数据显示在设计界面上。在界面上可根据总体要求和身管与其他部件的连接对外形进行调整,根据调整后的理论外形进行身管的实际强度极限和实际安全系数的校验,若结果不满足要求则继续调整外形直至达到要求为止。完成后的数据保存到指定的数据库中,并将身管的内、外径数据按照一定的格式保存到指定的以.txt为扩展名的文本文件中。在Pro/E软件中新建一个零件后,点击界面上的按钮,程序将自动读取此文本文件,最后生成身管模型。

2.6 身管设计过程中的数据流程

身管设计过程中,数据多且有些数据需要重复使用,故采用数据库知识对数据进行整理和调用。身管设计时,先将有关内弹道数据及定装式药筒药室结构参量、身管材料等有关数据存入到数据库中,以便设计过程中随时调用。

2.7 实例

以某57 mm高射炮[8]为例,在Visual Studio 2008中新建一个MFC DLL文件,命名为Barrel后,进行相关属性的配置,然后将在Matlab中编写的计算代码文件进行转换并将转换后的相关文件添加到程序中,编写相关代码后进行程序的编译,编译完成后最终生成DLL文件,最后启动Pro/TOOLKIT应用程序。本实例采用批处理启动方法,优点是较传统方法大大简化了操作步骤,非常快捷,方法是在当前路径下,新建一个文本文件并以.bat作为扩展名,完成后鼠标双击此文件即可,文件内容如下:

cd /d %~dp0

"(Pro/ENGINEER安装路径)proeWildfire 5.0inproe.exe"

成功加载Pro/TOOLKIT应用程序后的Pro/E软件菜单项如图2所示。

执行【身管】|【炮膛结构设计】,弹出如图3所示的对话框。在药室结构设计中,调取数据库选择57 mm高射炮药室结构有关数据后就可以对相关参数进行修改,坡膛和膛线两部分结构设计类似,完成设计后将内径d1保存即可。

执行【身管】|【外形结构设计】,弹出如图4所示的对话框。

点击【连接数据库】后选择57 mm高射炮内弹道数据,则有关数据会在界面中显示,根据炮膛结构设计所得结果输入相关数据后按照顺序进行操作即可,所有计算程序均在后台运行。

执行【身管】|【身管参数化建模】,弹出如图5所示的对话框,点击【提取数据】按钮,则可直观地看到有关数据的关联并可对关键参数进行调整。点击【身管建模】按钮,则程序自动读取指定的文本文件后直接生成身管三维模型。

其中程序读取文本过程如图6所示。x_t格式文件即Parasolid文件为中性文件,可以在大多数CAD/CAE软件中通用,例如将身管模型的此格式文件导入到ABAQUS中对其进行强度分析。【导出x_t】按钮可以使身管模型重复使用并和仿真分析软件紧密的连接起来。

3 结束语

本文基于Pro/TOOLKIT应用程序对Pro/E进行了二次开发,定制了Pro/E环境下火炮身管设计与建模的菜单项和用户界面,通过C++调用Matlab的方法使计算程序能够在Pro/E环境下后台运行,实现了火炮身管的设计和参数化建模。实例表明,利用Pro/E二次开发和Matlab软件的结合可以将身管的设计过程和模型的建立均集成在Pro/E环境下进行,避免了在不同软件环境下分散设计与建模的缺点,可显著提高设计效率,而且可利用得到的x_t文件导入到其他CAD/CAE软件中,从而对身管模型作进一步的处理来满足特定的需要。该方法可适用于火炮其他零件的设计和参数化建模,最终可实现火炮零件设计的数字化。

References)

[1]潘玉田. 炮身设计[M]. 北京:兵器工业出版社,2007. PAN Yutian. Design of gun body[M].Beijing: The Publishing House of Ordnance Industry, 2007. (in Chinese)

[2]朱大伟,钱林方,徐亚栋. 基于Pro/E的炮身参数化设[J]. 火炮发射与控制学报,2013(4):35-38. ZHU Dawei, QIAN Linfang, XU Yadong. Paramete-rized design of barrel assembly based on Pro/E[J]. Journal of Gun Launch & Control, 2013(4):35-38. (in Chinese)

[3]梁振刚,刘耀,王冬. 基于SolidWorks的加农炮三维参数化建模[J]. 四川兵工学报,2012,33(2):14-15. LIANG Zhengang, LIU Yao, WANG Dong. 3D paramteric modeling based on SolidWorks cannon barrel [J]. Journal of Sichuan Ordnance, 2012,33(2):14-15. (in Chinese)

[4]李猛,于存贵,崔二巍,等. ABAQUS二次开发在火炮参数化建模中的应用[J]. 四川兵工学报,2013,34(9):41-43. LI Meng, YU Cungui, CUI Erwei, et al. Secondary development of ABAQUS and its application in creating parametric model of artillery[J]. Journal of Sichuan Ordnance, 2013,34(9):41-43. (in Chinese)

[5]赵萌,温波,王在森,等. 一种火炮身管的模板化设计方法[J]. 火炮发射与控制学报,2013(2):46-50. ZHAO Meng, WEN Bo, WANG Zaisen, et al. A kind of template design method of gun barrel[J]. Journal of Gun Launch & Control, 2013(2):46-50. (in Chinese)

[6]李世国. Pro/TOOLKIT程序设计[M]. 北京:机械工业版社,2003. LI Shiguo. Pro/TOOLKIT program design[M]. Beijing: China Machine Press,2003. (in Chinese).

[7]潘大夫,汪渤,周志强. Matlab与C/C++混合编程技术研究[J]. 计算机工程与设计,2009,30(2):465-468. PAN Dafu, WANG Bo, Zhou Zhiqiang. Research on mixed programming technology of Matlab and C/C++[J]. Computer Engineering and Design, 2009,30(2):465-468. (in Chinese)

[8]金志明. 枪炮内弹道学[M]. 北京:北京理工大学出版社,2004. JIN Zhiming. Gun interior ballistics[M]. Beijing: Beijing Institute of Technology Press, 2004. (in Chinese)

GunBarrelDesignBasedonCombiningPro/ECustomizedDevelopmentwithMatlab

LI Zhengwei1, GAO Yuefei1, KE Biao2, XU Fengjun3

(1.Mechatronic Engineering College ,North University of China, Taiyuan 030051, Shanxi, China;2.Northwest Institute of Mechanical & Electrical Engineering, Xianyang 712099, Shaanxi, China;3.China Ordnance Equipment Research Institute, Beijing 102202, China)

According to the characteristics of the gun structure design, the design calculation and the solid modeling of the gun barrel were integrated into a design environment with the help of the technology of CAD to carry out the seamless connection with each design process and to automatically establish the parametric modeling of the part, thus this method can improve the design efficiency. Based on the Pro/TOOLKIT that was used to customize the user interface for Pro/E and the C++that was used to finish the interface design between Pro/E and Matlab, the design calculation of the gun barrel was implemented under the condition of the Pro/E, as well as the solid modeling of the barrel was performed automatically based on the dimension data after the calculation. This method can provide the reference for the integration of the design and parametric modeling of other parts of the gun.

Pro/E customized development; Matlab; barrel design; parametric modeling

2014-03-28;

2014-07-19

李正伟(1989-),男,硕士,主要从事武器系统动力学与仿真技术研究。E-mail:zhanwei100@163.com

TJ303

A

1673-6524(2014)04-0020-05

猜你喜欢

身管二次开发火炮
“火炮身管烧蚀磨损机理及寿命提升技术”专题序言
“火炮身管烧蚀磨损机理及寿命提升技术”专题主编 杨国来
火炮也减肥
考虑壁厚差的火炮身管热力耦合有限元分析
浅谈Mastercam后处理器的二次开发
基于垂向固有振动仿真的身管口径倍数设计研究
例谈课本习题的“二次开发”
乌拉尔车辆厂将建立一条自动化生产线
ANSYS Workbench二次开发在汽车稳定杆CAE分析中的应用
关于平面设计软件二次开发的分析