本篇教程由作者设定使用 CC BY-NC-SA 协议。

本文只放了 GTCE 的源码(估计 GT 本体的代码应该也能用,但是没翻)

文中主要参考了 `gregtech/common/metatileentities/steam/boiler/` 文件夹的内容。


一、温度模型

GTCE 的蒸汽设备按照高低压分类,高压和标压的温度上限和升温速率不同,但降温速率一致。

蒸汽设备的温度在燃料燃烧时间充足时周期上升,燃料不足且持续一段时间后开始每t下降。

高压设备每12t升温1并消耗两个单位,最大温度1000,标压设备每24t升温1,每12t消耗一个单位,最大温度500;

(对于固体燃料来说,每个“单位”可供熔炉中燃烧1t)

燃料不足持续40t后,温度每t下降1。


二、生产周期

蒸汽设备只有温度达到一定阈值时才会产生蒸汽;高压设备产生蒸汽的频率高于标压设备。

蒸汽设备的蒸汽产量和当前温度成正比。

只有当温度高于100°C时,锅炉才会产气。

每次产气固定消耗1mb水,尝试消耗水时发现缺水则造成爆炸。

高压设备每10t产生一次蒸汽,标压设备每25t产生一次蒸汽。

如果水烧干的情况下加水,则在(x+0.5,y+0.5,z+0.5) 创造威力为2的爆炸。

冷却到 100°C 以下后,可以安全加水。


三、燃料消耗与灰分产生

- 燃煤锅炉中,每个燃料在消耗后会有50%的概率产生一个灰烬。

- 岩浆锅炉中,每次消耗 100mb 岩浆,提供100单位燃料。注释认为可以燃烧60秒,高压30秒。

- 太阳能锅炉每次晒太阳可以补充相当于升温5 的眼光,且上方一格看不到日光,非日间,以及雨天均不工作。


四、大型锅炉

GTCE和 大型锅炉 - [GT5] 里的差别不太一样,这里重新介绍一下。

对应的源码在 `gregtech/common/metatileentities/multi/MetaTileEntityLargeBoiler.java`。


材质产能燃料消耗散热效率最高温
青铜9001.0x28x500
16001.6x30x800
37003.0x31x2000
钨钢78005.4x32x4000


大锅炉的温度变化逻辑和单方块锅炉不太一致,这是为了回避一个bug,见后文。

温度逻辑非常简单粗暴:有燃料每秒上升1度,没燃料每秒下降1度。


大锅炉产生蒸汽的温度和普通锅炉一致:100°C,每秒消耗1mb水,且有效消耗非蒸馏水。

和单方块锅炉不太一样的是,大锅炉缺水爆炸的威力和温度成正比:威力相当于当前温度除以100。

也就是说 温度烧到最高的钨钢锅炉爆炸威力是80,堪比核弹。


锅炉的产气量为:产能*"当前温度/最高温度"(下称比例温度)*过热度*过热效率

过热倍率是一个可以手工调整的值,区间为20%-100%。降低此参数可以减少燃料消耗和蒸汽产出。

过热效率随过热倍率下降,计算公式为 1-0.3*ln(1/过热倍率),当过热倍率最低时达到最低值,约52%。


 高温燃料消耗倍率 随当前 比例温度 上升,公式为:1/(1+比例温度*热效率),也即温度越高,燃料消耗越慢,对于钨钢来说最低可以降低到初温下的 3% 左右。

单次消耗的燃料量为:基础消耗量(JEI里的)*高温燃料消耗倍率*过热倍率,向上取整。

关于燃料可以提供的时间,参见 JEI。柴油效率减半,半流质效率加倍,固体燃料基础燃烧时间/50计算,最后在考虑高温燃料消耗倍率和锅炉的燃料消耗倍率计算时间。

目前固体燃料的代码疑似有bug,格子里最后一个燃料是消耗不掉的。


五、基于数值的一些讨论

对于标压锅炉,每秒消耗0.8L水,每0.6秒消耗一个单位,在开火120秒后开始以24L/s的速率产蒸汽,在随后的480s内线性升高到120L/s;燃料耗尽2s后,输出在20秒内线性降低到24;

每个煤燃烧时间为8min,理想情况下可提供57600L 蒸汽,若合成煤块,可提供64000L。注意褐煤压块没有加成。

L。每次开停火的蒸汽损失量为:120L/s*120s+(120L/s+24L/s)*480s/2-120L/s*2s-(120L/s+24L/s)*20s/2=47280L 蒸汽

按照每个白天600s计算,太阳炉每天的产能为(480+20)*(120+24)/2+120*2=36240L,折合全天为30.2L/s,即相当于五分之一个低压锅炉。

对于高压锅炉,每秒消耗2L 水,每0.3秒消耗一单位燃料,在开火60秒后开始以30L/s的速率产气,540s内线性提高到300L/s;燃料耗尽后,输出在45秒内线性降低到30


六、利用降温机制提高燃料利用率

前面提到过 燃料耗尽40t(=2s)才会开始降温。事实上,煤炉子接受 1/9 煤粉作为燃料!

当然,即使是高压煤炉,一个1/9煤粉也能烧26秒以上,但是,如果你使用的是大型锅炉…………

很可惜,CTCE 修复了这个bug,但在 gt5u 中是可以应用的,按照3秒1个的速率给1秒烧一个的大青铜炉灌木炭,大青铜炉可以满功率工作!

其实理论上也未必无机可乘,因为锅炉判定有无燃料都是整秒时计算,如果在合适的时机,即使锅炉20t中只有1t判定燃烧,也可能持续工作,但是想也知道,这么整的 rubustness 很差。