有限差分法计算固体火箭发动机内弹道

合集下载

固体火箭发动机内弹道学 方丁酉

固体火箭发动机内弹道学 方丁酉

固体火箭发动机内弹道学方丁酉固体火箭发动机内弹道学方丁酉近年来,随着航天事业的蓬勃发展,固体火箭发动机内弹道学成为越来越受关注的领域。

方丁酉,中国工程院院士、火箭技术专家,曾在这一领域做出了卓越的贡献。

本文将从简单到复杂、由浅入深地探讨固体火箭发动机内弹道学,以帮助读者全面、深入地理解这一话题。

一、固体火箭发动机内弹道学的概念固体火箭发动机内弹道学是研究固体火箭发动机内燃烧过程、燃料燃烧特性、燃烧产物排放、工作环境等方面的学科。

方丁酉指出,固体火箭发动机内弹道学是固体火箭技术中的重要基础理论,对于提高固体火箭发动机的性能、可靠性和运载能力具有重要意义。

二、固体火箭发动机内弹道学的理论基础在固体火箭发动机内弹道学的研究中,燃烧动力学是重要的理论基础之一。

燃烧动力学研究了燃料在燃烧过程中的变化规律,以及燃烧反应对火箭发动机内部气体流动和压力变化的影响。

燃烧产物排放和燃烧室内部气体动力学也是固体火箭发动机内弹道学的重要内容之一。

研究这些理论基础可以帮助我们更好地理解固体火箭发动机内部的工作原理和特性。

三、固体火箭发动机内弹道学的关键技术在固体火箭发动机内弹道学研究中,燃烧稳定性和效率是两个关键技术。

燃烧稳定性是指在固体火箭发动机工作过程中保持燃烧的稳定性,避免出现燃烧不均匀或燃烧失稳等问题。

而燃烧效率则是指在燃烧过程中尽可能提高燃料的利用率,减少燃料的浪费。

方丁酉在固体火箭发动机内弹道学的研究中,提出了一系列有效的技术方案,使固体火箭发动机在燃烧稳定性和效率方面取得了显著的进展。

四、固体火箭发动机内弹道学的应用前景固体火箭发动机内弹道学的研究成果已经在我国的航天事业中得到了广泛的应用。

在长征系列火箭、嫦娥探月工程等多个航天工程中,固体火箭发动机内弹道学的研究成果为提高火箭的性能和可靠性做出了重要贡献。

未来,随着我国航天事业的不断发展,固体火箭发动机内弹道学将继续发挥重要作用,推动我国航天事业迈向新的高度。

固体火箭发动机工作末期的内流场数值计算

固体火箭发动机工作末期的内流场数值计算

固体火箭发动机工作末期的内流场数值计算张俊; 高天宇; 高璞清; 王刚【期刊名称】《《弹箭与制导学报》》【年(卷),期】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尾流场复燃进行了数值模拟和实验研究,得到了铝粉引入、粒径和燃烧室压强对羽流温度的影响规律,并与地面试车结果进行了对比。

固体火箭发动机燃烧室与内弹道计算

固体火箭发动机燃烧室与内弹道计算

t
x
x
.
(V

V x
dx)dt

pr
Ab x
dxdt
m
整理后有:
t
(
A)

x
(
AV
)


pr
Ab x
燃烧面积
.. m+dm
. dm
dm


p
r
Ab x
dx
(2)动量方程
根据动量守恒:在dt时间内,微元体中动量的变化量=燃气 流动迁移在微元体内产生的动量增量+作用于两截面上的总压力 冲量+作用于微元体侧表面上压力冲量在x轴上的分量,即

x
(Ec

V2 2
)dx

dt

x
(
pAV
)dxdt


pr
Ab x
dxdt

Ip
整理后有:
t

A(Ec

V2 2
)

x

AV
(Ic

V2 2
)

