一枚火箭的理论高度计算
Z聚变2023/03/13原创 喷气推进 IP:美国

火箭初始质量100kg

火箭发动机的恒定推力是1960N

每秒喷出0.667kg燃料

最终消耗完燃料的火箭质量是10kg

燃料占火箭质量的90% 干质比为10

火箭从海拔为0的地面从静止开始发射

空气阻力为F= (1/2)CρSV^2,取Cd=0.2,S=0.0314m2

如果火箭的初始质量为m0,最终质量为m1,喷射物相对于火箭的速度为vex,那么火箭的速度变化为:

Δv = vex * ln(m0 / m1)

将数据代入,得到(液氧煤油喷气速度3000m/s):

Δv = 3000* ln(100 / 10) = 6907.76m/s

这是燃料耗尽后火箭的速度。要计算火箭的最大高度,还需要考虑重力和空气阻力的影响。重力加速度恒定为9.8 m/s2,空气阻力与空气密度和火箭速度的平方成正比。空气密度随高度的变化可以用下面的经验公式近似表示:

ρ = ρ0 * exp(-h / H)

其中ρ0是海平面处的空气密度,约为1.225 kg/m3,H是大气厚度,约为8000 m。因此,空气阻力可以写成:

F = (1/2) * Cd * S * ρ0 * exp(-h / H) * v2

其中Cd是阻力系数,S是横截面积,v是速度。

将重力和空气阻力合成一个合外力Ft,那么火箭运动满足以下微分方程:

m * dv / dt = Ft - mg

m * dh / dt = v

其中m是火箭的质量,h是高度。

这是一个非线性微分方程组,没有解析解,需要用数值方法求解。

我们可以使用Python编写一个简单的程序来模拟火箭运动

# 导入必要的库
import numpy as np
import matplotlib.pyplot as plt
 
# 定义常数
g = 9.8 # 重力加速度
rho0 = 1.225 # 海平面处的空气密度
H = 8000 # 大气厚度
Cd = 0.2 # 阻力系数
S = 0.0314 # 横截面积
vex = 3000 # 喷射物相对于火箭的速度
m0 = 100 # 初始质量
m1 = 10 # 最终质量
dm = 0.667 # 每秒喷出的燃料质量
 
# 定义初始条件
h0 = 0 # 初始高度
v0 = 0 # 初始速度
t0 = 0 # 初始时间
dt = 0.01 # 时间步长
 
# 定义变量列表,用于存储每一步的数据
h_list = [h0] # 高度列表
v_list = [v0] # 速度列表
t_list = [t0] # 时间列表
 
# 定义一个变量,用于记录最大高度
h_max = h0 # 最大高度
 
# 定义一个布尔变量,用于判断火箭是否还有燃料
fuel = True # 燃料标志
 
# 开始模拟循环,直到火箭落回地面或超过10000秒为止
while h_list[-1] >= 0 and t_list[-1] <= 10000:
    # 计算当前的火箭质量,如果小于最终质量,就取最终质量,并将燃料标志设为False
    m = m0 - dm * t_list[-1] # 当前质量
    if m < m1:
        m = m1
        fuel = False
    
    # 计算当前的空气密度,如果高度小于零,就取零
    rho = rho0 * np.exp(-h_list[-1] / H) # 当前空气密度
    if h_list[-1] < 0:
        rho = 0
    
    # 计算当前的空气阻力,如果速度小于零,就取零
    Fd = (1/2) * Cd * S * rho * v_list[-1]**2 # 当前空气阻力
    if v_list[-1] < 0:
        Fd = 0
    
    # 计算当前的合外力,如果火箭还有燃料,就加上推力,否则只有重力和空气阻力
    if fuel:
        Ft = vex * dm - m * g - Fd # 当前合外力(有燃料)
    else:
        Ft = - m * g - Fd # 当前合外力(无燃料)
    
    # 计算下一步的速度和高度,使用欧拉法近似求解微分方程组
    v_next = v_list[-1] + Ft / m * dt # 下一步的速度
    h_next = h_list[-1] + v_list[-1] * dt # 下一步的高度
    
    # 将下一步的速度和高度添加到列表中
    v_list.append(v_next)
    h_list.append(h_next)
    
    # 计算下一步的时间,并添加到列表中
    t_next = t_list[-1] + dt # 下一步的时间
    t_list.append(t_next)
    
    # 比较当前的高度和最大高度,如果更大就更新最大高度
    if h_list[-1] > h_max:
        h_max = h_list[-1]
 
