Introduction
This is my rafinery for plastic/solid fuels as main product. It has potential to be fully focused into SF/plastic production. Whole process has plastic production and LO into SF production generally turned on and i measure flows into both processes. If the ratio between production speeds (flows) and amounts of order are not same, the factory will try to manage LO and PG production via turning on/off of cracking LO-PG process or burning PG into SF. You can see all important values at green network illustrated on the picture. First two signals are amounts of order. The following one indicates flow into inividual processes (note that crude oil symbol is used for PG->SF production). Unit system is equal to LIQUID FLOW / 4 sec (so value 37 means 9.25 fluids per one second).
Why this approach? Hanging one simple order is not so important. Much mure interesting is how to handle some continous trend of plastic or solid fuel consumption. Keeping speed of plastic/solid fuel production proporational to missing content is wise setup for rafinarey in my point of wiev.
Stats
Maximum speed of plastic production = 1482 plastic / minute
Maximum speed of solid fuels production = 1845 SF / minute
Efficient production (no LO cracking & no PG burning) = 830 plastic / minute + 1222 SF / minute
Crude oil consumption = 1572 crude oil / minute
Some theory
The idea has two points.
1. Prepare the order at maximum speed in most efficient way
2. Use an arbitrariness at previous point for cracking LO->PG or burning PG into SF to keep speeds of processing proporotional to order amount
Note: Whole mechanism will not keep optimal ratio all the time. Its not a bug. If you have some left content of fluids in the tanks after previous process, the rafinery just use it to produce platic or SF (but it never overflow your order anyway). In that case the production will be even larger than mentioned efficient due to supply consumption.
I made a "control function" to satisfy this rules. Its definition is little bit complicated, but no so
C = 5*( (6*LO + 3*CO) * PL - 4 * PG * SF ) / sqrt ((SF+10)*(PL+10))
SF = remain of solid fuel order
PL = remain of plastic order
LO = speed of LO flow into SF production
CO = speed of PG flow into SF production
PG = speed of PG flow into platic production
And value C is set into rest of rafinery to control other processes:
C < -100: PG->SF is on
C < -500: PG->SF even steal some PG from plastic production
C > 100: 2/10 of cracking LO->PG is on
C > 200: 4/10 of cracking LO->PG is on
C > 300: 6/10 of cracking LO->PG is on
C > 400: 8/10 of cracking LO->PG is on
C > 500: 10/10 of cracking LO->PG is on
I know that "C" function is quite complicatated, however each parts has its puprpose. First of all, ideal value to keep second rule (keeping ratios) is when C is equal to zero. So all processes like LO->PG cracking or PG->SF burning try to keep this value nearby 0. There must be some clearence to avoid oscilate behavior (since both of processes are irreversible). And there is also normalization (with usinq square root) but it must be smart which meens it must be proportional into amounts of order and it should be oriented into lesser value in order (thats the reason why i used a gemetric mean calculated by square root).
Flow measurement
The idea is simple. Following image shows how it works. Just keep some value of your fluid in upper tank by bottom pump. You must satisfy all the setup (connections of tanks, connections of pumps into tanks). And the difference between tanks will be proportional to flow. Difference about 120-125 should be equal to 30 fluid/sec flow. You can use two pumps at each tank if you need to measure flow up to 60 fluids/sec. Management of order
I use a simple memory cell https://wiki.factorio.com/Combinator_Tu ... mory_Cells to keep order in memory. Following picture is an example how to add content from the belt into memory. I just multiply the signal from the belt by -1 in my rafinery to substract order by any piece of plastic/SF which left the rafinery. Constatnt combinator is used for setting your order manually. If you set R signal into any value different from 0, it will reset the memory. Any change of any content in constant combinator will pass into memory cell. Following combinators are:
1. each *(-1) -> each
2. each + 0 -> each
So it just add value multiplied by -1 to each signal which simply turns each signal into 0. However the multiplication is delayed by 1 tick so you obtain a value of change during a tick and store it into memory. Blueprint
Here is a blueprint of whole project. Just be careful on electricity wires connection, espetially between switches. All wires must follow the first picture.
Code: Select all
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