查看原文
其他

简易轨道计算程序使用说明

洞穴之外 理念世界的影子 2021-06-23

为讨论问题时能更为深入具体,开发了一个简易的轨道计算程序,方便分析火箭性能。




程 序 功  能

1) 用于任意构型、任意级数、任意分离组合的火箭运载能力仿真;

2) 数据输入灵活,为复杂工况仿真提供了可行性。


程 序 限  制

1) 不考虑大气段阻力(经验证,对结果影响在接受范围内);

2) 只限于平面弹道,未提供偏航程序角功能;

3) 未提供位置、速度初值设置接口,即默认起飞高度、速度均为0,这也意味着地球自转初速度不考虑;

4) 不含优化程序,需使用者自行调整程序角。

访问方式和界面

+


程序入口,也可拉至页面底部,从“阅读原文”进入


http://www.spaceodyssey.cn:443


后续程序入口将改为:


https://www.spaceodyssey.cn:443


界面如下,由输入区、计算按钮、计算结果显示区组成。

基本用法

+


最基本用法如下:

1) "#"直至行末为注释模式,不进入计算;

2) 分离时刻、火箭配置、程序角为最基本的输入,在配置中不可少;

3) 分离时刻第一个数为起飞时刻,再依次输入存在分离的时间节点,如一级、整流罩、二级分离时刻等;

4) 火箭配置给出火箭信息,为nx7数组,按列一一填写。

    [1] 子级总重量m0(kg)

    [2] 推进剂总重量mp(kg)

    [3] 发动机启动时间t1(s),用于流量积分

    [4] 发动机关机时间t2(s),关机时刻发生在分离时或分离前

    [5] 发动机总流量dm(kg/s)

    [6] 发动机总推力F(N),地面推力。[6]和[7]也可用地面比冲和真空比冲组合代替,输入更为简单,但作者发现使用时总是犯单位错误(s, m/s)

    [7] 发动机喷口面积A(m^2),用于计算不同环境大气压处的推力。如确定为高空发动机,则可在推力处填真空推力,此处填0;

5) 程序角给出折线形式飞行程序角,为nx2列,第一列为时刻,第二列为角度(单位°)。


以“先锋号”火箭为例,各参数如下:


[分离时刻] #分离时间

0 144 194 265.5    574


[火箭配置]

# 子级重量(kg) 推进剂重量(kg) 发动机启动时刻(s) 发动机关闭时刻(s) 流量(kg/s)  地面推力(N) 面积(m^2)

# 推力=流量x比冲, 面积=(真空推力-地面推力)/1.01325e5

8000  7150   0        144     48.6159449615540    120130     0.11

15         0      0        194                0                           0             0

1975  157   144      265.5   12.7349121466769    33340          0

0           0   265.5     540 0   0   0

200   178  540 574 5.21719858156028    11770    0

21        0   0           574 0   0   0


[程序角]

0   90

10  90

144 36

265.5    28

540 -12.5

574 -12


扩展用法

+


由于火箭配置中有不少参数为组合计算结果,逐一输入数值太过繁琐,因此增加了变量功能,可在变量区对变量进行赋值,并在之后使用。比较了ini, HOCON, yaml, json等格式,均不太顺手,因此编写了一个解析器,这也意味着对于复杂表达式,程序不排除出错可能性,如有bug请大家反馈。


[变量] #变量

TK1=0


[监测时刻] # 增加输出点,在监测时刻不单独插值,而是选择就近时刻,因此输出时可能与此处数值不完全一致

30 40 TK1+3



火箭配置用法

+


火箭配置是输入里变化最多的内容,这里举几个用法。只要把握了分离和发动机工作的总脉络,对于其他用法,都能写出适应性的语句。


两类共用推进剂的发动机工作


将子级分为两行,第一行包括m0、mp,以及其它信息,第二行紧随其后,但m0、mp均填0,如


[火箭配置] 

100   90   0   100    1   120   0

 0      0     0    130  0.1   12   0   # 前两个0表示与上一行共用推进剂


整流罩分离


将整流罩视为无流量、无推进剂的子级,mp, dm,F均填0,t1为0,t2为抛罩时间。如


[火箭配置] 

100   0   0   100    0  0   0   # 推进剂,流量、推力均为0


滑行段


将滑行段视为无流量、无重量、无推进剂的子级,dm,F,m0,mp均填0,其实滑行段完全可以不输入,对计算结果无影响。如