# 结束模拟


运行这段代码,得到以下结果:

火箭的最大高度约为136.8km,超过了卡门线的高度(约为100 km)。


当然,只是粗略估计,感谢WernerPleischner提出的建议,Cd(阻力系数)和姿态关系很大,进一步计算还是需要仿真


以下是一些基本液机设计

氧化剂采用液氧,燃料采用煤油

雾化喷嘴喷注

取比冲300,设计推力2000N,

采用电泵膨胀循环,再生冷却

氧燃比 2.2 设计室压10mpa 燃烧室温度取3579K,特征长度取2.5,径收敛比取5

代入计算器得到结果,氧化剂流量459.2.6/s,燃料流量208.72g/s 总667g/s

喉口直径12.4mm,出口直径41.84mm,扩张比11.37

燃烧室内径62.04mm,长度93.94mm

飞控尾翼稳定

02A7C43A-F126-4445-91E1-CA1D16E370D8.png

[修改于 1年0个月前 - 2023/03/15 07:26:48]

来自:航空航天 / 喷气推进
3
2
已屏蔽 原因:{{ notice.reason }}已屏蔽
{{notice.noticeContent}}
~~空空如也
WernerPleischner
1年0个月前 修改于 1年0个月前 IP:广东
918025

火箭这种形状的东西Cd和姿态关系很大,还是得6DoF仿真……

引用
评论
2
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
Z聚变作者
1年0个月前 修改于 1年0个月前 IP:北京
918029
引用WernerPleischner发表于1楼的内容
火箭这种形状的东西Cd和姿态关系很大,还是得6DoF仿真……

请多指教

引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
warmonkey
1年0个月前 修改于 1年0个月前 IP:广东
918111
引用WernerPleischner发表于1楼的内容
火箭这种形状的东西Cd和姿态关系很大,还是得6DoF仿真……

可以假定控制系统一直正常工作,攻角约等于零度。

6DOF仿真一般是用于设计和评估控制系统性能的,算基本的参数例如射程、最大速度、最大加速度,只需要1DOF就行了。

楼主取的参数基本是现有技术条件的极限值。电泵为了节约电池质量,不会选择较高的燃烧室压力,比冲会较涡轮泵方案偏低。一般来说液氧煤油做到海平面280s比冲几乎是极限了。而且楼主忽略了燃料箱增压气体和电泵电池的质量。

为了尽量增加射高,可以通过适当压低速度减少空气阻力带来的速度损失。楼主可以试着设计个优化算法。

引用
评论(7)
3
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论

想参与大家的讨论?现在就 登录 或者 注册

所属专业
所属分类
上级专业
同级专业
文件下载
加载中...
{{errorInfo}}
{{downloadWarning}}
你在 {{downloadTime}} 下载过当前文件。
文件名称:{{resource.defaultFile.name}}
下载次数:{{resource.hits}}
上传用户:{{uploader.username}}
所需积分:{{costScores}},{{holdScores}}下载当前附件免费{{description}}
积分不足,去充值
文件已丢失

当前账号的附件下载数量限制如下:
时段 个数
{{f.startingTime}}点 - {{f.endTime}}点 {{f.fileCount}}
视频暂不能访问,请登录试试
仅供内部学术交流或培训使用,请先保存到本地。本内容不代表科创观点,未经原作者同意,请勿转载。
音频暂不能访问,请登录试试
支持的图片格式:jpg, jpeg, png
插入公式
评论控制
加载中...
文号:{{pid}}
投诉或举报
加载中...
{{tip}}
请选择违规类型:
{{reason.type}}

空空如也

加载中...
详情
详情
推送到专栏从专栏移除
设为匿名取消匿名
查看作者
回复
只看作者
加入收藏取消收藏
收藏
取消收藏
折叠回复
置顶取消置顶
评学术分
鼓励
设为精选取消精选
管理提醒
编辑
通过审核
评论控制
退修或删除
历史版本
违规记录
投诉或举报
加入黑名单移除黑名单
查看IP
{{format('YYYY/MM/DD HH:mm:ss', toc)}}