【factorio】よく使うバランサー初級編、実際に計算してバランサーの構造を考える。

factorio

 こんにちは、よっさんです。今日はバランサーについて簡単に説明したいと思います。factorioで使用するバランサー、調べれば使いたいバランサーの情報やブループリントがあると思いますが、どういう仕組みになっているのかの説明がないものもあります。やみくもにブループリントを使っていても原理を知っておきたいという方のために、factorioでよく使うバランサーの紹介と、その仕組みについて紹介したいと思います。




1-6 バランサー

 factorioで私が一番初めに使用したバランサーです。このような形状になります。

 動作としては入力(黄色い矢印のところ)から入った部材を出力(青の矢印のところ)に均等に1/6に割り当てます。

使用場所・メリット

 列車の荷物を積むところです。貨物車両には片方に6列分の荷物の積み下ろしをするスペースがあります。採掘場で次の列車が到着するまでの間に、荷物を均等に最大までチェストに保管します。

 このバランサーを用意しないと、チェストの保管量にばらつきが発生します。そうすると、貯まっていないチェストは空になるとずっと動かず待機します。逆に一番貯まったチェストから細々と積み込みが発生します。よく列車の発車条件に”積荷が満杯”とか”インサータの動作が停止してX秒経過”とか設定して駅の待機時間を短くする工夫をすると思いますが、それが結果非効率になります。

仕組み・計算

 このバランサーを初めて見たとき、右上のフィードバックの部分が意味不明でした。本当に均等に割り当ててくれるのか、、、というわけで考えてみましょう。

 まずは、黄色の矢印の搬送量を\(a\)と置きます。次にこのフィードバックの部分、黒の矢印です。ここはよくわからないのでここをひとまず\(x\)と置きます。そうすると、1段目の分配器の出力(緑の矢印)は、平均化されるため、

\((a + x) / 2\)

と置けます。
次に右側の分配器の出力(橙の矢印)です。ここはこの緑の矢印を半分に分配することになるので、

\((a + x) / 4\)

となります。ここで出力の片方を1段目の入力に戻していますね。よって、黒と橙の矢印がつながるので下記の方程式が成り立ちます。

\( x=(a+x)/4 \)
→ \(4x=a+x\)
→ \(3x=a\)
→ \(x=\frac{1}{3}a\)

ここで、\(x\) が \(a\) の 1/3であることがわかりました。簡単な方程式ですが、果たして本当に6分配されるのでしょうか?ここで緑の矢印から\(x\)を削除します。

\((a + x ) / 2 = (a + \frac{1}{3}a) / 2 \)
\( =(\frac{4}{3}a) / 2 = \frac{2}{3} a \)

 青の矢印の①から④はこの緑の矢印を4分配していますね?つまり、

\(\frac{2}{3} a \times \frac{1}{4} = \frac{1}{6} a \)

 となります。では残りの⑤と⑥ですが、これは橙の矢印を2分配しています。つまり、

\({(a + x ) / 4} / 2 = {(a + \frac{1}{3}a) / 4} / 2 \)
\(= \frac{4}{3}a / 4 / 2 = \frac{1}{3} a / 2 \)
\( =\frac{1}{6} a \)

 これですべての矢印が \(\frac{1}{6}\)となり、均等に割りあたっていることがわかりました。




3-3バランサー

 本当に有名なのは4-4バランサーなのですが、これは本当によく見かけるので3-3バランサーを解説します。このような形状をしています。

使う場所・メリット

 メインバスで流動する部品の中には、「いや、これは4列はいらないだろ」というような部品もあります。例えば、鋼鉄とかプラスチック、赤基板とかでしょうか。

仕組み・計算

 これも同じようにそれぞれのラインに矢印を付けて見ていきます。

まずは入力が3つあります。これの流量をそれぞれ\(a, b, c\)とします。バランサーの目的は、出力のすべてのラインに対して\((a+b+c)/3\)に分配することです。またフィードバックが出てきました。これはxと置きましょう。

左の1段目の分配器の出力(青の矢印)は\(a\)と\(b\)の平均なので、

\((a+b)/2\)

となります。次に右の1段目の分配器の出力(紫の矢印)は\(c\)と\(x\)の平均なので、

\((c+x)/2\)

となります。では2段目の分配器の出力はどうでしょう。これは青と紫の矢印の平均なので、

\(\{(a+b)/2 + (c+x)/2\}/2 \)
\( = (a+b+c+x) /4\)

となります。ここで片方の出力がフィードバックされるため、赤と橙の矢印が繋がりましたここで方程式を立てて、\(x\)について解くと、

\(x = (a+b+c+x) /4 \)
→ \(4x = a+b+c+x \)
→ \(3x = a+b+c \)
→ \(x = (a+b+c)/3 \)

と求まります。ここから、出力がどうなるのかを見ていきます。ここで一番左の出力ですが、この橙の矢印がそのまま出力されています。つまり、\(x\)の値がそのまま出力されていますのでこの出力は\((a+b+c)/3\)と正しく分配がされていることがわかります。

残りの2つの出力ですが、これは青と紫の矢印の平均です。→ さっき求めた橙の矢印ですね。つまり、ここも\((a+b+c)/3\)と正しく分配されていることがわかります。
以上からすべての出力が等しく3分割されていることがわかるかと思います。



タイトルとURLをコピーしました