文号
948315
阅读
607
回复
1
收藏
2
本文包含AI生成内容,并经过作者严格考据审查,作者对AI生成内容的品质和可靠性负责。
基于NASA CEA的液体火箭发动机性能参数计算程序初步设计
2025/12/31
IP:四川
摘要:针对液体火箭发动机性能参数快速计算的需求,本文设计并实现了一款基于 NASA 化学平衡分析程序(Chemical Equilibrium with Applications,CEA)的自动化计算程序。该程序以推力、燃烧室压力、推进剂混合比及喷管扩张比为核心输入参数,结合氧化剂与燃料类型的自主选择功能,可自动完成发动机理论性能参数的求解,包括比冲、燃烧室温度、喷管出口参数等关键指标。通过典型推进剂组合的算例验证,程序计算结果与 NASA CEA 原生输出数据吻合度较高,误差控制在可接受范围内。该程序简化了 CEA 的调用流程,降低了非专业人员的使用门槛,为液体火箭发动机初步方案设计提供了高效、精准的计算工具。

软件如图所示

image.png


NASA开发的CEA程序,能够基于最小自由能原理求解化学反应平衡状态下的发动机性能参数,是航天领域公认的权威计算工具。 然而,原生CEA程序的使用需要用户手动编写输入文件、设置大量计算参数,且输出数据格式较为复杂,不利于快速迭代设计。针对这一痛点,通过封装核心计算逻辑、简化输入输出流程,实现发动机性能参数的自动化求解,使用QT6开发,方便对更新的系统适配,目前还在开发设计阶段,功能尚不完全,排版也较为凌乱,希望各位同志给出修改意见


该程序仅需用户输入推力、燃烧室压力等四个核心设计参数,并选择推进剂类型,即可快速输出比冲、燃烧室温度等关键性能指标,为液体火箭发动机的初步设计提供高效支撑。

参数输入模块:该模块负责接收用户输入的核心参数,包括推力、燃烧室压力、推进剂混合比、喷管扩张比,同时提供氧化剂与燃料类型的下拉选择菜单,支持液氧/煤油、液氧/液氢、四氧化二氮/偏二甲肼等典型推进剂组合。模块内置参数校验功能,可自动判断输入参数的合理性,如燃烧室压力需大于喷管出口背压、混合比需在推进剂稳定燃烧范围内等,喷注器参数给的是直流喷注器的计算,以后会陆续更新其他的喷注器计算方案。

CEA调用模块:该模块是程序的核心部分,负责将用户输入的参数转换为CEA程序可识别的输入文件格式。程序通过预定义的输入文件模板,自动填充推进剂类型、压力、混合比等参数,并设置计算类型为“火箭性能计算”。在完成输入文件的生成后,模块通过系统命令行调用CEA的可执行程序,实现后台自动化计算,在点击O/F扫描之后,还可绘制最值曲线,以可视化形式呈现给用户,支持表格输出、图表生成与数据导出功能。用户可直接查看计算结果

计算原理的公式:

总流量:

QianJianTec1767164960448.png

特征速度:

QianJianTec1767165030723.png

特征长度:

QianJianTec1767165473731.png


喉部面积:

QianJianTec1767165054310.png

推力系数:

QianJianTec1767165066200.png

单孔流量:

QianJianTec1767165248992.png

孔数:

QianJianTec1767165334517.png

索特尔平均直径:


QianJianTec1767165390352.png

肋片效率:

QianJianTec1767165432899.png


下面是使用教程

bandicam 2025-12-31 13-12-36-466.mp4 点击下载


1
5
9个月5天前IP:山东
948750
1楼

这个与 CEA 联动计算不错,感觉可以具体开个帖子讲明白是怎么调用 CEA 进行计算的?然后认真设计一个参数优化程序,我觉得会更好。虽然这个程序当中已经带有了许多参数优化的功能。另外就是加的一些简单几何参数计算、喷注器参数、冷却系统计算,我认为并没有太大实用价值。发动机设计有很多种类,并且涉及众多东西,只靠这个进行简单计算参考价值是很少的。个人建议不如把 CEA 联动计算单独开一个帖子。然后把几何参数计算等等尽量拆分成其他软件进行,细化每个地方的计算。这样也许可以带来更多的实用价值。

引用
评论
笔记
{{note.content}}
{{n.user.username}}
{{fromNow(n.toc)}} {{n.status === noteStatus.disabled ? "已屏蔽" : ""}} {{n.status === noteStatus.unknown ? "正在审核" : ""}} {{n.status === noteStatus.deleted ? '已删除' : ''}}
  • 编辑
  • 删除
  • {{n.status === 'disabled' ? "解除屏蔽" : "屏蔽" }}
我也是有底线的