prI
p
Ab x
Ec : 单位质量燃烧产物的内能(化学内能+热内能) Ic : 单位质量燃烧产物的总焓
1. 流动特点
燃烧室中的燃气流动具有以下特点: 燃烧室中推进剂装药不断燃烧,产生新的燃气加入主流,因此燃 气在燃烧室中的流动是一个有质量加入的流动过程; 在推进剂装药燃烧过程中,燃气的通道面积不断增大,故燃气的 流动参数是位置与时间的函数,因而是非定常流动; 燃气流过形状复杂的通道或流线变化剧烈时,将产生一定的能量 损失; 燃气的流动特性与推进剂的燃烧特性密切相关。例如燃气的压强 和流速影响推进剂的燃速,而燃速又反过来影响燃气压强和流速; 由此可见,在发动机工作过程中,燃气在燃烧室中的流动中极其 复杂的。为了研究方便,特作如下假设: 推进剂燃烧在装药燃烧表面上瞬时完成,燃气的化学组分和热力 性质均匀一致,并沿燃烧表面的外法线方向注入通道。 燃气为完全气体,服从完全气体状态方程,而且比热不变。 燃气在装药通道中作一维流动。 燃气与外界无热和功的交换。

基于Pro/E软件进行固体火箭发动机内弹道计算的方法初探

基于Pro/E软件进行固体火箭发动机内弹道计算的方法初探

基于Pro/E软件进行固体火箭发动机内弹道计算的方法初探作者:王磊代义李宏来源:《中国新技术新产品》2009年第10期摘要:固体火箭发动机内弹道计算给出的推力、质量流量随时间变化的曲线一直是导弹或卫星外弹道设计的计算依据。

为适应需求,固体火箭发动机装药的几何形状需要反复调整,复杂的几何形状使内弹道计算成为一项繁琐的工作。

本文利用Pro/E软件强大的三维建模能力,通过参数化设计模拟发动机燃烧的全过程,编制简单程序实现发动机零维内弹道计算,为繁琐的计算提供了一条便捷的途径。

关键词:固体火箭发动机;内弹道计算;Pro/E软件1 引言固体火箭发动机是一种采用固体推进剂的化学火箭动力装置,在航天技术中有着广泛的应用。

内弹道计算是固体火箭发动机设计的一项重要内容,它提供的推力、流量等性能参数是导弹总体进行射程计算、散布分析及导弹姿态控制的重要依据[1]。

在满足内弹道特性和保证药柱结构完整性的前提下,设计出具有较高装填分数的药柱对于提高发动机性能具有重要的意义。

药柱几何形状的演变过程,是从简单管状药柱演变到贴壁浇注内孔(星形、车轮形等)燃烧药柱,再到具有较高装填特性的翼柱、锥柱等三维药柱。

内弹道计算的关键在于得出药柱燃面随时间的变化曲线。

有着简单几何形状的药柱,计算燃面都有较为成熟的方法。

为了探索三维药柱燃面的计算方法,国内外有关学者开展了许多工作。

目前,国外内弹道计算最为著名的方法是美国NASA的SPP法,国内较常用的是通用坐标法、有限元素法和边界坐标法。

国内的这三种方法均为数值法,由于使用原函数对复杂药柱进行精确定义很困难,通常难以精确表示燃烧过程中十分复杂的图形,以及连接各部分药柱圆角的复杂变化,所以内弹道计算的精度较差。

同时,它们的计算结果对药柱网格划分的依赖性很强,网格划分不合适,所得结果也不正确[2]。

这些方法计算得到的燃面波动性也较大,药柱初始设计的修改很复杂,数据前后处理也抽象复杂。

这些因素导致内弹道的计算成为一项繁琐复杂的工作。

固体火箭发动机瞬变参数辨识

固体火箭发动机瞬变参数辨识

