Actions

Temperature independent fuel mixing

From Unofficial Stationeers Wiki

Revision as of 10:38, 12 April 2021 by Wark (talk | contribs)

Making fuel with a 33:67 setting on the gas mixer when the incoming O2 and H2 have different temperatures will result in an incorrect mix.

Instead of waiting for the temperatures to equalize, one can build a circuit that calculates the necessary setting on the gas mixer to always produce perfect fuel. The fuel will really be perfect because the gas mixer allows decimal values, so it has an incredibly accuracy. Just don't forget that making hot fuel will lead to explosions, if that should happen, please enjoy the strongest and most perfect explosion possible.

Components needed:

  • 3 logic I/O (2 readers, 1 writer)
  • 5 logic processor (all math)
  • 3 logic memory
  • 2 pipe analyzer
  • 1 gas mixer


Build:

On the gas mixer, connect O2 to input 1 (side) and H2 to input 2 (top)

  • 2 pipe analyzers
    • On the O2 and H2 sides
  • 2 logic readers
    • T.o = Temperature on the pure oxygen side
    • T.v = Temperature on the pure volatiles side
  • 2 math and 1 memory unit to calculate T.o/(2*T.v)
    • A = 2*T.v
    • B = T.o/A
  • 2 math and 1 memory unit to calculate the ratio of oxygen (result between 0 and 1)
    • C = B+1
    • D = B/C
  • 1 math and 1 memory to get a final value between 0 and 100, the range that the gas mixer wants
    • result = 100*D
  • 1 logic writer to send the result to the gas mixer
    • The gas mixer will accept decimal values, so the mix will be a perfect 2:1 mix of H2 and O2


Additional:

  • Use a PAC or Transformer to put this circuit on it's own data network
  • The circuit will require 180W on standby and 280W while mixing fuel



The fun math part that everyone will read

The ideal gas law, the chemical formula and some understanding of the gas mixer is all that's needed to find the desired equation

  • PV=nRT
  • 1 O2 + 2 H2 -> products

We want one expression for oxygen and another for volatiles, .o and .v will be used to indicate if it's oxygen or volatiles

  • oxygen: P.o*V.o = n.o*R*T.o
  • volatiles: P.v*V.v = n.v*R*T.v

The chemical formula tells us how n.o and n.v are related, n.v is twice the value of n.o, so we can remove the .o and .v by replacing them with n again

  • n.o = n
  • n.v = 2n

Now we will use this to solve both expressions for n

  • oxygen: n = P.o*V.o / (R*T.o)
  • volatiles: n = 1/2 * P.v*V.v / (R*T.v)

Combine the expressions

  • P.o*V.o / (R*T.o) = 1/2 * P.v*V.v / (R*T.v)

We now cancel R from both sides. We can also remove P.o and P.v because the gas mixer is already compensating for differences in incoming pressures so we don't have to deal with that, this leaves us with

  • V.o/T.o = 1/2 * V.v/T.v

The gas mixer can only influence the volume, not the temperature, so we will solve for the volume ratio

  • V.o/V.v = T.o/(2*T.v)

The V.o/V.v ratio has no unit, it's just a number. So we can replace it with the settings on the gas mixer, because the value itself is unchanged from doing that

  • 1) Ratio.o/Ratio.v = T.o/(2*T.v)

This is our first equation.
We now have two unknowns, Ratio.o and Ratio.v, and one equation. The gas mixer can give us another equation, looking at the input values of it tells us that it accepts values between 0 and 100 percent, it even takes decimal values if the Labeler is used which is great, it means there won't be any rounding errors in the fuel, it will be a perfect 1:2 ratio.

  • 2) Ratio.o + Ratio.v = 100% = 1

Two equations, two unknowns. This can be solved.
It doesn't really matter if we choose Ratio.o or Ratio.v, the only effect from this is to determine which pipe goes where on the gas mixer. Let's use oxygen on input 1 and volatiles on input 2. That means we should calculate Ratio.o, so lets remove Ratio.v via substitution

  • Ratio.v = 1 - Ratio.o

now substitute this into the first equation

  • Ratio.o/(1-Ratio.o) = T.o/(2*T.v)

After some algebra we get

  • Ratio.o = T.o/(2*T.v) / (1 + T.o/(2*T.v))

To make it easier to look at, lets substitute T.o/(2*T.v) for k

  • Ratio.o = k / (1 + k)

However, the gas mixer demands values between 0 and 100, so we must multiply with 100 to get the correct range

  • gas mixer setting = 100 * T.o/(2*T.v) / (1 + T.o/(2*T.v))

This is our final equation and what the circuit will calculate. This result will be sent to the gas mixer. And as mentioned above, this equation expects the O2 pipe to be connected to input 1.