切换语言: Deutsch English 日本語 Nederlands Polski Русский Українська

Balancer mechanics/zh: Difference between revisions

From Official Factorio Wiki
Jump to navigation Jump to search
Leaveye (talk | contribs)
translate from en page, to support guide from MainPage
 
Cardinal (talk | contribs)
m Sync with English version.
 
(7 intermediate revisions by 3 users not shown)
Line 1: Line 1:
{{Languages}}
{{Languages}}{{Translation verification|revisionID=214248}}
{{Translation|Balancers}}用于向多个{{L|Transport belts}}或多个{{L|Belt transport system|线路}}等量分配物品。
{{Translation|Balancers}}用于在多条{{L|Transport belts}}或[[glossary/zh#L|线路]]之间均匀地分配物品。


{{Translation|Balancers}}从所有的输入{{Translation|Transport belts}}/线路等量输入物品。同时向所有的输出{{Translation|Transport belts}}/线路等量输出。也就是说,{{Translation|Balancers}}应是平衡地输入与输出。
{{Translation|Balancers}}可以从所有接入的{{Translation|Transport belts}}/线路上均等地获取物品,同时向所有引出的{{Translation|Transport belts}}/线路均等地输出。理想情况下,{{Translation|Balancers}}应该同时实现输入和输出的均分。


== 传送带{{Translation|Balancers}} ==
== 传送带均分 ==


[[File:Balancer_Mechanics1.png|thumb|200px|right|一条满载的输入传送带被分成两条 50% 运量的传送带,再被分成 4 条 25% 运量的。]]
{{Translation|Balancers}}利用了{{L|Splitters}}以1:1比例将物品输出到两个端口的机制。这意味着可以使用分流器向两条传送带均匀地输出等量物品。由于此操作可以无限重复,因此很容易构建带有2<sup>n</sup>条输出传送带的均分器。
传送带{{Translation|Balancers}}利用{{L|Splitter}} 1:1 地分配给输出{{L|Transport belt}}的机制。一个{{Translation|Splitter}}向两个{{Translation|Transport belt}}等量输出物品。因为这种操作可以无限地重复下去,2<sup>n</sup> 个输出的均衡器很容易构造。{{clear}}


[[File:Balancer_Mechanics2b.png|thumb|450px|right|A 和 B 首先经过{{Translation|Splitter}},输出两条包含等量物品的来自 (AB) 的{{Translation|Transport belts}}。CD 也一样。然后混合{{Translation|Transport belts}} AB 和 CD 经过{{Translation|Splitter}},输出{{Translation|Transport belts}}就运载了等量来自所有输入的物品 (ABCD)!]]
均分器还利用了分流器从两个输入端等量获取物品的机制,即分流器会从两条接入端传送带上均等地获取物品,再将它们均等地分配到两条输出端传送带上。为了实现均分功能,必须保证输出端的传送带等量地包含来自每条输入端传送带的物品。
{{Translation|Balancers}}也利用{{L|Splitter}}的从两侧输入等量获取物品的机制。即{{Translation|Splitter}}会从相连的两条输入{{Translation|Transport belts}}等量分配物品到两条输出{{Translation|Transport belts}}上。要想均衡,就要保证输出{{Translation|Transport belts}}等量包含了来自每个输入{{Translation|Transport belts}}的物品。{{clear}}
 
<gallery class="center" widths=200px heights=300px>
File:Balancer_Mechanics1.png|一条满载的传送带被分为两条50%满载的传送带,再被分为四条25%满载的传送带。
Balancer_Mechanics2b.png|传送带A和B首先经过一个分流器,使引出的两条传送带包含等量的来自A和B的物品(AB×2),C和D亦然。然后,两组AB和CD传送带再次经过分流器,使所有引出的传送带最终都包含等量的来自A~D传送带的物品(ABCD)
</gallery>
{{clear}}


=== 流量 ===
=== 流量 ===
[[File:4to4_balancer_throughput_limit_demo.gif|right|384px]]
'''流量受限'''的{{Translation|Balancers}}在存在输出受阻的情况下达不到最大吞吐量。要想'''流量''不''受限''',{{Translation|Balancers}}必须完全满足以下条件:
#100% 流量满载。
#任意数量的输入{{Translation|Transport belts}}均可以去往任意数量的输出{{Translation|Transport belts}}。


{{Translation|Balancers}}常因内部的瓶颈无法满足第二条。右侧的动图表示了 2 条{{Translation|Transport belts}}供给的 4 &rarr; 4 {{Translation|Balancers}},然而仅有一条{{Translation|Transport belts}}在输出意味着此布局下,流量只能达到 50% 。这个{{Translation|Balancers}}的瓶颈在两个中间的{{Translation|Transport belts}}只能从一个{{Translation|Splitter}}获取输入。因此如动图所示,如果{{Translation|Splitter}}只有一侧获取输入,这个{{Translation|Balancers}}只有一条{{Translation|Transport belts}}的运力,即使其输入侧供给了两条满载{{Translation|Transport belts}}。在此情况下,使用更多的{{Translation|Splitter}}来供给中间的两条输出{{Translation|Transport belts}}可以抵消瓶颈。比如在均衡器最后加入两个额外的{{Translation|Splitter}},如图:[[File:4to4_balancer.png|center|125px]]
流量'''受限'''的{{Translation|Balancers}}在一路或多路输出端阻塞的情况下可能无法达到最大运输量。要使流量'''不受限''',{{Translation|Balancers}}必须满足以下条件:
# 100% 流量满载。
# 任意数量的输入端传送带均可连接到任意数量的输出端传送带。
 
{{Translation|Balancers}}常因其内部的运输瓶颈无法满足第二个条件。下方图1展示了一个四路均分器,其中输入端有两条满载传送带供货,但输出端的总流量仅有一条传送带的满载运量(两条50%满载),即在此布局下,流量只能达到 50% 。这个均分器的瓶颈在于中间的两条传送带只能从一个分流器中获取货物。因此,如果均分器只有一侧有货物输入,即便输入端的两条传送带是满载的,最终的总输出运量也只有一条满载传送带的运量。在此情况下,可以通过为中间的两条输出传送带配置更多的分流器来解决这个问题。比如在均分器后端增加两个额外的分流器,如下方图2所示:
 
<gallery class="center" widths=200px heights=300px>
4to4_balancer_throughput_limit_demo.gif|图1:一个四路均分器,在单侧由2条传送带供应货物,但总输出量仅有1条满载传送带。
4to4_balancer_throughput_full_demo.gif|图2:改进型四路均分器,所有输出端口均可满载输出。
</gallery>
 
然而,大多数均分器的瓶颈问题并不能轻易解决。一个确保均分器流量不受限制(输入满载时发挥100%运力)的方法是将两个满足条件1的均分器背对背放置。这样设计的均分器通常比初始设计的流量大一些。这是因为改进型设计使用的分流器比初始设计所需的分流器的最少数量要多一些。对于n路均分的均分器,若n是2的幂,可以使用公式<code>n×log<sub>2</sub>(n)−n÷2</code>计算所需的分流器数量。这个公式基于[[WIKIPEDIA:Clos_network#Bene%C5%A1_network_(m_=_n_=_2)|Beneš网络]]中的节点数量,本质上等同于一个流量不受限的均分器 — 允许任一输入端连接到任一输出端。
 
=== 通用均分器 ===
 
很多均分器在输出端堵塞或未使用时无法正确实现均分功能。从本质上来说,一个n路均分的均分器并不能实现 n 分 (n-1) 路的均分功能。有时可以通过将未使用的输出端循环引入输入端,并在输入端间进行均分来解决此问题,但在另外一些情况下这可能并不奏效。通用均分器通过内置输入-输出端循环来解决均分问题,此类均分器理论上可以在任意情况下保持输入端和输出端的均分。通用均分器也可能会有流量限制,流量瓶颈可能源自内部循环,也可能是均分器本身的设计问题。流量受限的通用均分器可能只能在少数输出端堵塞时维持运行,一旦堵塞/未使用的输出端超过允许的数量时,通用均分器也可能像普通均分器一样失灵。


然而大多{{Translation|Balancers}}的瓶颈无法这样简单地解决。一个确保{{Translation|Balancers}}流量不受限(满载下 100% 运力)的方法是将两个满足条件 1 的{{Translation|Balancers}}背对背放置。这样为流量不受限修正过的{{Translation|Balancers}}通常要比初始设计的大一些。这是因为这样设计的一个流量不受限的{{Translation|Balancers}}所需的{{Translation|Splitter}}要比最小需求量多一些。对于 n &rarr; n 的{{Translation|Balancers}},若 n 是 2 的幂,可以用 {{Key|n×log<sub>2</sub>(n)−n÷2}} 计算所需的{{Translation|Splitter}}数量。这个公式基于[[WIKIPEDIA:Clos_network#Bene%C5%A1_network_(m_=_n_=_2)|Beneš 网络]]的节点数,其实质上等同于一个流量不受限的{{Translation|Balancers}} — 允许任一输入到达任一输出。
{{clear}}
{{clear}}


== 线路{{Translation|Balancers}} ==
== 线路均分 ==
[[File:Lane_balancer_mechanics.png|thumb|right|物品被分配到输出{{Translation|Transport belts}}的两侧,达成了输出的平衡。]]
线路均分器可以在输入端均分,也可以在输出端均分。输入端均分器会从输入端传送带的两条线路上等量获取物品,而输出端均分器则会将物品等量分配到输出端传送带的每条线路上。
线路{{Translation|Balancers}}将输入的物品等量分配到输出的线路上,同时输入也是等量获取的。{{clear}}
 
<gallery class="center" widths=200px heights=300px>
Lane_balancer_mechanics.png|此均分器可将输入端线路上的物品均匀分配到输出端的两条线路上。 {{BlueprintString|bp-string=0eNqd01GLwyAMAOD/kmc3qlU7+1fGcbRbOIQ2LeqOG8X/PruN3cNZuPmmknwmhCzQDxecnaUA7QL2NJGH9riAt1/UDesbdSNCC8F15OfJhV2PQ4DIwNIZf6Dl8YMBUrDB4iP3frl+0mXs0aUAtmEwmCef0iZa/0nUTlZ8rxhc01Ec9ipG9kcTZZrJa/U7mnhpTdIYnK3D0yNEZmxZZut8paqs7yav6Xe0artvLjJ4U4ZvNH4oa1z/Z0TmZft5sCGkt+xwnqbKV8irshLlBle4MPXKpV20AceU+7vYDL7R+XuW0sJIY5QSSteCx3gD6bVJ7A==}}
</gallery>
 
{{clear}}


== 参见 ==
== 参见 ==
Line 33: Line 52:
** {{L|Underground belts}}
** {{L|Underground belts}}


== 深入阅读 ==
== 扩展阅读 ==
* [https://gist.github.com/Bilka2/aeec4ff7123ff5544cb9a80cf1046a06 {{Translation|Balancers}}蓝图包]
* [https://forums.factorio.com/34182 基于命令行的均分器分析工具] (官方社区、英文)
* [https://forums.factorio.com/34182 Command line belt balancer analyzer]
* [https://forums.factorio.com/viewtopic.php?p=344279#p344279 (2<sup>n</sup>) 型均分器生成工具] (官方社区、英文)
* [https://forums.factorio.com/viewtopic.php?p=344279#p344279 分形 (2<sup>n</sup>) {{Translation|Balancers}}生成器]
* [https://forums.factorio.com/61424 传送带均分器 - 工作原理和设计方法] (官方社区、英文)
* [https://forums.factorio.com/61424 Belt Balancers - how they work and how to make them]
* [https://forums.factorio.com/63462 寻找均衡:均分器指南] (官方社区、英文)
* [https://forums.factorio.com/63462 Finding balance: A guide to belt balancers]
 
{{C|Belt transport system/zh{{!}}#Balancer mechanics}}

Latest revision as of 07:35, 31 July 2025

均分器用于在多条传送带线路之间均匀地分配物品。

均分器可以从所有接入的传送带/线路上均等地获取物品,同时向所有引出的传送带/线路均等地输出。理想情况下,均分器应该同时实现输入和输出的均分。

传送带均分

均分器利用了分流器以1:1比例将物品输出到两个端口的机制。这意味着可以使用分流器向两条传送带均匀地输出等量物品。由于此操作可以无限重复,因此很容易构建带有2n条输出传送带的均分器。

均分器还利用了分流器从两个输入端等量获取物品的机制,即分流器会从两条接入端传送带上均等地获取物品,再将它们均等地分配到两条输出端传送带上。为了实现均分功能,必须保证输出端的传送带等量地包含来自每条输入端传送带的物品。

流量

流量受限的均分器在一路或多路输出端阻塞的情况下可能无法达到最大运输量。要使流量不受限,均分器必须满足以下条件:

  1. 100% 流量满载。
  2. 任意数量的输入端传送带均可连接到任意数量的输出端传送带。

均分器常因其内部的运输瓶颈无法满足第二个条件。下方图1展示了一个四路均分器,其中输入端有两条满载传送带供货,但输出端的总流量仅有一条传送带的满载运量(两条50%满载),即在此布局下,流量只能达到 50% 。这个均分器的瓶颈在于中间的两条传送带只能从一个分流器中获取货物。因此,如果均分器只有一侧有货物输入,即便输入端的两条传送带是满载的,最终的总输出运量也只有一条满载传送带的运量。在此情况下,可以通过为中间的两条输出传送带配置更多的分流器来解决这个问题。比如在均分器后端增加两个额外的分流器,如下方图2所示:

然而,大多数均分器的瓶颈问题并不能轻易解决。一个确保均分器流量不受限制(输入满载时发挥100%运力)的方法是将两个满足条件1的均分器背对背放置。这样设计的均分器通常比初始设计的流量大一些。这是因为改进型设计使用的分流器比初始设计所需的分流器的最少数量要多一些。对于n路均分的均分器,若n是2的幂,可以使用公式n×log2(n)−n÷2计算所需的分流器数量。这个公式基于Beneš网络中的节点数量,本质上等同于一个流量不受限的均分器 — 允许任一输入端连接到任一输出端。

通用均分器

很多均分器在输出端堵塞或未使用时无法正确实现均分功能。从本质上来说,一个n路均分的均分器并不能实现 n 分 (n-1) 路的均分功能。有时可以通过将未使用的输出端循环引入输入端,并在输入端间进行均分来解决此问题,但在另外一些情况下这可能并不奏效。通用均分器通过内置输入-输出端循环来解决均分问题,此类均分器理论上可以在任意情况下保持输入端和输出端的均分。通用均分器也可能会有流量限制,流量瓶颈可能源自内部循环,也可能是均分器本身的设计问题。流量受限的通用均分器可能只能在少数输出端堵塞时维持运行,一旦堵塞/未使用的输出端超过允许的数量时,通用均分器也可能像普通均分器一样失灵。

线路均分

线路均分器可以在输入端均分,也可以在输出端均分。输入端均分器会从输入端传送带的两条线路上等量获取物品,而输出端均分器则会将物品等量分配到输出端传送带的每条线路上。

参见

扩展阅读