Fluid system/zh: Difference between revisions
No edit summary |
(Readded throughput formula based on findings in https://forums.factorio.com/103145) |
||
(11 intermediate revisions by 6 users not shown) | |||
Line 1: | Line 1: | ||
{{Languages}} | {{Languages}} | ||
''' | '''流体'''是非固体的物品,例如水和油。它们正常情况下只能存在于流体处理(如{{L|Pipe}})的实体内部,和有流体输入或产物的建筑(如{{L|Oil refinery}})。 | ||
== | == 原理机制 == | ||
流体可以通过移除容纳它们的建筑或管道而被破坏。同时只能有一种流体可以占据给定的管道段或{{L|Storage tank}};没有两种流体会混合,而是会阻止彼此流动。它们不能由玩家携带、使用{{L|Inserters}}移动、掉落在地上或储存在箱子中,除非流体被储存在[[#桶装运输|空桶]]中。它们不能被泼出或倾倒在湖中,并且用连续的分数来计数,而不是离散的整数。 | |||
== | === 储存方式 === | ||
在游戏中,流体被保存在具有定义的尺寸(容积)的容器实体中。如果它们的输入/输出是相邻的(管道连接到所有方向)并且允许流体在它们之间流动,则容器会自动地相互连接。 | |||
容器中包含的流体的'''体积'''是一个介于0和最大体积之间的值。例如,管道可以容纳100单位流体,因此管道中的数值可以在0到100之间。在一个给定的实体中,流体的'''液位'''是用流体所占据的实体最大体积的百分比来表示的。它可以在管道和储液罐中被观察到;它们有窗口,通过这些可以看到流体在一定的液位,或者甚至只是一个小的细流。 | |||
== | === 流动规则 === | ||
'' | 所有连接的储液罐和管道都被视为一个单一的容器,即''流体的液面必须在所有部分中是相等的'',甚至是在较小的流体上产生更高的液位所产生的压强。这就是为什么液位通常也被称为''压强'',尽管压强实际上是由两个实体之间的液位差引起的。管道之间发生的所有流体流动都是为了实现这种平衡(泵实际上忽略了它,而建筑物扰乱了它;更多的在下面进一步说明)。管道之间的流量取决于压强(相邻实体之间的液位差),它会随着管道的液位变平缓而减慢。 | ||
回到“液位”是如何定义的,这也意味着所有连接的管道和储液罐试图均匀输出到它们各自体积的相同百分比。例如,如果剩余12550个单位的流体流进连着一根100个单位容量管道的25000个单位容量的液罐,则液罐中会有12500个单位流体,管道中有50个单位,它们都被填充到各自容量的相同的'''百分比'''(50%),即使数量本身显然是不等的。 | |||
生产流体的机器把流体放在它们的输出槽中,这与机器上某个特定标记的输出管口有关(按下Alt显示标签)。这个槽将尝试将自身清空,流体排到连接到机器管口的实体中,中,除非它是满的,或者包含不匹配的流体。消耗流体的机器也有相应标记的输入管口。如果一个包含正确流体的实体连接到它,机器将开始表现得像一个永远不能被填满的管道,这意味着来自连接的管道和液罐的流体以固定的速率流入机器,直到机器的输入槽被填满。可能有机器同时有输入和输出的管道口(就像{{L|Electric mining drill}}放置在{{L|Uranium ore}}上。然后它们首先为自己填充液体,一旦充满,就表现为一个规则的管道,试图与相邻的实体平衡液位。如果机器上有多个流体输出/输入管口,则流体的活动被均匀地分配给它们,除非它们中的一些被阻塞/充满。 | |||
== | === 流体温度 === | ||
温度目前仅与加热作为发电介质的水有关。尽管游戏中的所有流体都有温度值,但它通常是默认的15℃。 | |||
无论是从在{{L|Boiler}}中的{{L|Fuel}}还是通过{{L|Heat exchanger}}从[[Nuclear power (research)/zh|核能]]中获得的能量,都可用来将{{L|Water}}转化成{{L|Steam}},成为[[Energy and Work/zh|流体工作的形式]]。每单位蒸汽以0.2kJ/℃的比率保持能量。换言之,加热1单位蒸汽使其温度升高1℃需要做0.2kJ功。因为蒸汽/水被设定有最高温度1000℃和最低15℃,对每单位最多可做的功为197kJ。 | |||
在实际应用中,这在各方面几乎没有得到利用:锅炉仅输出165℃的蒸汽,换热器仅输出500℃的热蒸汽,从来不更热或更冷;如果提供的能量不足,加热器不全输出蒸汽。随着时间的推移,蒸汽也不会变冷。在{{L|Steam engine}}中使用165℃蒸汽和在{{L|Steam turbine}}中使用具有相同的效果,尽管这是不切实际的,因为汽轮机被做成消耗500℃(过热)蒸汽,生成比例更大的电力。所有这些都不需要精确的计算。 | |||
{{ | == 流体运输 == | ||
流体可以通过管线、桶或铁路运输。一般情况下,短距离使用管道对机器进行分配(或装桶,如果需要使用传送带),以及更长的距离用铁路运输。 | |||
=== 运输管线 === | |||
'''{{L|Pipe}}'''是流体从A到B的最基本通道。它们自动连接到任何相邻的管道,同时可以对所有四个方向进行处理。{{L|Pipe to ground}}只在两个相反的方向上工作,连接到另一个地下管道的一侧,并在另一端连到另一个实体上。如果管道段太长而不使用泵,它内部的所有流体都将“分散”,导致非常缓慢的流动,阻止机器有效地使用它的内容。'''{{L|Storage tank}}'''的行为与管道相同,除了它们的体积大得多,如果使用多个液罐,这能在更短的距离造成这样的不便。地下管道有助于缓解这一问题;尽管它们可以连接多达10格的距离,它们的体积总是相当于两个管道。 | |||
'''{{L|Pump}}'''使用电能来在一个方向上很快地传输流体。它们还阻挡任何回流,这意味着它们可以对管道的部分进行加压,尽可能多地填充管道。除其他事项外,这在抵消上述“分散”方面是非常有用的。它们也可以被{{L|Circuit network}}禁用,即停止流体通过泵。 | |||
下表展示了在有一定频率的泵的管线中流体流动的速度。如果需要更高的流量,泵应该被更频繁地放置。由于地下管道仅按体积算作2根常规管道,如果在每个地下部分之间放置泵,则全长区段仅作为表中的两根管道。在泵之前放置一个装满的储液罐确保了最大可能的流速,因此这是任何管线的合适开端。 | |||
{| class="wikitable mw-collapsible" | |||
|- | |||
! 两个泵之间<br>管道数量 !! 最大流量<br>(单位/秒) | |||
|- | |||
| 0(泵到泵) || 12000 | |||
|- | |||
| 0(罐到泵) || 12000 | |||
|- | |||
| 0(泵到罐) || 11707 | |||
|- | |||
| 0(泵到锅炉) || 8400 | |||
|- | |||
| 1 || 5400 | |||
|- | |||
| 2 || 3000 | |||
|- | |||
| 3 || 2250 | |||
|- | |||
| 7 || 1500 | |||
|- | |||
| 12 || 1285 | |||
|- | |||
| 17 || 1200 | |||
|- | |||
| 20 || 1169 | |||
|- | |||
| 30 || 1112 | |||
|- | |||
| 50 || 1067 | |||
|- | |||
| 100 || 1033 | |||
|- | |||
| 150 || 1022 | |||
|- | |||
| 200 || 1004 | |||
|- | |||
| 261 || 800 | |||
|- | |||
| 300 || 707 | |||
|- | |||
| 400 || 546 | |||
|- | |||
| 500 || 445 | |||
|- | |||
| 600 || 375 | |||
|- | |||
| 800 || 286 | |||
|- | |||
| 1000 || 230 | |||
|- | |||
|} | |||
计算公式:[https://forums.factorio.com/103145] | |||
<pre>1 <= pipes < 197: | |||
最大流量 = 10000 / (3 * 管道数量 - 1) + 1000 | |||
pipes >= 197: | |||
最大流量 = 240000 / (管道数量 + 39)</pre> | |||
=== 桶装运输 === | |||
'''{{L|Barrel}}'''被{{L|Assembling machine}}使用,来有效地将液体“装瓶”成可与任何其他物品一样处理的物品;携带在背包中,放置在箱子中和被{{L|Inserters}}处理。这允许玩家通过{{L|Belt transport system}}运输流体。装配机也用来将桶倒空,释放它们的内容物到管道中,剩下一个空桶供另一种用途。 | |||
=== 铁路运输 === | |||
'''[[Railway/zh|铁路]]'''是另一种运输流体的方法,可以用两种方式进行:要么将流体直接泵入{{L|Fluid wagon}},要么将它们倒进桶中并装入{{L|Cargo wagon}}。这两种方法有明显的区别:货运车厢可以容纳不同类型的流体桶,然而液罐车厢可以容纳更多的流体(25k对20k),并且可以在几秒内被清空和填充,在速度与桶的机械臂需要不足以匹配的资源消耗;而{{L|Stack inserter}}可以快速转移桶,装桶的机器慢。[https://forums.factorio.com/viewtopic.php?f=5&t=48185](英文) 另一方面,当列车在行驶途中时,流体可被装桶/倒桶。 | |||
== 请参见 == | |||
* {{L|Oil processing}} | |||
* {{L|Power production}} | |||
* [https://forums.factorio.com/viewtopic.php?f=18&t=19851 深入流体机制](英文) | |||
* [https://www.reddit.com/r/factorio/comments/6w9kwi/factorio_and_fluid_mechanics_science_facts_myths/ 另一篇流体机制的深究](英文) | |||
* [https://forums.factorio.com/viewtopic.php?f=5&t=46030 用多少泵和多少管道换得多少流量](英文) |
Latest revision as of 17:16, 18 August 2022
流体是非固体的物品,例如水和油。它们正常情况下只能存在于流体处理(如管道)的实体内部,和有流体输入或产物的建筑(如炼油厂)。
原理机制
流体可以通过移除容纳它们的建筑或管道而被破坏。同时只能有一种流体可以占据给定的管道段或储液罐;没有两种流体会混合,而是会阻止彼此流动。它们不能由玩家携带、使用机械臂移动、掉落在地上或储存在箱子中,除非流体被储存在空桶中。它们不能被泼出或倾倒在湖中,并且用连续的分数来计数,而不是离散的整数。
储存方式
在游戏中,流体被保存在具有定义的尺寸(容积)的容器实体中。如果它们的输入/输出是相邻的(管道连接到所有方向)并且允许流体在它们之间流动,则容器会自动地相互连接。
容器中包含的流体的体积是一个介于0和最大体积之间的值。例如,管道可以容纳100单位流体,因此管道中的数值可以在0到100之间。在一个给定的实体中,流体的液位是用流体所占据的实体最大体积的百分比来表示的。它可以在管道和储液罐中被观察到;它们有窗口,通过这些可以看到流体在一定的液位,或者甚至只是一个小的细流。
流动规则
所有连接的储液罐和管道都被视为一个单一的容器,即流体的液面必须在所有部分中是相等的,甚至是在较小的流体上产生更高的液位所产生的压强。这就是为什么液位通常也被称为压强,尽管压强实际上是由两个实体之间的液位差引起的。管道之间发生的所有流体流动都是为了实现这种平衡(泵实际上忽略了它,而建筑物扰乱了它;更多的在下面进一步说明)。管道之间的流量取决于压强(相邻实体之间的液位差),它会随着管道的液位变平缓而减慢。
回到“液位”是如何定义的,这也意味着所有连接的管道和储液罐试图均匀输出到它们各自体积的相同百分比。例如,如果剩余12550个单位的流体流进连着一根100个单位容量管道的25000个单位容量的液罐,则液罐中会有12500个单位流体,管道中有50个单位,它们都被填充到各自容量的相同的百分比(50%),即使数量本身显然是不等的。
生产流体的机器把流体放在它们的输出槽中,这与机器上某个特定标记的输出管口有关(按下Alt显示标签)。这个槽将尝试将自身清空,流体排到连接到机器管口的实体中,中,除非它是满的,或者包含不匹配的流体。消耗流体的机器也有相应标记的输入管口。如果一个包含正确流体的实体连接到它,机器将开始表现得像一个永远不能被填满的管道,这意味着来自连接的管道和液罐的流体以固定的速率流入机器,直到机器的输入槽被填满。可能有机器同时有输入和输出的管道口(就像电力采矿机放置在铀矿上。然后它们首先为自己填充液体,一旦充满,就表现为一个规则的管道,试图与相邻的实体平衡液位。如果机器上有多个流体输出/输入管口,则流体的活动被均匀地分配给它们,除非它们中的一些被阻塞/充满。
流体温度
温度目前仅与加热作为发电介质的水有关。尽管游戏中的所有流体都有温度值,但它通常是默认的15℃。
无论是从在锅炉中的燃料还是通过换热器从核能中获得的能量,都可用来将水转化成蒸汽,成为流体工作的形式。每单位蒸汽以0.2kJ/℃的比率保持能量。换言之,加热1单位蒸汽使其温度升高1℃需要做0.2kJ功。因为蒸汽/水被设定有最高温度1000℃和最低15℃,对每单位最多可做的功为197kJ。
在实际应用中,这在各方面几乎没有得到利用:锅炉仅输出165℃的蒸汽,换热器仅输出500℃的热蒸汽,从来不更热或更冷;如果提供的能量不足,加热器不全输出蒸汽。随着时间的推移,蒸汽也不会变冷。在蒸汽机中使用165℃蒸汽和在汽轮机中使用具有相同的效果,尽管这是不切实际的,因为汽轮机被做成消耗500℃(过热)蒸汽,生成比例更大的电力。所有这些都不需要精确的计算。
流体运输
流体可以通过管线、桶或铁路运输。一般情况下,短距离使用管道对机器进行分配(或装桶,如果需要使用传送带),以及更长的距离用铁路运输。
运输管线
管道是流体从A到B的最基本通道。它们自动连接到任何相邻的管道,同时可以对所有四个方向进行处理。地下管道只在两个相反的方向上工作,连接到另一个地下管道的一侧,并在另一端连到另一个实体上。如果管道段太长而不使用泵,它内部的所有流体都将“分散”,导致非常缓慢的流动,阻止机器有效地使用它的内容。储液罐的行为与管道相同,除了它们的体积大得多,如果使用多个液罐,这能在更短的距离造成这样的不便。地下管道有助于缓解这一问题;尽管它们可以连接多达10格的距离,它们的体积总是相当于两个管道。
管道泵使用电能来在一个方向上很快地传输流体。它们还阻挡任何回流,这意味着它们可以对管道的部分进行加压,尽可能多地填充管道。除其他事项外,这在抵消上述“分散”方面是非常有用的。它们也可以被信号网络禁用,即停止流体通过泵。
下表展示了在有一定频率的泵的管线中流体流动的速度。如果需要更高的流量,泵应该被更频繁地放置。由于地下管道仅按体积算作2根常规管道,如果在每个地下部分之间放置泵,则全长区段仅作为表中的两根管道。在泵之前放置一个装满的储液罐确保了最大可能的流速,因此这是任何管线的合适开端。
两个泵之间 管道数量 |
最大流量 (单位/秒) |
---|---|
0(泵到泵) | 12000 |
0(罐到泵) | 12000 |
0(泵到罐) | 11707 |
0(泵到锅炉) | 8400 |
1 | 5400 |
2 | 3000 |
3 | 2250 |
7 | 1500 |
12 | 1285 |
17 | 1200 |
20 | 1169 |
30 | 1112 |
50 | 1067 |
100 | 1033 |
150 | 1022 |
200 | 1004 |
261 | 800 |
300 | 707 |
400 | 546 |
500 | 445 |
600 | 375 |
800 | 286 |
1000 | 230 |
计算公式:[1]
1 <= pipes < 197: 最大流量 = 10000 / (3 * 管道数量 - 1) + 1000 pipes >= 197: 最大流量 = 240000 / (管道数量 + 39)
桶装运输
油桶被组装机使用,来有效地将液体“装瓶”成可与任何其他物品一样处理的物品;携带在背包中,放置在箱子中和被机械臂处理。这允许玩家通过传送带运输系统运输流体。装配机也用来将桶倒空,释放它们的内容物到管道中,剩下一个空桶供另一种用途。
铁路运输
铁路是另一种运输流体的方法,可以用两种方式进行:要么将流体直接泵入液罐车厢,要么将它们倒进桶中并装入货运车厢。这两种方法有明显的区别:货运车厢可以容纳不同类型的流体桶,然而液罐车厢可以容纳更多的流体(25k对20k),并且可以在几秒内被清空和填充,在速度与桶的机械臂需要不足以匹配的资源消耗;而堆叠机械臂可以快速转移桶,装桶的机器慢。[2](英文) 另一方面,当列车在行驶途中时,流体可被装桶/倒桶。
请参见
- 原油处理
- 电力生产
- 深入流体机制(英文)
- 另一篇流体机制的深究(英文)
- 用多少泵和多少管道换得多少流量(英文)