本文章主要讲述基于nakka设计的SRM固体燃料发动机仿真软件的基础上,做了一个python脚本,对仿真软件输出的推力数据进行计算,得出火箭的加速度、速度、射高数据。该脚本对于火箭的制作具备理论参考意义。
首先
放一个nakka的网站和他设计的SRM仿真软件:
网站:XXXXXXXXXXXXXXXXXXXXXXXXXXX
软件:
接下来说脚本方面
1.脚本是python文件,没有打包成可执行exe文件,所以需要有pycharm或者vscode的朋友才能正常使用
2.有两个脚本,一个叫“飞行高度计算.py”另一个叫“最佳质量计算.py”
下面分两个部分说明两个脚本各自的作用
飞行高度计算.py
1.脚本内引用的是同文件夹下第一个xls文件,就是SRM仿真软件,脚本会读取这个xls文件内第四个工作表的J28:J910 和 L28:L910,就是仿真计算出来的推力曲线数据,再结合输入的火箭基础数据譬如总重量、燃料重量、阻力系数等等的参数进行计算得到火箭从开始到最高点过程的状态
2.脚本会生成两个文件,一个是“rocket_flight_curves.png”另一个是“flight_results.csv”,png文件是绘制的曲线图,csv是计算过程的数据文件
如果要使用,需要现在SRM设计好发动机内弹道,然后计算出推力数据后,再在脚本这部分输入火箭的基础数据,然后运行
输出的png文件如下
这个脚本的计算原理是迭代法,基于上一个时刻的火箭状态(质量、加速度、速度...)来计算现在这个时刻的状态,这样的计算方法有一点不好的就是产生的误差会累计到后面的计算状态,从而影响精度,但也可以作为一个理论上的初步估算。计算原理大致如下
最佳质量计算.py
1.该文件会读取上述脚本的阻力系数,然后通过不同质量下的飞行高度,得到不同火箭质量下,火箭的最大射高是多少
2.输出文件是“质量高度关系曲线.png”和“质量高度计算结果.csv”
如需使用的话也是需要先在SRM软件内计算好推力数据,然后在“飞行高度计算.py”输入好阻力系数参数,并在“最佳质量计算.py”脚本下填写火箭的最小质量、最大质量、计算数量,譬如最小质量2kg到最大质量10kg,中间取50个等距质量进行计算
最后得出这样的结果
可能很多人会以为火箭的质量越小火箭的飞行高度就会越高,但实际上并不是,火箭基于不同的发动机会存在不一样的最佳质量,太大或者太小都会对火箭射高有负面影响。火箭质量过小导致射高下降主要原因是:火箭没有更多的质量让发动机产生的能量转换成足够的动能去抵抗风阻,所以风阻的影响占比会变大,从而导致火箭降速会非常快。从物理上说就是同等风阻下,质量越小,反向加速度会更大。
本文章内提到的脚本集成度不高,存在一定的不便,如果使用过程出现什么问题,可以在评论区留言,我看到后回复。
这两个脚本可以给大家设计硝糖类型的火箭时,作为一个射高的初步估算,看看是否达到项目目标,如果不在预期内,再对发动机内弹道进行修改,直到射高仿真符合项目目标,从而替代拍脑袋决定参数,避免试车后发现推力数据不足以让火箭飞到目标高度浪费大量时间