瞬时平衡法计算固体火箭发动机内弹道曲线
- 格式:doc
- 大小:101.00 KB
- 文档页数:9
2009年10月第10期电 子 测 试ELEC TRONIC T ES TOct.2009No.10固体火箭发动机内弹道性能的仿真研究刘宝华1,杨志菊2(1辽宁葫芦岛市海军飞行学院教研部 葫芦岛 125000,2辽宁葫芦岛92941部队 葫芦岛 125001) 摘 要:研究发动机燃烧室内压强随时间变化的规律,是固体火箭发动机工作过程分析的主要方面,一般采用实验法可以获得直观可靠的数据,但实验法耗资大、周期长,不易操作。
本文根据零维内弹道数学模型,运用龙格库塔法及M A T L A B语言对某型固体导弹发动机内弹道工作过程进行数值仿真,画出燃烧室内压强随时间变化的曲线,并进一步分析得出影响发动机内弹道性能的因素,仿真结果与发动机燃烧室内工作情况相符,影响因素分析与实验相一致,为固体火箭发动机内弹道性能研究提供了参考。
关键词:发动机;内弹道;数值仿真;燃烧室中图分类号:T N957 文献标识码:BSimulate research of solide rocket eng ine inside trajecto ry characteristicLiu Baohua1,Y ang Zhiju2(1T eaching and scientific resea rch ministry,N aval Flying A czdemy,Huludao125001,China;292941U nit,PL A,H uludao125001,China)A bstract:Researching the rule of the pressure with the time changing o f the eng ine's firebox is the m ost aspect of analy zing the process o f the solid missile engine.Co mmo nly,experimenta-tion can achieve the intuitionistic and credible data,but this method consume m uch tim e and money,and not easy to manipulate.According to zero-dimensional inside trajecto ry numerical simulate model,to o ur co untry some ty pe solid missile engine,applacating Lo nger-Kuta me thod and the lang uage of m atlab launches the inside trajecto ry numerical simulate of the w o rking pro cess,and draw ed the burner pressure-time curve,passing further analy sis o uted the influence facto rs of inside trajecto ry characteristic.The result of simulatio n is consistent to the fact in en-gine's firebox and analysis of the influence facto rs is consistent to experim entation.It offer s a new idea to researching the capability o f the ballistic trajecto ry.Keywords:engine;inside trajectory;numerical sim ulate;firebox0 引 言固体火箭发动机内弹道学的核心是研究发动机燃烧室内压强随时间变化的规律,是固体火箭发动机工作过程分析的主要方面。
固体火箭发动机内弹道学方丁酉固体火箭发动机内弹道学方丁酉近年来,随着航天事业的蓬勃发展,固体火箭发动机内弹道学成为越来越受关注的领域。
方丁酉,中国工程院院士、火箭技术专家,曾在这一领域做出了卓越的贡献。
本文将从简单到复杂、由浅入深地探讨固体火箭发动机内弹道学,以帮助读者全面、深入地理解这一话题。
一、固体火箭发动机内弹道学的概念固体火箭发动机内弹道学是研究固体火箭发动机内燃烧过程、燃料燃烧特性、燃烧产物排放、工作环境等方面的学科。
方丁酉指出,固体火箭发动机内弹道学是固体火箭技术中的重要基础理论,对于提高固体火箭发动机的性能、可靠性和运载能力具有重要意义。
二、固体火箭发动机内弹道学的理论基础在固体火箭发动机内弹道学的研究中,燃烧动力学是重要的理论基础之一。
燃烧动力学研究了燃料在燃烧过程中的变化规律,以及燃烧反应对火箭发动机内部气体流动和压力变化的影响。
燃烧产物排放和燃烧室内部气体动力学也是固体火箭发动机内弹道学的重要内容之一。
研究这些理论基础可以帮助我们更好地理解固体火箭发动机内部的工作原理和特性。
三、固体火箭发动机内弹道学的关键技术在固体火箭发动机内弹道学研究中,燃烧稳定性和效率是两个关键技术。
燃烧稳定性是指在固体火箭发动机工作过程中保持燃烧的稳定性,避免出现燃烧不均匀或燃烧失稳等问题。
而燃烧效率则是指在燃烧过程中尽可能提高燃料的利用率,减少燃料的浪费。
方丁酉在固体火箭发动机内弹道学的研究中,提出了一系列有效的技术方案,使固体火箭发动机在燃烧稳定性和效率方面取得了显著的进展。
四、固体火箭发动机内弹道学的应用前景固体火箭发动机内弹道学的研究成果已经在我国的航天事业中得到了广泛的应用。
在长征系列火箭、嫦娥探月工程等多个航天工程中,固体火箭发动机内弹道学的研究成果为提高火箭的性能和可靠性做出了重要贡献。
未来,随着我国航天事业的不断发展,固体火箭发动机内弹道学将继续发挥重要作用,推动我国航天事业迈向新的高度。
固体火箭发动机工作末期的内流场数值计算张俊; 高天宇; 高璞清; 王刚【期刊名称】《《弹箭与制导学报》》【年(卷),期】2018(038)003【总页数】5页(P58-62)【关键词】固体火箭发动机; 飞行过载; 颗粒轨道模型; 两相流; 燃气射流【作者】张俊; 高天宇; 高璞清; 王刚【作者单位】上海海洋大学工程学院上海201306; 中国航天科工集团第六研究院第41研究所呼和浩特010010【正文语种】中文【中图分类】V2310 引言固体火箭发动机的工作过程按照其燃烧室压强变化可大致分为点火建压期、稳定工作期和工作末期。
在发动机点火使其燃烧室达到一定工作压强后,进入持续时间相对较长的稳定工作期。
随着推进剂燃面的推移、肉厚不断减少,衬层和绝热层在高速高温燃气射流的烧蚀与冲刷作用下可能出现剥离、脱落、烧穿等现象。
尤其对于含金属的复合推进剂而言,产生的高速高温颗粒受到发动机的结构限制和飞行过载等条件的作用,将会使发动机后封头及喷管收敛段等部位的粒子沉积浓度升高明显,进一步加剧了这些部位的烧蚀。
因此,研究SRM的工作末期的多相内流场变化,确定流场中固相颗粒的分布规律、运动轨迹及沉积浓度等是一个必不可少的环节[1-3]。
目前,科研人员主要通过数值模拟研究这一问题,取得了一系列重要的研究成果[4-6]。
文献[7]对发动机的燃烧室进行冷流实验,对径向速度、脉动速度等物理量进行了实验测量;文献[8]将SST k-ω湍流模型及其改进形式用于燃烧室湍流流场的数值模拟,并将计算结果与Wilcox和S-A湍流模型进行了对比,得出SST k-ω计算的燃烧室径向速度分布与实验值一致性最好的结论;文献[9]对凝相粒子加速度进行了理论分析、数值计算及缩比发动机旋转模拟试验,分析了地面模拟过载试验中燃烧室粒子聚集区及旋转试验后的烧蚀部位;文献[10-11]对高含铝固体推进剂低压SRM尾流场复燃进行了数值模拟和实验研究,得到了铝粉引入、粒径和燃烧室压强对羽流温度的影响规律,并与地面试车结果进行了对比。
基于Pro/E软件进行固体火箭发动机内弹道计算的方法初探作者:王磊代义李宏来源:《中国新技术新产品》2009年第10期摘要:固体火箭发动机内弹道计算给出的推力、质量流量随时间变化的曲线一直是导弹或卫星外弹道设计的计算依据。
为适应需求,固体火箭发动机装药的几何形状需要反复调整,复杂的几何形状使内弹道计算成为一项繁琐的工作。
本文利用Pro/E软件强大的三维建模能力,通过参数化设计模拟发动机燃烧的全过程,编制简单程序实现发动机零维内弹道计算,为繁琐的计算提供了一条便捷的途径。
关键词:固体火箭发动机;内弹道计算;Pro/E软件1 引言固体火箭发动机是一种采用固体推进剂的化学火箭动力装置,在航天技术中有着广泛的应用。
内弹道计算是固体火箭发动机设计的一项重要内容,它提供的推力、流量等性能参数是导弹总体进行射程计算、散布分析及导弹姿态控制的重要依据[1]。
在满足内弹道特性和保证药柱结构完整性的前提下,设计出具有较高装填分数的药柱对于提高发动机性能具有重要的意义。
药柱几何形状的演变过程,是从简单管状药柱演变到贴壁浇注内孔(星形、车轮形等)燃烧药柱,再到具有较高装填特性的翼柱、锥柱等三维药柱。
内弹道计算的关键在于得出药柱燃面随时间的变化曲线。
有着简单几何形状的药柱,计算燃面都有较为成熟的方法。
为了探索三维药柱燃面的计算方法,国内外有关学者开展了许多工作。
目前,国外内弹道计算最为著名的方法是美国NASA的SPP法,国内较常用的是通用坐标法、有限元素法和边界坐标法。
国内的这三种方法均为数值法,由于使用原函数对复杂药柱进行精确定义很困难,通常难以精确表示燃烧过程中十分复杂的图形,以及连接各部分药柱圆角的复杂变化,所以内弹道计算的精度较差。
同时,它们的计算结果对药柱网格划分的依赖性很强,网格划分不合适,所得结果也不正确[2]。
这些方法计算得到的燃面波动性也较大,药柱初始设计的修改很复杂,数据前后处理也抽象复杂。
这些因素导致内弹道的计算成为一项繁琐复杂的工作。
固体火箭发动机零维两相内弹道研究陈军【摘要】为方便应用两相内弹道流动模型对火箭发动机进行性能预示以及提高性能预示精度,利用火箭喷管内的两相流动性能计算公式,建立了零维两相内弹道模型,包括零维两相内弹道微分方程和平衡压强公式,给出了模型中涉及到的两相特性参数的计算方法.相比于一维两相内弹道模型,该零维内弹道模型简单且满足必要的精度,适于工程应用的快速估算.利用该模型对某远程火箭发动机进行了内弹道计算与分析,计算结果与实验数据吻合良好,表明该两相内弹道模型可以有效地降低纯气相模型引起的理论与实际之间的模型偏差,有利于快速计算固体推进剂火箭发动机的两相内弹道参数以及提高预示精度.%To predict internal ballistic properties with two-phase flow for convenience and to improve prediction precision of internal ballistics in solid rocket motor(SRM),a model of zero-dimensional two-phase internal ballistics was built.The model includes internal ballistic differential equation and corresponding equilibrium pressure formula,and the computational methods of twophase property parameters in the model were pared with one-dimensional twophase internal ballistic model,the model is very simple and more suitable to quick computation in project applications,and more accurate.Based on the model,an internal ballistic computation and analysis for a long-range solid rocket engine were carried out.The computed results accord well with experimental data.The zero-dimensional two-phase internal ballistic model can availably reduce theoretical error caused by single-gas-phase model.By the model,two-phase internal ballisticproperties can be quickly computed,and the prediction precision of internal ballistics in SRM can be improved.【期刊名称】《弹道学报》【年(卷),期】2013(025)002【总页数】5页(P39-43)【关键词】内弹道;两相流;固体火箭发动机;固体推进剂【作者】陈军【作者单位】南京理工大学机械工程学院,南京210094【正文语种】中文【中图分类】V435随着高能推进剂在火箭发动机中的普遍应用,两相流动对发动机性能的影响越来越受到重视。
旋转固体火箭发动机一维内弹道计算
张为华;曹泰岳;郭印诚
【期刊名称】《推进技术》
【年(卷),期】1994()3
【摘要】给出了带"锥-柱形"装药的旋转固体火箭发动机的一维内弹道计算方法,其燃速计算采用稳态分析方法,喷管流量计算采用等熵旋转喷管流的简化方法。
所得结果和旋转试车台上实测的实验结果吻合较好。
计算和实验表明,"锥-柱形"装药呈现较大的加速度效应。
文中提供的计算方法具有较高预示精度,可推广到其它药四旋转发动机的内弹道计算,对旋转发动机设计具有指导作用。
【总页数】5页(P28-32)
【关键词】固体推进剂;火箭发动机;内弹道
【作者】张为华;曹泰岳;郭印诚
【作者单位】国防科技大学航天技术系
【正文语种】中文
【中图分类】V435.11
【相关文献】
1.固体火箭发动机燃烧室结构径向振动与内弹道性能的耦合计算 [J], 李亮;鲍福廷;孟伟;和兴锁
2.串联双燃速固体火箭发动机一维内弹道计算 [J], 鲍福廷;赵飞;李进贤
3.锥柱形装药旋转火箭发动机的零维内弹道计算 [J], 曹泰岳;吴军
4.固体火箭发动机点火过程内弹道计算 [J], 李海涛;鲍福廷
5.固体火箭发动机通用药柱的一维准定常内弹道计算 [J], 田维平;张扬中;顾雪林因版权原因,仅展示原文概要,查看原文内容请购买。
一、考试内容:根据我校教学及该试题涵盖专业多的特点,对考试范围作以下要求:1、火箭发动机绪论:两次能量转换、固体火箭发动机的结构、固体和液体火箭发动机的优缺点。
2、火箭发动机的工作参数:推力、推力系数、质量流率、特征速度、总冲、比冲的概念;高度和膨胀状态对推力系数的影响;最大推力产生的条件;相关的计算。
3、固体推进剂:固体推进剂的分类;推进剂的主要成分和作用;推进剂的加工工艺;衡量推进剂的能量标准;双基推进剂的贮存安定性问题。
4、火箭发动机燃烧室热力计算:燃烧室热力计算的内容、模型和计算步骤;固体推进剂的假定化学式;GIBBS自由能法和布莱克林法的计算思路;输运过程。
5、喷管流动过程:冻结流动和平衡流动;喷管流动的热力计算方法;发动机冲量系数;喷管流动所包含的损失;二相流损失的概念和形成喷管二相流损失的原因。
6、固体推进剂的燃烧:双基推进剂的多阶段模型;复合推进剂的多火焰模型;燃速的温度敏感系数;侵蚀燃烧概念、机理以及对发动机性能产生的影响;压强对双基和复合推进剂燃烧的影响机理;异常燃烧;平台燃烧;平台推进剂。
7、固体火箭发动机内弹道计算:平衡压强的概念、公式及计算;燃烧室压强的稳定性条件;燃喉比K、喉通比J和波别多诺斯采夫准则的概念和物理意义;燃气流动和侵蚀燃烧对平衡压强的影响;一维内弹道的计算方法;点火延迟。
8、液体火箭发动机系统:开式循环和闭式循环。
9、液体推进剂:常用的液体推进剂,化学当量比和余氧系数。
10、推力室工作过程:推力室的气动区域划分;燃烧准备过程;雾化作用和雾化质量的影响因素;韦伯数;平均直径。
11、推力室的冷却:再生冷却;表面沸腾换热。
二、参考书目1、李宜敏等,《固体火箭发动机原理》,北京航空航天大学出版社,19912、狄连顺等,《火箭发动机原理》,国防科技大学讲义3、刘国球主编,《液体火箭发动机原理》,宇航出版社(导弹与航天丛书),1993火箭发动机喷管维基百科,自由的百科全书渐缩渐阔喷管,颜色从绿到红显示流速近似增长趋势火箭发动机喷管是用于火箭发动机的一种(通常是渐缩渐阔喷管)推力喷管。
一、引言固体火箭发动机内弹道学方丁酉,是一门深奥而又具有重要意义的科学。
固体火箭发动机是航天领域中不可或缺的一部分,其内弹道学方丁酉的研究对于提高火箭发动机的性能和可靠性具有重要意义。
在本文中,将深入探讨固体火箭发动机内弹道学方丁酉的重要性、原理和应用。
二、固体火箭发动机内弹道学理论的重要性固体火箭发动机内弹道学方丁酉,是对固体火箭发动机内部燃烧过程的运动状态、燃烧特性、瞬态过程等进行研究的学科。
通过对固体火箭发动机内弹道学方丁酉的研究,可以深入了解燃烧室内各种参数的变化规律,确定燃烧室内流场的性质,以及改善发动机的设计和性能等方面提供重要参考。
固体火箭发动机内弹道学方丁酉的研究对提高火箭发动机的推进效率、降低燃料消耗、提高火箭发射成功率等具有重要意义。
通过对固体火箭发动机内弹道学方丁酉的研究,可以进一步提高火箭的响应速度和控制精度,提高火箭的战场生存能力和作战效能。
固体火箭发动机内弹道学方丁酉的研究内容主要包括燃烧室内燃气运动的多相流动、燃烧过程的热力学性质、燃烧产物的组成及其对流场和燃烧室壁面的影响等。
通过对这些内容的研究,可以从微观和宏观两个层面全面了解固体火箭发动机内弹道学方丁酉的运行机理,进而进行针对性的改进和应用。
固体火箭发动机内弹道学方丁酉的原理在航天领域中有着广泛的应用。
在燃烧室内燃气运动的多相流动方面,可以通过优化燃烧室的结构和燃烧室内部的燃烧过程,提高火箭的推进效率;在燃烧产物的组成及其对流场和燃烧室壁面的影响方面,可以减少火箭发动机的燃料消耗,提高火箭的响应速度和控制精度等。
四、固体火箭发动机内弹道学方丁酉的个人观点对于固体火箭发动机内弹道学方丁酉这一学科,我个人认为其研究的深入和广泛应用,对于航天领域的发展和火箭技术的提升有着极其重要的作用。
只有通过对固体火箭发动机内弹道学方丁酉的深入研究,才能够更好地理解火箭发动机内部燃烧过程的运动状态、燃烧特性、瞬态过程等,从而更好地改进火箭的设计和性能,提高火箭的推进效率、降低燃料消耗、提高火箭发射成功率等。
双燃速固体火箭发动机内弹道计算方法
林小树;王宝山
【期刊名称】《固体火箭技术》
【年(卷),期】1991(000)004
【总页数】7页(P12-18)
【作者】林小树;王宝山
【作者单位】不详;不详
【正文语种】中文
【中图分类】V435.11
【相关文献】
1.HTPB复合推进剂燃速对固体火箭发动机内弹道性能影响 [J], 徐学文;邓会光;牟俊林;单鑫
2.嵌金属丝串装双燃速药柱燃烧分析及发动机内弹道计算 [J], 张明;熊波;涂四华;曹晓利
3.固体火箭发动机径向泄压过程中燃速对内弹道预示的影响 [J], 刘春红;余贞勇;胡乃合
4.串联双燃速固体火箭发动机一维内弹道计算 [J], 鲍福廷;赵飞;李进贤
5.双燃速固体火箭发动机零维两相内弹道方程及其工程算法 [J], 李宏顺;孙兵
因版权原因,仅展示原文概要,查看原文内容请购买。
!计?算?星?型æ装痢?药?的?几?何?尺?寸?!参?数簓符?号?说μ明é!-----------------------------------------------------------------------------------!n表括?示?星?角?数簓,num表括?示?将?推?进?剂á沿?肉╝厚?方?向ç分?为a几?等台?分?,m表括?示?选?择?压1力 值μ大洙?小?!d表括?示?外猘径?,len表括?示?长¤度â,thet表括?示?星?边?夹D角?,epsilon表括?示?角?度â系μ数簓!r表括?示?过y度â圆2弧?半?径?,r1表括?示?星?角?圆2弧?半?径?,R0表括?示?通 ?用?气?体?常£数簓!l表括?示?药?柱ê的?特?征é长¤度â,y0表括?示?初?始?特?征é参?数簓,y1表括?示?燃?尽?特?征é参?数簓!I0表括?示?总哩?冲?,F表括?示?推?力 ,Poc表括?示?燃?烧?室酣?的?工¤作痢?压1力!Isp表括?示?比括?冲?,density_p表括?示?密ì度â,k表括?示?比括?热â?比括?rspeed表括?示?燃?速ê,?pn表括?示?压1力 指?数簓!mpeff表括?示?有瓺效§装痢?药?量?,Cf表括?示?推?力 系μ数簓,Ctz表括?示?特?征é速ê度â,At表括?示?喉æ部?面?积y,a表括?示?燃?速ê系μ数簓!S表括?示?平?均ê燃?烧?面?积y,e1表括?示?平?均ê肉╝厚?,epsilon1表括?示?减?面?比括?epsilon2表括?示?增?面?比括?!foresmax表括?示?前©段?最?大洙?相à对?周ì边?长¤,backsmax表括?示?后è段?最?大洙?相à对?周ì边?长¤!smin表括?示?最?小?相à对?周ì边?长¤,thet1表括?示?周ì边?长¤取?得?最?小?值μ时骸?的?星?边?夹D角?!Ap表括?示?初?始?通 ?气?面?积y,J表括?示?初?始?通 ?气?参?量?,eta表括?示?装痢?填?系μ数簓,Af表括?示?剩骸?药?面?积y,etaf表括?示?剩骸?药?系μ数簓!de表括?示?每?一?份 肉╝厚?的?长¤度â,Sa表括?示?燃?烧?面?积y数簓组哩?Apa表括?示?通 ?气?面?积y数簓组哩?!------------------------------------------------------------------------------------program mainimplicit nonereal(kind=8),parameter :: Pi=3.14integer :: n,num,i,mreal(kind=8) :: d,len,thet,epsilon,r,r1real(kind=8) :: l,y0,y1real(kind=8) :: I0,F,Poc,Pe,R0real(kind=8) :: Isp,density_p,k,rspeed,Pnreal(kind=8) :: mpeff,Cf,Ctz,At,areal(kind=8) :: S,e1,epsilon1,epsilon2real(kind=8) :: foresmax,backsmax,smin,thet1real(kind=8) :: Ap,J,eta,Af,etafreal(kind=8) :: error,dereal(kind=8),allocatable :: Sa(:),Apa(:)!读á入?所ê需â要癮所ê用?参?数簓值μopen(3,file="design_parameter.dat")read(3,*) I0 !总哩?冲?read(3,*) F !推?力read(3,*) Poc !燃?烧?室酣?压1力read(3,*) Isp !比括?冲?read(3,*) density_p !推?进?剂á的?密ì度âread(3,*) k !比括?热â?比括?read(3,*) a !燃?速ê系μ数簓read(3,*) Ctz !读á取?特?征é速ê度âCtzread(3,*) Pn !压1力 指?数簓read(3,*) Pe !读á取?喷?管ì出?口ë的?压1力 Peread(3,*) R0 !读á取?通 ?用?气?体?常£数簓R0read(3,*) d,r !读á取?装痢?药?直ª径?d和æ过y度â圆2弧?半?径?rread(3,*) epsilon2 !读á取?增?面?比括╡psilon2read(3,*) r1 !读á取?星?角?圆2弧?半?径?r1read(3,*) thet1 !试?取?周ì边?长¤取?得?最?小?值μ时骸?的?星?边?夹D角?thet1read(3,*) thet !试?取?初?始?时骸?的?星?边?夹D角?thetread(3,*) n !读á取?星?角?数簓n(辍?,4,5,6,7,8)?read(3,*) epsilon !试?取?角?度â系μ数簓epsilonread(3,*) num !读á取?等台?分?肉╝厚?的?等台?分?数簓numread(3,*) m !m=1表括?示?最?小?压1力 给?定¨,m=2表括?示?最?大洙?压1力 给?定¨,m=0表括?示?平?均ê压1力 给?定¨close(3)allocate(Sa(0:num),Apa(0:num))!根ê据Y规?定¨的?总哩?冲?计?算?有瓺效§装痢?药?量?mpeffmpeff=1.02*I0/Isp!计?算?推?力 系μ数簓和æ喉æ部?面?积yCf=sqrt(k)*(2/(k+1))**((k+1)/(k-1)/2)*&sqrt(2*k*(1-(Pe/Poc)**((k-1)/k))/(k-1))At=F/Cf/(Poc*101325.0)!计?算?平?均ê肉╝厚?e1和æ计?算?特?征é长¤度â和æ平?均ê燃?烧?面?积yS!若?给?定¨的?是?最?大洙?压1力 则ç需â根ê据Y增?面?比括?计?算?最?小?燃?面?再ê计?算?平?均ê燃?面?值μ!y1一?般?取?值μ在ë1附?近ì,(0.8-1.2)if(m==0) then!平?均ê压1力 给?定¨S=At*(Poc*101325.0)**(1-Pn)/(Ctz*density_p*a)e1=mpeff/(density_p*S)else if(m==1) then!最?小?压1力 给?定¨S=At*(Poc*101325.0)**(1-Pn)/(Ctz*density_p*a)S=(epsilon2+1.0)*S/2.0e1=mpeff/(density_p*S)else!最?大洙?压1力 给?定¨S=At*(Poc*101325.0)**(1-Pn)/(Ctz*density_p*a)S=(1.0/epsilon2+1.0)*S/2.0e1=mpeff/(density_p*S)end ifl=d/2-e1-ry0=r/ly1=(e1+r)/l!根ê据Yepsilon2选?择?角?度â系μ数簓epsilon!计?算?取?得?最?小?周ì长¤时骸?的?thet1do while(.true.)error=thet1/2+cotan(thet1/2)-Pi/n-Pi/2if(error>=0.0001) thenthet1=thet1+0.00001else if(error<=-0.0001) thenthet1=thet1-0.00001elseexitend ifend do!计?算?角?度â系μ数簓epsilon的?准?确í?值μdo while(.true.)backsmax=2*n*((1-epsilon)*Pi/n+y1*(Pi/n+asin(sin(epsilon*Pi/n)/y1))) smin=2*n*(sin(epsilon*Pi/n)/sin(thet1/2)+(1-epsilon)*Pi/n) if(backSmax/Smin>epsilon2) thenepsilon=epsilon+0.001elseexitend ifend do!根ê据Y减?面?比括╡psilon1,?计?算?thetepsilon1=1/epsilon2foresmax=smin/epsilon1do while(.true.)error=2*n*(sin(epsilon*Pi/n)/sin(thet/2)+(1-epsilon)*Pi/n+&(r1+r)*(Pi/n+Pi/2-thet/2-cos(thet/2)/sin(thet/2))/l)-foresmax if(error>=0.0001) thenthet=thet+0.00001else if(error<=-0.0001) thenthet=thet-0.00001elseexitend ifend do!计?算?初?始?通 ?气?面?积y,?通 ?气?参?量?,?装痢?填?系μ数簓,药?柱ê长¤度âAp=(n*((1-epsilon)*Pi/n+sin(epsilon*Pi/n)*(cos(epsilon*Pi/n)-&sin(epsilon*Pi/n)*cotan(thet/2)))+2*n*r*(sin(epsilon*Pi/n)/sin(thet/2)+&(1-epsilon)*Pi/n)/l+n*r**2*(Pi/n+Pi/2-thet/2-cotan(thet/2))/l**2+&n*r1**2*(thet/2+cotan(thet/2)-Pi/2)/l**2)*l**2J=At/Apeta=4*(Pi*d**2/4-Ap)/(Pi*d**2)Af=(epsilon*Pi*(1+y1)**2-n*(sin(epsilon*Pi/n)*(sqrt(y1**2-sin(epsilon*Pi/n)**2)+& cos(epsilon*Pi/n)))-n*y1**2*(epsilon*Pi/n+asin(sin(epsilon*Pi/n)/y1)))*l**2etaf=4*Af/(pi*d**2)len=mpeff/density_p/(Pi*d**2/4-Ap-Af)!计?算?推?进?剂á的?燃?面?变?化ˉ规?律ã并¢输?出?结á果?de=e1/numopen(10,file="export_burnS.dat")open(20,file="export_Ap.dat")do i=0,num,1if((i*de)<=r1) thenSa(i)=2*n*(sin(epsilon*Pi/n)/sin(thet/2)+(1-epsilon)*Pi/n+&(r1+r)*(Pi/n+Pi/2-thet/2-cotan(thet/2))/l-(r1-i*de)*Pi/n/l)*l*len Apa(i)=(n*((1-epsilon)*Pi/n+sin(epsilon*Pi/n)*(cos(epsilon*Pi/n)-sin(epsilon*Pi/n)* cotan(thet/2)))+&2*n*(r+i*de)*(sin(epsilon*Pi/n)/sin(thet/2)+(1-epsilon)*Pi/n)/l+&n*(r+i*de)**2*(Pi/n+Pi/2-thet/2-cotan(thet/2))/l**2+n*(r1-i*de)**2*(thet/2+cotan(thet/2 )-Pi/2)/l**2)*l**2else if((i*de)>r1.and.(i*de)<=(l*sin(epsilon*Pi/n)/cos(thet/2)-r)) thenSa(i)=2*n*(sin(epsilon*Pi/n)/sin(thet/2)+(1-epsilon)*Pi/n+&(i*de+r)*(Pi/n+Pi/2-thet/2-cotan(thet/2))/l)*l*lenApa(i)=(n*((1-epsilon)*Pi/n+sin(epsilon*Pi/n)*(cos(epsilon*Pi/n)-sin(epsilon*Pi/n)* cotan(thet/2)))+&2*n*(r+i*de)*(sin(epsilon*Pi/n)/sin(thet/2)+(1-epsilon)*Pi/n)/l+&n*(r+i*de)**2*(Pi/n+Pi/2-thet/2-cotan(thet/2))/l**2)*l**2else if((i*de)>(l*sin(epsilon*Pi/n)/cos(thet/2)-r).and.(i*de)<=e1) thenSa(i)=2*n*((1-epsilon)*Pi/n+(r+i*de)*(Pi/n+asin(l*sin(epsilon*Pi/n)/(i*de+r)))/l)*l *lenApa(i)=n*((1-epsilon)*Pi*(1+(r+i*de)/l)**2/n+sin(epsilon*Pi/n)*(sqrt((r+i*de)**2/l* *2-&sin(epsilon*Pi/n)**2)+cos(epsilon*Pi/n))+(r+i*de)**2*(epsilon*Pi/n+&asin(l*sin(epsilon*Pi/n)/(r+i*de)))/l**2)*l**2end ifwrite(10,"(f10.5,2X,f15.5)") i*de,Sa(i)write(20,"(f10.5,2X,f15.5)") i*de,Apa(i)end doclose(10)close(20)!调獭?用?子哩?程å序ç计?算?装痢?药?内ë弹獭?道台?曲ë线?call internal_ballistics0(num,de,Sa,Apa,len,a,pn,Ctz,At,k,density_p,Isp,Pe)!输?出?星?型æ装痢?药?的?几?何?参?数簓open(30,file="export_star_geometry.dat")write(30,"(A6,f11.5,A2)") "mpeff=",mpeff,"Kg"write(30,"(A2,f8.5,A2)") "D=",d,"m"write(30,"(A2,f8.5,A2)") "L=",len,"m"write(30,"(A2,I2)") "n=",nwrite(30,"(A3,f8.5)") "θâ=",thetwrite(30,"(A3,f7.5)") "ε?=",epsilonwrite(30,"(A2,f7.5,A2)") "r=",r,"m"write(30,"(A3,f7.5,A2)") "r1=",r1,"m"write(30,"(A3,f8.5,A2)") "e1=",e1,"m"write(30,"(A3,f10.5,A2)") "Ap=",Ap,"㎡O"write(30,"(A2,f10.5)") "J=",Jwrite(30,"(A3,f7.5)") "η?=",etawrite(30,"(A3,f10.5,A2)") "Af=",Af,"㎡O"write(30,"(A4,f10.5)") "η?f=",etafwrite(30,"(A2,f10.5)") "l=",lwrite(30,"(A3,f10.5)") "y0=",y0write(30,"(A3,f10.5)") "y1=",y1close(30)stopend!该?子哩?程å序ç用?于 ?计?算?零?维?变?截?面?燃?烧?装痢?药?的?内ë弹獭?道台?!该?子哩?程å序ç利?用?瞬2时骸?平?衡a法ぁ?计?算?内ë弹獭?道台?!同?时骸?可ã以?计?算?侵?蚀骸?燃?烧?的?影 ?响å!--------------------------------------------------------------------------!Pc_eq表括?示?工¤作痢?段?的?平?衡a压1力 值μ,dPc_eq表括?示?压1力 修T正y值μ,rspeed表括?示?燃?速ê!time表括?示?工¤作痢?段?的?时骸?间?,Toc表括?示?燃?气?温?度â,Roc表括?示?燃?气?气?体?常£数簓,Pig表括?示?点?火e压1力!P1_eq表括?示?起e始?段?的?压1力 值μ,P2_eq表括?示?拖?尾2段?的?压1力 值μ,Cf表括?示?推?力 系μ数簓!time1表括?示?起e始?段?的?时骸?间?,time2表括?示?拖?尾2段?的?时骸?间?,Isp表括?示?理え?论?比括?冲?值μ!Feq表括?示?工¤作痢?段?的?推?力 值μ,F1表括?示?起e始?段?的?推?力 值μ,F2表括?示?拖?尾2段?的?推?力 值μ!Poc表括?示?燃?烧?室酣?压1力 值μ,Pe表括?示?喷?管ì出?口ë压1力!--------------------------------------------------------------------------subroutine internal_ballistics0(num,de,Sa,Apa,len,a,pn,Ctz,At,k,density_p,Isp,Pe) implicit noneinteger,parameter :: n=10integer :: num,i,keyreal(kind=8),intent(in) :: de,len,a,pn,Ctz,At,k,density_preal(kind=8),intent(in) :: Sa(0:num),Apa(0:num),Isp,Pereal(kind=8) :: Pc_eq(0:num),dPc_eq(0:num),rspeed(0:num)real(kind=8) :: time(0:num),Toc,Roc,Feq(0:num),Cfreal(kind=8),allocatable :: P1_eq(:),P2_eq(:),F1(:)real(kind=8),allocatable :: time1(:),time2(:),F2(:)real(kind=8) :: ga,Pigreal(kind=8),external :: funopen(3,file="inter_parameter.dat")read(3,*) key !读á入?key的?值μread(3,*) Pig !读á入?点?火e压1强?值μread(3,*) Toc !读á入?绝?热â?燃?烧?温?度â值μread(3,*) Roc !读á入?燃?气?的?气?体?常£数簓值μallocate(P1_eq(n),F1(n),time1(n))allocate(P2_eq(0:n-1),F2(0:n-1),time2(0:n-1))ga=sqrt(k)*(2/(k+1))**((k+1)/(k-1)/2)Pig=Pig*101325.0!-------------------------------------------------!计?算?工¤作痢?段?的?压1力 和æ时骸?间?值μ!-------------------------------------------------!计?算?各é燃?层?时骸?燃?烧?室酣?的?平?衡a压1力 Pc_eqdo i=0,num,1Pc_eq(i)=(density_p*Ctz*fun(Sa(i),Apa(i),key)*&a*Sa(i)/At)**(1/(1-pn))end do!计?算?各é燃?层?时骸?平?衡a压1力 的?修T正y值μdPc_eqdPc_eq=0.0do i=1,num,1dPc_eq(i)=Pc_eq(i)*(Sa(i)-Sa(i-1))/(Sa(i)*(1-pn))end do!计?算?各é燃?层?的?实害?际ä平?衡a压1力 值μdo i=0,num,1Pc_eq(i)=Pc_eq(i)-Apa(i)*len*fun(Sa(i),Apa(i),key)*&a*dPc_eq(i)/(de*Ctz*ga*ga*At)end do!计?算?各é燃?层?时骸?的?推?进?剂á燃?速ê值μrspeeddo i=0,num,1rspeed(i)=fun(Sa(i),Apa(i),key)*a*Pc_eq(i)**pnend do!计?算?各é燃?层?时骸?的?推?进?剂á的?推?力 值μFeqdo i=0,num,1Cf=0.0Cf=ga*sqrt(2*k*(1-(101325.0*Pe/Pc_eq(i))**((k-1)/k))/(k-1))Feq(i)=Cf*Pc_eq(i)*Atend do!计?算?燃?到?各é层?需â要癮的?时骸?间?值μtimetime=0.0do i=1,num,1time(i)=time(i-1)+de*2.0/(rspeed(i)+rspeed(i-1))end do!-----------------------------------------------------------!计?算?起e始?段?的?压1力 值μ、¢推?力 和æ时骸?间?!-----------------------------------------------------------do i=1,n,1P1_eq(i)=((Pc_eq(0)-Pig)/n)*(i-1)+Pigend dodo i=1,n,1Cf=0.0Cf=ga*sqrt(2*k*(1-(101325.0*Pe/P1_eq(i))**((k-1)/k))/(k-1))F1(i)=Cf*P1_eq(i)*Atend dodo i=1,n,1time1(i)=Apa(0)*len/(Ctz*ga*ga*At*(1-pn))*&log((Pc_eq(0)-Pig)/(Pc_eq(0)-P1_eq(i)))end do!-----------------------------------------------------------!计?算?加è上?起e始?段?时骸?工¤作痢?段?的?时骸?间?timedo i=0,num,1time(i)=time1(n)+time(i)end do!-----------------------------------------------------------!计?算?拖?尾2段?的?压1力 和æ时骸?间?值μ(按恪?照?绝?热â?膨ç胀æ过y程å计?算?,不?考?虑?有瓺剩骸?药?作痢?用?)!-----------------------------------------------------------do i=0,n-1,1P2_eq(i)=Pc_eq(num)-i*(Pc_eq(num)-101325.0)/(n-1) end dodo i=0,n-1,1Cf=0.0Cf=ga*sqrt(2*k*(1-(101325.0*Pe/P2_eq(i))**((k-1)/k))/(k-1)) F2(i)=Cf*P2_eq(i)*Atend dodo i=0,n-1,1time2(i)=time(num)+2.0*Apa(num)*len*&((P2_eq(i)/Pc_eq(num))**((1-k)/(2.0*k))-1.0)/&((k-1)*ga*At*sqrt(Roc*Toc))end do!将?平?衡a压1力 转羇化ˉ为a物?理え?大洙?气?压1的?形?式?do i=1,n,1P1_eq(i)=P1_eq(i)/101325.0end dodo i=0,num,1Pc_eq(i)=Pc_eq(i)/101325.0end dodo i=0,n-1,1P2_eq(i)=P2_eq(i)/101325.0end do!输?出?压1力 值μopen(10,file="export_inter_P.dat")do i=1,num+n+n-1,1if(i<=n-1) thenwrite(10,"(f15.5,2x,f15.5)") time1(i),P1_eq(i)else if(i>=n.and.i<num+n) thenwrite(10,"(f15.5,2x,f15.5)") time(i-n),Pc_eq(i-n) elsewrite(10,"(f15.5,2x,f15.5)") time2(i-num-n),P2_eq(i-num-n) end ifend doclose(10)!输?出?推?力 值μopen(20,file="export_inter_F.dat")do i=1,num+n+n-1,1if(i<=n-1) thenwrite(20,"(f15.5,2x,f15.5)") time1(i),F1(i)else if(i>=n.and.i<num+n) thenwrite(20,"(f15.5,2x,f15.5)") time(i-n),Feq(i-n)elsewrite(20,"(f15.5,2x,f15.5)") time2(i-num-n),F2(i-num-n) end ifend doclose(20)returnend subroutine!计?算?侵?蚀骸?比括?的?子哩?函ˉ数簓function fun(Sa,Apa,key)implicit noneinteger :: keyreal(kind=8) :: Sa,Apareal(kind=8) :: funif(key==1) thenif(Sa/Apa<=72.9) thenfun=1.0elsefun=1.3128-1.3249e-2*Sa/Apa+&1.5527e-4*(Sa/Apa)**2-4.3868e-7*(Sa/Apa)**3end ifelsefun=1.0end ifreturnend。