固体火箭发动机瞬变参数辨识
方丁酉
【期刊名称】《航空动力学报》
【年(卷),期】1995(10)1
【摘要】叙述了固体火箭发动机参数辨识的方法,以反喷管打开后瞬变过程中推
进剂瞬变燃速、打开函数和喷喉收缩因子的辨识为例,说明了瞬变参数辨识的技术。

辨识采用的数学模型是零维不定常内弹道计算方程组,这是一个非线性系统的参数辨识问题。

优化方法采用阻尼最小二乘法。

给出了算例,经参数辨识准度分析,辨识结果是合理的。

【总页数】4页(P67-70)
【关键词】固体推进剂;火箭发动机;参数辨识
【作者】方丁酉
【作者单位】国防科技大学
【正文语种】中文
【中图分类】V448.153;V435.11
【相关文献】
1.基于遗传算法的固体火箭发动机参数辨识 [J], 樊超;张为华
2.固体火箭发动机喷管喉径瞬变值的计算和预示 [J], 余贞勇
3.固体火箭发动机参数辨识软件关键技术研究 [J], 魏瀚;鲍福廷;蔡强;刘旸
4.固体火箭发动机反喷管打开后的瞬变参数辩识研究 [J], 杨涛;张为华;代绪恒;方
丁酉
5.固体火箭发动机稳态燃速二维模型参数最优化辨识 [J], 李晓斌;张为华;王中伟因版权原因,仅展示原文概要,查看原文内容请购买。

固体火箭发动机装药临界弹性模量的计算

固体火箭发动机装药临界弹性模量的计算

固体火箭发动机装药临界弹性模量的计算文章题目:固体火箭发动机装药临界弹性模量的计算摘要:本文详细描述了固体火箭发动机装药临界弹性模量的计算方法。

首先,本文介绍了国内外固体火箭发动机技术发展现状,并简要分析了固体火箭发动机装药结构影响安全性和可靠性的关键因素。

其次,本文依据国际上公认的标准测试方法,以及无元素数值分析、有限单元分析软件模拟计算,测试计算固体火箭发动机装药临界弹性模量。

最后,本文利用TEST软件对所测试计算的结果进行验证,并给出对前人研究的改进建议。

关键词:固体火箭发动机;装药;临界弹性模量;数值分析;有限单元分析固体火箭发动机装药临界弹性模量的计算方法对固体火箭发动机安全性和可靠性有着重要的意义。

固体火箭发动机装药临界弹性模量的计算方法可以帮助研究者们准确地确定火箭发动机装药的各项质量指标,从而更好地控制固体火箭发动机装药的性能。

例如,通过使用精确的固体火箭发动机装药临界弹性模量,可以准确地计算推力、发动机总极限压力和器件的最大使用量。

此外,临界模量的计算方法还可以准确地预测包括热推力、阻力和持续时间等在内的复杂参数,以便在设计固体火箭发动机装药时尽量节省成本、提升性能和安全性。

由于固体火箭发动机装药临界弹性模量的计算方法是一个复杂的过程,因此研究者们可以采用数值分析、有限单元分析以及无元素分析等技术来提高计算的准确性。

例如,在数值分析中,研究者们可以精确计算弹性模量,同时也可以控制变形量,从而优化固体火箭发动机装药的可靠性。

在有限单元分析中,研究者们可以定义节点的质量、位移、温度和压力等参数,而在无元素分析中,研究者们可以控制风扇静压压力或流速以及装药以及固体火箭发动机腔体变形量等参数。

固体火箭发动机装药临界弹性模量的计算方法对确保固体火箭发动机的安全性和可靠性起着重要作用。

此外,其已经在多种国内外的火箭发动机上得到广泛的应用,也为固体火箭发动机的技术发展提供了重要的参考依据。

因此,借助固体火箭发动机装药临界弹性模量的计算方法,研究者们可以更好地控制火箭发动机的性能,从而提高安全性和可靠性。

弹道仿真中的数值计算方法研究

弹道仿真中的数值计算方法研究

