异星工厂:低阈值自动启动的备用电路

Hung Yu
Hung Yu
Aug 9, 2017 · 5 min read

问题简述

如何使蒸汽备用电路在太阳能电路蓄电值较低时自动启动,并将蓄电池充电至满之后自动断开?

详细描述

大概在玩50多个小时后,我的电力来源已经完全由太阳能板发电提供:白天太阳能板给工厂和蓄电池供电,晚上蓄电池放电为工厂供电。为了能利用上原先的蒸汽机发电装置,我将其也连接到了同一个电网中。由于游戏自身的设计,只要晚上一旦蓄电池放电,就会使蒸汽机运作;意味着变成了晚上蒸汽机供电。这样一来,就失去了蒸汽机作为备用电源的作用:不但闲置了蓄电池;也加快了煤炭的消耗(虽然后期煤炭消耗不多)。所以打算通过运算器,实现一种到阈值启动的装置。

关于 Factorio

简单介绍一下这个游戏,介绍来自维基百科。

游戏玩家通过收集星球表面(地图)的原始资源,通过不断不同级别的合成而获得最终产物。但不同的是,本游戏更重视自动化的生产流程,通过合理部署运输设备、管线,实现从资源采集、运输、通过生产设备合成、存储,最终实现流水线式的最终产物输出,并且通过合理构建生产与运输从而保证生产量最优化。

游戏封面

从名字上看就是关于工厂的,而且在游戏中通过红绿线网络可以像在 MC 中那样实现复杂的电路设计。


实现

逻辑实现

首先将问题给分解一下,将各种状态区分出来。便于后面逻辑图处理。为了解释方便,首先将低电量阈值设为30%好了。

  1. 蓄电池电量在30%~100%之间,当前未启动备用电源,属于正常状态。
  2. 蓄电池电量小于30%,电量低,启动备用电源。
  3. 蓄电池电量在30%~100%之间,且启动了备用电源,属于充电状态,继续充电至100%为止。
  4. 蓄电池电量达到100%,即充满状态,断开备用电源。

在30%~100%这个区间,备用电源的状态是不确定的,其决定于前一个状态:如果之前在充电,则当前继续充电;若不然,则断开。所以这里肯定存在一个反馈信号用于告知前一个状态的情况。

通过上面的状态分解,我用自己仅存的一些电工知识绘制出了逻辑电路的图。当处于2、3状态时输出信号1,表示连通,处于1、4状态输出信号0,表示断开。如下,

逻辑电路示意图

运算器实现

现在有了这工具,就可以在游戏中实际造出来了。

上图中与门或门可以通过逻辑运算器实现。连线使用红绿线,认清运算器的入口和出口,将蓄电池的蓄电量作为输入信号,最后的输出信号连到电力开关上,借助开关连通主电源(太阳能电源)和备用电源(蒸汽发电设备)。

这里看起来有两个输入,其实可以用同一个蓄电池,因为我们只需要得到当前蓄电量的值。我在游戏中蓄电池给出的信号为 A,是一个数值量,将 A 通过红线(这里线的颜色没有关系,因为只有一个输入,不需要区分)传给两个判断运算器,分别判断是否小于30;是否为100。这里由于没有非运算器,所以我将后一个判断改成了判断是否小于100,效果是一样的。

注意:判断运算器上限不能超过100,不然会导致即使充满电了开关也不会断开。因为蓄电池的信号数值范围为0~100。

将“小于30”运算器的信号送到逻辑或门,即逻辑运算器执行 “+” 操作,将“小于100”运算器的信号送到逻辑与门,即逻辑运算器执行 “*” 操作。逻辑或门的一个信号送到开关,另一信号则反馈到逻辑与门。开关接收到信号,判断是否大于0,若是,则闭合开关启动备份电源;若不是,则断开。

注意:两个逻辑运算门都有两个输入,所以需要使用红绿线进行区别,保证输入信号的区分。

结论

其实照着前面运算器的实现去摆,大家完全可以复制出一样的控制装置了……但,总是得有个图比较好复制不是么(逃

总体样子如下,上半部分的蓄电池属于太阳能发电的一部分,右下角即为蒸汽发电部分。,两者通过铜线与开关相连。最上面的蓄电池提供输入信号,输出到开关(就是图中的 power switch)。

运算器总览

针对其中的每一个运算器,其配置细节如下,

运算器配置细节

拓展

这里的设计实际上还暗藏了一个充电停止的阈值,在这我们设置的是100,其实也可以稍微往下调一调,比如充到95就不充电了。有了这样的控制部分,可以自己设定低电量阈值和充电阈值。

低电量阈值修改即修改上方的判断运算器,就是设定值为30的那个。一般情况下可以设置得再低一点,因为只要一旦触发,蒸汽发电就会全力工作(只要蒸汽量跟得上)至充电阈值。主观得说实际用电范围就只有低电量阈值到蓄电池满。但为什么这里我不设置成0呢?(快问我快问我)

因为太阳能只能在白天发电,如果在傍晚发生电量低于阈值,那么发电的任务就全落到了备用电源上。但这里备用电源的发电量其实不算大,主电源都产生了电力缺口,那备用电源也肯定是杯水车薪。一旦此时激进得将低电量阈值设置极低,过不了多久就会完全变成备用电源直接供电,如果没设置电网分离,挖煤效率低下,锅炉缺煤,蒸汽量减少,进一步缺失电力……造成恶性循环。有个较高的低电量阈值能够在低于阈值后减缓电量的下降速度(至少要撑到白天太阳能重新工作吧23333),不至于很快缺电导致生产速度下降。

当然上面的方法只是权宜之计,一旦查看电网发现备份电源有启动过,那么就说明 — — 你应该扩建你的电厂了😆。

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade