找回密码
 注册
X系列官方授权正版
搜索
查看: 6815|回复: 6

[教学] KSP引擎模块浅析-如何使引擎更合理更有效

[复制链接]
发表于 2014-3-4 05:31:27 | 显示全部楼层 |阅读模式
本帖最后由 flywlyx 于 2014-3-4 11:23 编辑

鉴于KSP的玩家群体开开始出现缺乏英语阅读能力以及基础科学素养的苗头,以及版内某些人的特别嗜好,特写本文。

1楼:CFG简介及引擎module翻译
2楼:引擎效率的简单分析
3楼:更深层次的数学以及物理学分析,来帮助我们来制作更合理的引擎

说到模块(module)的解析我们就不得不说到CFG,CFG文件,或者说叫做配置(configure)文件,是KSP用来描述一个部件的各项参数的文件,除了质量、阻力系数、节点强度等通用参数外,某些部件拥有独特的功能模块来实现特定的功能,而我们今天就主要说一说这个引擎模块(ModuleEngine)(关于其他通用参数的)
首先是引擎模块个项目的简单翻译,具体的意义请参考KSPWIKI中文版(http://wiki.kerbalspaceprogram.c ... physics_terms/zh-cn)或百度中相关解释

MODULE
{
        name = ModuleEngines 模块名称
        thrustVectorTransformName = thrustTransform 推力向量名称
        exhaustDamage = True 射流破坏
        ignitionThreshold = 0.1 点火阈值
        minThrust = 0 最小推力
        maxThrust = 225 最大推力
        heatProduction = 400 产热量
        useEngineResponseTime = True 引擎响应时间
        engineAccelerationSpeed = 0.2 引擎加速速度
        engineDecelerationSpeed = 0.35 引擎减速速度
        useVelocityCurve = True 是否使用速度效率曲线
        PROPELLANT 推进剂
        {
                name = LiquidFuel 推进剂名称
                ratio = 1 比例
                DrawGauge = True 是否显示消耗量
        }
        PROPELLANT 推进剂
        {
                name = IntakeAir 推进剂名称
                ratio = 15 比例
        }
        atmosphereCurve 大气效率曲线
        {
                key = 0 1200
                key = 0.3 2500
                key = 1 800
        }
        velocityCurve 速度效率曲线
        {
                key = 0 0.5 0 0
                key = 1000 1 0 0
                key = 2000 0.5 0 0
                key = 2400 0 0 0
        }
       
}
 楼主| 发表于 2014-3-4 05:31:41 | 显示全部楼层
本帖最后由 flywlyx 于 2014-3-4 23:44 编辑

如果你看到了上文的翻译,想必你已经知道我们要讲什么了。
引擎模块的其他参数,名字在很大程度上就是它本身的描述,而只有两个参数比较复杂,被命名为曲线,他们分别是:
atmosphereCurve 大气效率曲线
velocityCurve 速度效率曲线
接下来我们就来看看这组曲线的意义

首先是atmosphereCurve大气效率曲线
大气效率曲线决定了在特定大气压环境下,引擎的ISP,也就是我们所说的比冲(单位为秒)
书写规则是key = 大气压(空格)比冲
        {
                key = 0 1200 这一行描述了在大气压为0时(即为真空),引擎的比冲为1200
                key = 0.3 2500 这一行描述了在大气压为0.3时,引擎的比冲为2500即最大值,关于大气压与高度的换算,我们将会在下一部分中提到,0.3在kerbin上大约是6000m的高度
                key = 1 800 这一行描述了在大气压为1时(即为海平面),引擎比冲为800
        }
所以说本引擎(即涡轮风扇引擎)在kerbin的海拔为0的地方的ISP仅有800,并随着海拔上升而提高,在6000m处达到最大值2500之后逐步下降,直至真空中为1200.

然后是velocityCurve速度效率曲线
速度效率曲线决定了在特定速度下,引擎的实际推力占理想推力的比例
书写规则是key = 速度 比例 斜率1 斜率2
        {
                key = 0 0.5 0 0 这一行描述了在速度为零时,引擎的实际推力为理想推力的50%
                key = 1000 1 0 0 这一行描述了在速度为1000m/s时,引擎的实际推力为理想推力的100%
                key = 2000 0.5 0 0 这一行描述了在速度为2000m/s时,引擎的实际推力为理想推力的50%
                key = 2400 0 0 0 这一行描述了在速度为2400m/s时,引擎的实际推力为理想推力的0% <---无推力
        }
所以说本引擎(即涡轮风扇引擎)在速度为零时实际推力仅为理想推力的50%,,并随着上升比例提高,在速度为1000m/s时,实际推力为理想推力的100%之后逐步下降,直至速度为2400m/s时,引擎失去推力。
这里我们要特别强调一下实际推力的计算是与燃料消耗计算相互独立的,意即,你开最大油门就会是引擎达到最大理想推力并消耗基于比冲计算的对应的燃料,但实际获得的推力则按照速度效率曲线计算,换句话说,在2400m/s的速度时,涡扇引擎仍然消耗100%的燃料却只不能产生任何推力。

然后作为比较同时也作为各位的练习,我们看看jetengine喷气引擎的曲线
        atmosphereCurve
        {
                key = 0 1000
                key = 0.3 1800
                key = 1 2000
        }
        velocityCurve
        {
                key = 1000 0 0 0
                key = 850 0.2 0 0
                key = 0 1 0 0
        }

对比之后,我们就能看出来喷气引擎在低空低速的情况下有远超涡扇引擎的效率,但是由于其在1000m/s时就完全失去了推力,而且6000米处的比冲也远逊于涡扇引擎,所以如果是作为高空高速飞行器就不必考虑了。
回复

使用道具 举报

 楼主| 发表于 2014-3-4 05:31:57 | 显示全部楼层
本帖最后由 flywlyx 于 2014-3-24 14:52 编辑

进入到最有趣的也是最无趣的阶段了:
好吧首先让我们罗列一些有用的公式
kerbin星球的气压公式
这个应用在kerbin上要算对应气压的高度直接lnX * -5000就可以了。
g0比冲
注意KSP中的g0取值为9.82m/s2
KSP中采用了相对比较简单的引擎模型,真正会发生改变的参量只有两个,实际推力和比冲,而且两者的变化完全独立。
只有喷气引擎、涡扇引擎和可变燃料智能火箭引擎会在高速时失去推力,这应该是为了限制空天飞机的发展。
但事实上,引擎的推力并不单单与速度有关系,包括火箭引擎,所有的引擎的都会受到大气压力的影响,当然,由于KSP对于这一块的空白,只能期待MOD作者们的补完了。
KSP的喷气引擎们,和现实世界中的同僚们相比,几乎都是超人级别的实力,实质上这是KSP喷气引擎参数设计中的一个小BUG导致的,由于将进气设置为推进剂之一来限制喷气引擎的高空性能,开发组们忘记了(可能)将这一部分推进剂从比冲的计算中排除出去,这就导致了引擎的比冲比显示的数据大了十几倍。
当然,这可以理解为为了降低空天飞机的设计难度,如果按照现实世界中发动机的实力来设计的话,在KSP中完成空天飞机的难度将远远超过现在的难度。
同时,大家都应该注意到了,KSP中喷气引擎的设计有一个重大的失误,那就是涡扇引擎比涡喷引擎的高速性能更好,实质上,涡扇引擎根本就是一个涡喷引擎加上一个外涵道,由于排气温度大大低于涡喷引擎,效率非常的高,现在主流的大涵道比涡扇引擎地面比冲轻松上万。但是由于外涵随着速度增加,效率直线下降,高速性能远逊于涡喷引擎,KSP的现象只能解释为jetengine采用的是远远落后于turbofanengine的技术,并且turbofanengine还拥有非常先进的加力系统了。
接着,让我们看一看现实中的比冲

在本图中,纵轴表示比冲,横轴显示马赫数,我们可以看到,涡扇引擎在马赫数低的情况下,比冲已然爆表,但是随着速度增加,比冲迅速下降,到2个马赫以上之后,由于压气机和涡轮的相继失效,实际上涡扇引擎的动力循环就已经被破坏殆尽了,之后显示的涡扇引擎+加力器基本上都是加力器作为一个冲压发动机在工作了。
这里给喜欢真实性的玩家推荐一个MOD,Advanced Jet Engine (先进喷气引擎)http://forum.kerbalspaceprogram. ... AJE%29-v0-8-3-21-14
以及一个非常有趣的工具NASA的喷气引擎模拟器,http://www.grc.nasa.gov/WWW/K-12/airplane/ngnsim.html
从某种意义上来说,在KSP中追求真实就是一个自虐的过程,所以在使用上述MOD的时候,最好在喷气引擎模拟器中调整得到理想的数据后,修改AJE中的引擎来达到理想的目标,当然,这个结果必然是选逊于KSP中强力的喷气引擎们的。
回复

使用道具 举报

发表于 2014-3-4 11:44:53 | 显示全部楼层
首先这个公式里面的5000就有待考证。这个scaleHeight的具体数值应该可以在wiki上查到。如果是RSS的话,则可以在RSS的cfg里面找到。
回复

使用道具 举报

 楼主| 发表于 2014-3-4 11:59:50 | 显示全部楼层
本帖最后由 flywlyx 于 2014-3-4 13:43 编辑
HoneyFox 发表于 2014-3-4 11:44
首先这个公式里面的5000就有待考证。这个scaleHeight的具体数值应该可以在wiki上查到。如果是RSS ...


这个公式本来就是WIKI上来的 让我们怀着美好的憧憬吧
其实安个涡扇到6000m试一下就知道了, 不过我比较懒
回复

使用道具 举报

发表于 2014-3-4 13:38:09 | 显示全部楼层
mod F22作者真棒
回复

使用道具 举报

发表于 2014-3-5 20:17:16 | 显示全部楼层
不必要的争吵我删掉了,大伙和气点,论坛毕竟是让大家来交流经验分享自己心得的,实在是没有必要为不同的意见发生争吵。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

Archiver|手机版|小黑屋|DeepTimes.NET 太空游戏站