弹道仿真中的数值计算方法研究
弹道仿真中的数值计算方法研究是一门比较复杂的学科,包括了实际的物理模型、数值计算方法和实验测试等。

它主要用于研究弹体在飞行过程中受到的力和偏移,以及其飞行轨迹。

在弹道仿真中,重力力、空气阻力以及其他相关因素都会影响弹体的运动,而这些因素也都必须通过数值计算来研究和模拟。

因此,数值计算方法是弹道仿真中不可或缺的部分,对于弹道仿真的精度有着重要的影响。

在弹道仿真中,常用的数值计算方法主要有两种,分别是有限差分法和有限元法。

有限差分法是将物理模型的微分方程表示为一系列的差分方程,并使用时间步长和空间步长来解决。

有限元法是将物理模型的微分方程表示为一系列的有限元方程,并使用有限元单元来解决。

在实际的弹道仿真中,数值计算方法的选择是非常重要的。

根据物理模型的不同,可以选择有限差分法或有限元法,以便尽可能准确地模拟弹体的运动。

此外,在弹道仿真中,还需要考虑时间步长和空间步长的选择,以及如何处理弹体碰撞、曲面反射等情况。

此外,在研究弹道仿真数值计算方法时,还需要考虑数值计算方法的可靠性和准确性。

例如,可以使用数值实
验或者实际试验来检验数值计算方法的准确性,也可以使用不同的数值计算方法来对比模拟结果。

总之,弹道仿真数值计算方法研究是一项复杂的学科,涉及到了物理模型、数值计算方法、实验测试以及可靠性和准确性等多方面的知识。

在实际的弹道仿真中,要选择合适的数值计算方法,并加以优化,以便尽可能准确地模拟弹体的运动。

《火箭发动机》 7 内弹道

《火箭发动机》   7 内弹道

1 1 n
M
1 1 n
1 1 n 1 1 M km 1 n p RT0
当Peq较小时,如Peq=9.8MPa时,可取ε=0,则此时有: Peq M
1 1 n
2. 影响平衡压强的因素: 1 * 从平衡压强的表达式 Peq 1- C p aKN ( æ ) / 1-n 可以看到:当 处于理想状态(即流量修正系数ψ=1、热损失修正系数χ=1与ε=0)时, 影响平衡压强的因素主要有两方面:一方面是推进剂的特性,如密度、 特征速度、燃速特性与压强指数;另一方面是发动机几何设计参数,如 面喉比等。 (1)推进剂特性对平衡压强的影响 推进剂特性对平衡压强有着决定性的影响。由于推进剂的种类很多, 设计中可根据要求选择推进剂,确定相应的平衡压强。例如,就常用的 推进剂而言,其密度ρp约为1600-1800kg/m3,其特征速度C*约为12001600m/s,其燃速则差别更大,速燃推进剂可高达每秒几十毫米,缓燃 推进剂只有每秒几毫米,甚至每秒1毫米。所有这些数据都直接影响发 动机的平衡压强。
在发动机实际工作过程中,燃气密度ρ远小于装药密度ρp, 因此,可忽略填充量,故微分方程又可简化为:
Vg dp mb mt RT0 dt
式中 其中
mb p Ab r p Ab apn ()
为沿装药全长的平均侵蚀比。
pAt pAt C* RT0
根据质量守恒原理,燃烧室内燃气生成率 mb 与燃气通过喷管 排出的质量流率 mt 之差应等于燃烧室内燃气质量变化率,即:
dmr m b mt dt
p : 推进剂装药密度
Ab : 装药燃烧面积
m b p rAb 其中: mr Vg
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

