陈 博 陈秀华 汪 海
文章编号:1006-0871(2009)01-0022-05
摘 要:为使用模块化方法实现飞机结构战伤的快速修理,以MSC Patran为平台,利用其二次开发语言PCL和模型日志文件,通过自动加载编译函数文件、参数化建模、用户自定义菜单和图形界面、自动提交分析和读取结果等技术,开发飞机结构战伤快速修理程序. 使用此程序分析几个典型案例,结果表明该程序不仅能满足多数飞机结构战伤修理的要求,而且可以大大缩短修理时间.
关键词:飞机结构战伤;快速修理;有限元;二次开发;PCL;MSC Patran
中图分类号:V267;TP391.7;TB115
文献标志码:A
Rapid repair program of aircraft battle damage based on MSC Patran
CHEN Bo琣,CHEN Xiuhua琤,WANG Hai琤
(a. School of Naval Architecture,Ocean & Civil Eng.;
b. Institute of Aerospace Sci. & Tech.,Shanghai Jiaotong Univ.,Shanghai 200240,China)
Abstract:To implement the rapid repair of aircraft battle damage using modularization method,a rapid repair program for aircraft battle damage is developed which is based on MSC Patran platform and programmed by the secondary development language PCL and model log files. The technologies such as automatic loading compiling function files,parametric modeling,user-defined menu and graphical interface,and automatic commit analysis and reading results are accomplished in the program. It is applied to several typical cases and the results indicate that the program can not only meet the most requirements of rapid repair of aircraft battle damage,but also greatly shorten the time needed in repair.
Key words:aircraft battle damage;rapid repair;finite element;secondary development;PCL;MSC Patran
0 引 言
飞机战伤修理是1种应急性临时修理,它要求用最少的工具和时间完成修理,使受伤飞机尽量恢复到原来的刚度和强度.[1]针对飞机战伤形式的不确定性,要使相应修理方法及修理组件符合通用性和标准化要求,模块化修理方法是实现快速修理的有效途径.该方法的意义在于:当作战飞机受伤迫降后,修理人员能够在非常短的时间内,用少数几种通用修理模块使受伤飞机的静强度得到基本恢复.其中关键在于战伤形式的多样性,特别是损伤区尺寸、位置、损伤结构及材料的不确定性,严重制约快速修理方法的实施.针对该问题,本文利用MSC Patran的二次开发语言PCL开发出飞机结构战伤快速修理的模块化程序.
1 二次开发平台简介
目前,MSC Patran是航空工业中有限元数据前后处理的标准软件,拥有广泛的用户基础.其中,PCL是MSC Patran的1个高级模块化结构编程语言和用户自定义工具,随同MSC Patran一起发布.PCL语言类似于C 语言和FORTRAN语言,几乎具有标准C语言的全部功能,可提供比较丰富的函数,二次开发能力较强,基本能满足各种开发的需要.现在,几乎所有分析仿真软件均利用被业界公认为标准的PCL 语言作为工具,建立与MSC Patran的集成关系,甚至通过OEM将MSC Patran作为其分析系统的前后处理器.[2]本文结合此飞机战伤快速修理系统,介绍如何利用PCL语言建立自己的用户化程序,特别是其中比较重要的参数化建模和用户自定义界面功能.
2 二次开发方法
2.1 PCL函数结构
PCL语言中包含各种指令和固有函数,这些指令和固有函数预先由MSC Patran定义好,通过编写由这些固有函数和指令组成的函数文件或程序,用户就可以通过函数结构实现自己需要的功能.PCL函数以“function 函数名()”声明开始,以“end function”声明结束,其中,function声明可以包含一组输入和输出参数,供其他函数调用.[3]
2.2 函数编译
如果要实现某些指令,只需在Patran命令行中直接输入对应的固有函数即可.不过,用户编写的PCL函数文件通常包含很多函数,如文中所编写的程序用到的PCL文件就包含数千条函数,显然,使用这种逐行输入的方法行不通,不过,可以使用MSC Patran的编译指令!!input[4]进行编译,即在MSC Patran命令行中输入!!input filename.pcl.
在每次打开MSC Patran时,启动的文件如init.pcl,p3prolog.pcl,p3midilog.pcl和p3epilog.pcl等,都会被自动加载编译.[5]因此,在这些启动文件中输入相应指令,就可以将自己开发的PCL文件或程序实现自动编译的功能.在开发用户自己的程序界面、定义变量、加载用户参数化文件时,这一方法尤其重要,可以使用户的自开发程序与MSC Patran完美集成在一起.本文就是利用init.pcl和p3epilog.pcl文件自动加载自编程序文件.
2.3 界面函数
为了使开发的用户程序具有交互性、可操作性及直观性,可以用PCL语言创建用户图形界面.MSC Patran中包含几乎所有都由PCL创建的窗体和按钮.每个窗体都通过1个类来定义,其中必须包括2个函数:init()和display().界面程序的函数结构如下(在PCL 语言中,注释由 “/*” 开始,以“*/”结束):
CLASS classname
FUNCTION init()
main_form = ui_form_create()/*创建窗体*/
END FUNCTION
FUNCTION display()
ui_wid_set() /*设置窗体上控件的属性*/
ui_form_display(“classname”)/*显示窗体*/
END FUNCTION
END CLASS
3 飞机战伤快速修理程序
3.1 参数化建模
使用PCL创建参数化模型可以使各种参数设计或优化分析工作更加简单、快捷,特别是能够极为显著地缩短模型建立时间,减少错误发生,使用户远离繁琐重复的工作,专心于理论分析研究.[6]
参数化就是将那些原本固定不变的量(几何尺寸、单元属性、材料属性、边界条件等几乎所有可以由用户在MSC Patran界面上输入或确定的值)用可以实时改变的参数变量代替,改变这些参数变量就可建立新的分析模型.而飞机结构战伤快速修理程序就建立在参数化建模的基础上,所用到的7个参数化模型文件分别对应7种不同类型的损伤.如在横向构件补框修理的参数化模型文件frame.pcl中,参数变量多达9个,包括破孔半径、胶接宽度、胶层厚度、弯边高度、补片厚度、母板厚度、边界条件、母板材料和补片材料.其中:母板材料和补片材料均为3种,分别是Al,Steel和Composite;边界条件分为“大”、“中”、“小”3种,分别对应不同的损伤结构和损伤位置.改变其中任意1个参数变量,就可以在数分钟之内得到完全不同的补框修理模型,极大节省在飞机战伤修理中至关重要的时间;而且此参数化模型允许同时改变9个参数,几乎涵盖各种横向构件补框修理情况,这在损伤情况常常难以预料的飞机战伤修理中十分重要.同时对修理区域进行有限元网格细化,以提高模型分析的准确程度.[7]图1为建立的横向构件补框修理有限元模型.
图 1 横向构件补框修理有限元模型
这些文件中的PCL命令有几千行之多,如果全都用手工编写函数命令的方式,不仅费时费力,还容易出错.因此,本文利用MSC Patran生成的模型日志文件(dbname.jou)编写自己的参数化模型文件.建模过程中用户的每个操作,最终都通过执行MSC Patran中的1个或1组固有函数实现,日志文件中记录从模型建立开始所有的用户操作所对应的固有函数.在确定好模型的参数化变量后,在日志文件中找到对应的固有函数,将其中的常量用参数化变量代替,这样,改变这些参数化变量的值,就可以得到不同的模型.
3.2 用户图形界面
考虑到程序的可操作性,用PCL语言在MSC Patran主菜单下创建“飞机战伤快速修理程序”主菜单,其中包括“板类构件补片修理”、“纵向构件补条修理”、“横向构件补框修理”、 “补片和补条组合修理”、“补片和补框组合修理”、“补条和补框组合修理” 、“补片、补条和补框综合修理”7个子菜单,点击子菜单就会出现对应的用户修理界面.
图 2 “横向构件补框修理”用户界面
图2为修理程序子菜单“横向构件补框修理”所对应的用户修理界面.在此用户修理界面上,用户在数据框中输入该损伤类型结构的修理信息,即模型的几何参数值部分,同时通过选择按钮选取母板和补片材料及边界条件.为分析方便,还编制自动提交分析和读取结果的程序,该程序主要以db_info_get.pcl,analysis_submit_op2.pcl和access_results_op2.pcl函数文件为基础.这样,用户在点击修理界面上的“确定”按钮后,该修理程序就将建立模型、分析计算、读取结果等工作自动完成.待修理程序执行完毕后,用户只需到MSC Patran的 “Results”窗口中查看结果即可.
4 计算实例
4.1 受穿甲弹损伤的蒙皮
某飞机机翼靠近机身部位的厚蒙皮遭穿甲弹破坏,形成近似圆形破孔式战伤.经预处理,清除应力集中区域后,战伤近似按圆形缺损处理,可采用修理板类构件的圆形补片进行胶接修理.圆形补片标准件有多种规格,材料也有所不同,应通过各修理方案的比较分析决定采用何种规格的标准件.
经测量,材料为铝合金,蒙皮厚度为12 mm,圆洞直径为80 mm.
备选修理标准件有2种:
(1)直径为150 mm,厚度为5 mm;
(2)直径为200 mm,厚度为5 mm.
胶黏剂选用FM 73,胶层厚度为0.2 mm,考虑到受损蒙皮的位置和结构,选择边界条件“中”,载荷为双向拉伸载荷.
分析后,给出补片上从补片圆心起沿x半径方向的应力变化,见图3和4.
图 3 补片(1)沿半径方向的应力变化
图 4 补片(2)沿半径方向的应力变化
可见,使用200 mm规格的补片,修理后的应力水平与使用150 mm规格时相当,但是修理效率下降.考虑到减重原则,只需选用150 mm直径规格的补片即可.图5即为用150 mm直径规格补片修理后的应力云图.
图 5 蒙皮胶接修理的应力云图
4.2 受炮弹袭击的机身隔框受损纵向构件
某飞机机身中部受炮弹袭击,非主承力隔框及附近区域受损.受伤构件有3个:蒙皮、长桁、隔框.由于蒙皮的修理标准件选取在第4.1节中已经分析,下面专门对长桁及隔框的修理进行分析.
4.2.1 长桁修理
飞机上纵向构件的截面形状多为L型角材,型材的受损长度为200 mm.
型材标准件的规格即为型材截面的几何形状和尺寸,基本参照现役飞机中纵向构件截面尺寸制成不同规格的型材.由于补条标准件规格的选取以截面尺寸近似母体截面尺寸为准,所以此快速修理程序在纵向构件修理标准模块选取上的作用是决定胶接长度,即决定标准件型材的长度.
经测量,长桁为L型角材,厚度为5 mm,材弯边长度均为30 mm,材料为铝合金.补条标准件的厚度为3 mm,其角材边长取受伤型材的几何尺寸.
胶接长度由用户自行给定.本实例取胶接长度为50 mm和100 mm分别进行计算.
胶黏剂选用FM 73,胶层厚度为0.2 mm.考虑到受损部位的位置和空间结构,选择边界条件“大”,载荷为长桁轴向拉伸载荷.进行静强度分析后比较2种胶接长度补条上沿棱边的应力变化,见图6和7.
图 6 胶接长度为50 mm时沿补条棱边的应力变化
图 7 胶接长度为100 mm时沿补条棱边的应力变化
图6和7中补条上靠近胶接部位的位置有个应力突变,这是由于补条上靠近胶接部位的部分弯曲变形最大所引起的附加弯矩所致.使用2种胶接长度,修理后的强度相当,使用较长的胶接长度并不能提高修理效率.所以,胶接长度选为补条50 mm时修理效果较为理想.图8为使用胶接长度50 mm修理后的应力云图.
图 8 长桁胶接修理的应力云图
4.2.2 隔框修理
隔框所在平面与长桁的方向垂直,由于炮弹对机体损伤可被近似看成半球形,因此可认为隔框边缘出现半圆型破损后导致隔框的弯边缺失,破损直径与长桁的受损长度一致.破损直径为200 mm.
经测量,隔框厚度为5 mm,弯边长度为20 mm,材料为铝合金.
备选修理标准件有:
(1)胶接宽度为20 mm,厚度为3 mm,弯边长度为20 mm;
(2)胶接宽度为40 mm,厚度为3 mm,弯边长度为30 mm.
材料为铝合金.
胶黏剂选用FM 73,胶层厚度为0.2 mm.考虑到受损部位的位置和空间结构,选择边界条件“大”.系统自动进行隔框的胶接修理有限元模型的建立并进行静强度分析,具体数据见表1.
分析表1中的数据可知,选择第2种标准件的修理效果较为理想.图9为胶接宽度选为40 mm,弯边长度选为30 mm时的应力云图.
图 9 隔框胶接修理的应力云图
如果外场维修人员具有中等专业技术水平,那么,对于相同的战伤,采用此快速修理程序与传统维修方法在确定最终修理方案上所需要的时间对比见表2.
粗略计算可知,使用该程序进行修理的效率要比传统维修方法至少提高10倍.
5 结 论
(1)以有限元软件MSC Patran为平台,利用其二次开发语言PCL和模型日志文件开发飞机结构战伤快速修理程序.几个典型战伤修理案例的应用结果表明,该程序应用范围较广,能显著提高修理效率.同时,程序界面为MSC Patran风格,比较直观,易于操作和掌握.
(2)以该修理程序为基础,介绍使用PCL语言进行二次开发的流程、PCL函数结构和编译方法、参数化建立模型、自动提交分析和读取结果技术、以及用户图形界面和菜单的创建过程,充分体现PCL语言在自编程序开发、与MSC Patran软件系统集成方面的优越性,为其他用户对MSC Patran进行二次开发提供方法和思路.
参考文献:
[1] 赵思宏,张身魁,任世亮. 飞机战斗损伤的快速修理[J]. 航空制造技术,2005(3):101-108.
[2] 刘兵山,黄聪. Patran从入门到精通[M]. 北京:中国水利水电出版社,2003:3-16.
[3] MSC Software. Patran PCL reference[K]. 2004.
[4] MSC Software. Patran PCL and customization[K]. 2004.
[5] MSC Software. Patran users guide[K]. 2004.
[6] 田志峰,李锋,冷文浩,等. 基于MSC Patran 的浮筏冲击动响应分析计算系统[J]. 计算机辅助工程,2006,15(S1):68-70.
[7] 陈震,王一飞,肖熙. 船舶舱口角隅处有限元细化网格分析[J]. 计算机辅助工程,2006,15(S1):85-86.
(编辑 廖粤新)