[火箭配置] 

 0      0     130    200   0   0   0   # 滑行段仅有时间,其实此行可删除

应用案例

+


以电子号火箭为例


[变量] #定义变量,此部分可以为空或直接删除

TK0=0; TK1=152; TKZ=183; TK2q=159; TK2g=457; TK3=3157; TK4=3200; # ; 被替换为回车

mbat=120; msat=37.06; #电池重量和卫星重量

coeff1=0.95; coeff2=0.94; # 一二级结构系数

dm1=61.2243; dm2=6.8027; # 流量

mp1=dm1*(TK1+0.5); mp2=dm2*(TK2g+0.5-TK2q)


[分离时刻] # 存在分离的时间

TK0 TK1 TKZ TK3


[火箭配置]

# 子级重量(kg)  推进剂重量(kg)  发动机启动时刻(s)  发动机关闭时刻(s)  流量(kg/s)   地面推力(N)  面积(m^2)

# 推力=流量x比冲, 面积=(真空推力-地面推力)/1.01325e5。用于计算不同环境大气压处的推力。如确定为高空发动机,则可在推力处填真空推力,此处填0

mp1/coeff1+9*mbat mp1 TK0 TK1 dm1  9*16.8e3*311/303 pi/4*0.207**2

    0   0  TK0 TK2q    0              0      0

    44  0  TK0 TKZ      0                0  0

    mp2/coeff2+mbat+msat   mp2 TK2q TK2g dm2 22.2e3*343/333     0       

    0   0   TK2g  TK3   0   0    0 


[程序角]

0 90

10 90

TK1 55

TKZ 25.7

TK2g -12.3

TK3 -12.3


[监测时刻] #额外输出点,可以为空或直接删除

79


但仿真结束后,有人发给我录像,录像显示397s电池被分离掉了,因此在如下标红处修改,包括:
1) 在时序中增加397s的分离时刻;2) 在火箭配置中声明电池是在397s停止;3) 更新卫星重量,以及程序角(此处未更新)。
修改后仿真,发现运载能力提升了约 80kg。

[变量] #定义变量,此部分可以为空或直接删除

TK0=0; TK1=152; TKZ=183; TK2q=159; TK2g=457; TK3=3157; TK4=3200; # 时序

mbat=120; msat=137.06#电池重量和卫星重量

coeff1=0.95; coeff2=0.94; # 一二级结构系数

dm1=61.2243; dm2=6.8027; # 流量

mp1=dm1*(TK1+0.5); mp2=dm2*(TK2g+0.5-TK2q)


[分离时刻] # 存在分离的时间

TK0 TK1 TKZ   337    TK3


[火箭配置]

# 子级重量(kg)  推进剂重量(kg)  发动机启动时刻(s)  发动机关闭时刻(s)  流量(kg/s)   地面推力(N)  面积(m^2)

# 推力=流量x比冲, 面积=(真空推力-地面推力)/1.01325e5。用于计算不同环境大气压处的推力。如确定为高空发动机,则可在推力处填真空推力,此处填0

mp1/coeff1+9*mbat mp1 TK0 TK1 dm1  9*16.8e3*311/303 pi/4*0.207**2

    0   0  TK0 TK2q    0              0      0

    44  0  TK0 TKZ      0                0  0

    mp2/coeff2+msat   mp2 TK2q TK2g dm2 22.2e3*343/333     0      

     mbat       0      0        337       0     0         0      # 将mbat单独移为,如果时间还是TK2g,则单独拿出结果和合并一模一样

    0   0   TK2g  TK3   0   0    0 


[程序角]

0 90

10 90

TK1 55

TKZ 25.7

TK2g -12.3

TK3 -12.3


[监测时刻] #额外输出点,可以为空或直接删除

79







往期文章:

“电子号”火箭运载能力有150千克吗?

 新型发动机循环---让商业航天变得更容易》

 发动机为什么长这样---发动机形式与摆角分配公式》

 二向箔与降维攻击---FH成功的技术逻辑链及对我们后续工作的启示(3)

 惟情怀和信仰不灭,祝祖国明日更强---记FH首飞(2)

 坚志而勇为,谓之刚---Falcon重型首飞有感(1)

 新时代开启的新征程---Falcon9回收箭体复飞成功》






    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存