!计?算?星?型í装痢?药?的?几?何?尺?寸?!参?数簓符?号?说μ明÷!-----------------------------------------------------------------------------------!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)-foresmaxif(error>=0.0001)thenthet=thet+0.00001else if(error<=-0.0001)thenthet=thet-0.00001elseexitend 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**2write(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)!调獭?用?子哩?程ì序ò计?算?装痢?药?内ú弹獭?道台?曲ú线?callinternal_ballistics0(d,len,e1,n,thet,epsilon,r,r1,l,a,pn,Ctz,At,k,density_p,mpeff,Isp) !输?出?星?型í装痢?药?的?几?何?参?数簓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!该?子哩?程ì序ò用?于 ?计?算?零?维?变?截?面?燃?烧?装痢?药?的?内ú弹獭?道台?!利?用?有瓺限T差?分?法ぁ?计?算?内ú弹獭?道台?曲ú线?!可é用?于 ?计?算?侵?蚀骸?燃?烧?效§应畖下?的?内ú弹獭?道台?曲ú线?!--------------------------------------------------------------------------!d外猘径?,len长¤度è,e1平?均ù肉╝厚?,n星?角?数簓,thet星?边?夹D角?,epsilon角?度è系μ数簓!r过y度è圆2弧?半?径?,r1星?角?圆2弧?半?径?和íl特?征÷尺?寸?,key表括?示?是?否?考?虑?侵?蚀骸?燃?烧?!density_p推?进?剂á的?密ü度è,k比括?热è?比括?ga系μ数簓,C特?征÷速ù度è,mpeff药?柱ù质ê量?!a速ù度è系μ数簓,pn压1强?指?数簓,At喉í部?面?积y,Pc燃?烧?室酣?的?设Θ?计?压1力 ,Isp 表括?示?理え?论?比括?冲?!dt时骸?间?步?长¤,e燃?层?厚?度è,time时骸?间?,Sa同?一?时骸?刻ì轴á向ò的?各÷节ú点?的?燃?面?,Apa通 ?气?面?积y!Poc各÷节ú点?的?压1力 ,Pe喷?管ü出?口ú压1力 ,P_I压1力 冲?量?,ep侵?蚀骸?比括?!P_av平?均ù压1力 ,F_av平?均ù推?力 ,I0总哩?冲?,Im重?量?比括?冲?Iv体?积y比括?冲?,Cf 推?力 系μ数簓!--------------------------------------------------------------------------subroutineinternal_ballistics0(d,len,e1,n,thet,epsilon,r,r1,l,a,pn,Ctz,At,k,density_p,mpeff,Isp) implicit nonereal,parameter::Pi=3.14integer::n,keyreal(kind=8),intent(in)::d,len,e1,thet,epsilon,r,r1,lreal(kind=8),intent(in)::density_p,k,Ctz,mpeff,Ispreal(kind=8)::a,pn,At,dt,e,time,Sa,Apa,Poc,Pe,P_I,Freal(kind=8)::ep,P_av,F_av,I0,Im,Iv,Cf,gaPe=101325.0P_I=0.0!药?柱ù的?能ü量?特?性?参?量?读á入?open(3,file="inter_parameter.dat")read(3,*)keyread(3,*)dtread(3,*)Pocclose(3)!计?算?点?火e压1强?时骸?的?推?力 值μPoc=Poc*101325.0ga=sqrt(k)*(2/(k+1))**((k+1)/(k-1)/2)Cf=ga*sqrt(2*k*(1-(Pe/Poc)**((k-1)/k))/(k-1))F=Cf*Poc*Ate=0.0time=0.0open(10,file="export_Poc.dat")open(20,file="export_F.dat")write(10,"(f8.5,2X,f10.5)")time,Poc/101325.0write(20,"(f8.5,2X,f15.5)")time,Fdo while(.true.)!计?算?燃?面?和í通 ?气?面?积yif(e<=r1)thenSa=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-e)*Pi/n/l)*l*len Apa=(n*((1-epsilon)*Pi/n+sin(epsilon*Pi/n)*(cos(epsilon*Pi/n)-&sin(epsilon*Pi/n)*cotan(thet/2)))+2*n*(r+e)*(sin(epsilon*Pi/n)/&sin(thet/2)+(1-epsilon)*Pi/n)/l+n*(r+e)**2*(Pi/n+Pi/2-thet/2-&cotan(thet/2))/l**2+n*(r1-e)**2*(thet/2+cotan(thet/2)-Pi/2)/l**2)*l**2else if(e>r1.and.e<=(l*sin(epsilon*Pi/n)/cos(thet/2)-r))thenSa=2*n*(sin(epsilon*Pi/n)/sin(thet/2)+(1-epsilon)*Pi/n+&(e+r)*(Pi/n+Pi/2-thet/2-cotan(thet/2))/l)*l*lenApa=(n*((1-epsilon)*Pi/n+sin(epsilon*Pi/n)*(cos(epsilon*Pi/n)-&sin(epsilon*Pi/n)*cotan(thet/2)))+2*n*(r+e)*(sin(epsilon*Pi/n)/&sin(thet/2)+(1-epsilon)*Pi/n)/l+n*(r+e)**2*(Pi/n+Pi/2-thet/2-cotan(thet/2))/l**2)*l**2 else if(e>(l*sin(epsilon*Pi/n)/cos(thet/2)-r).and.e<=e1)thenSa=2*n*((1-epsilon)*Pi/n+(r+e)*(Pi/n+asin(l*sin(epsilon*Pi/n)/(e+r)))/l)*l*len Apa=n*((1-epsilon)*Pi*(1+(r+e)/l)**2/n+sin(epsilon*Pi/n)*(sqrt((r+e)**2/l**2-& sin(epsilon*Pi/n)**2)+cos(epsilon*Pi/n))+(r+e)**2*&(epsilon*Pi/n+asin(l*sin(epsilon*Pi/n)/(r+e)))/l**2)*l**2elseSa=0.0end if!计?算?侵?蚀骸?比括?if(key==1)thenif(Sa/Apa<=72.9)thenep=1.0elseep=1.3128-1.3249e-2*Sa/Apa+&1.5527e-4*(Sa/Apa)**2-4.3868e-7*(Sa/Apa)**3end ifelseep=1.0end if!采é用?有瓺限T差?分?法ぁ?计?算?压1强?Poc=Poc+(ga*ga*Ctz*Ctz*dt/(Apa*len))*&(density_p*Sa*ep*a*Poc**pn-Poc*At/Ctz)Cf=ga*sqrt(2*k*(1-(Pe/Poc)**((k-1)/k))/(k-1))F=Cf*Poc*Attime=time+dte=e+dt*ep*a*Poc**pnif(e>e1.and.Poc<101325.0)exitwrite(10,"(f8.5,2X,f10.5)")time,Poc/101325.0write(20,"(f8.5,2X,f15.5)")time,FP_I=P_I+Poc*dtend doclose(10)close(20)!循-环·结á束?P_av=P_I/timeCf=ga*sqrt(2*k*(1-(Pe/P_av)**((k-1)/k))/(k-1))F_av=Cf*P_av*AtI0=F_av*timeIm=I0/mpeff/9.81Iv=I0/(Apa*len)!输?出?固ì体?火e箭y发ぁ?动ˉ机ú的?工¤作痢?参?数簓值μopen(30,file="export_propellant.dat")write(30,"('平?均ù压1力 p_av=',f9.5)")p_av/101325.0write(30,"('平?均ù推?力 F_av=',f10.5,1X,'KN')")F_av/1000.0 write(30,"('总哩?冲?I0=',f10.5,1X,'KN.s')")I0/1000.0write(30,"('重?量?比括?冲?Im=',f10.5,1X,'s')")Imwrite(30,"('体?积y比括?冲?Iv=',f10.5,1X,'KN.s/m3')")Iv/1000.0 write(30,"('工¤作痢?时骸?间?time=',f8.5,1X,'s')")timeclose(30)returnend subroutine。

相关文档
最新文档