Loading nuclear reactors
- Distelzombie
- Filter Inserter
- Posts: 336
- Joined: Tue May 02, 2017 4:27 pm
- Contact:
Re: Loading nuclear reactors
I found that you can use a very simple setup: A inserter (with stack override to one) comming from an assembler with wires to tanks. Inserter rule is: If water = 0 insert.
This will insert only one fuel if necessary. The reactor will always stay at 500°C and there are only seconds in between where its not producing power. Very simply = simple results.
This will insert only one fuel if necessary. The reactor will always stay at 500°C and there are only seconds in between where its not producing power. Very simply = simple results.
Complete 2-Lane system as a Blueprint-Book!
The perfect OCD reactor?
Testing chained science lab efficiency
Please use real prefixes and proper rounding!
- Distelzombie
- Filter Inserter
- Posts: 336
- Joined: Tue May 02, 2017 4:27 pm
- Contact:
Re: Loading nuclear reactors
For people who want early game setups:
One Reactor
Distelzombie wrote:I found that you can use a very simple setup: A inserter (with stack override to one) comming from an assembler with wires to tanks. Inserter rule is: If water = 0 insert.
This will insert only one fuel if necessary. The reactor will always stay at 500°C and there are only seconds in between where its not producing power. Very simply = simple results.
- Attachments
-
- OneReactorSetup.png (303.9 KiB) Viewed 7910 times
Complete 2-Lane system as a Blueprint-Book!
The perfect OCD reactor?
Testing chained science lab efficiency
Please use real prefixes and proper rounding!
- Killcreek2
- Long Handed Inserter
- Posts: 73
- Joined: Sat Dec 10, 2016 8:39 am
- Contact:
Re: Loading nuclear reactors
Derp, you are correct, I forgot the neighbour bonus when working it out. Nice catch, thanks.torne wrote:Doesn't that make the fuel efficiency *worse*, not better? When you're just running one reactor, you are consuming half as much fuel, but only generating 25% as much steam. It's most fuel efficient to always load all of the reactors with fuel at the exact same time, because of the adjacency bonus, and let them all turn off together as well when you have plenty of steam.Killcreek2 wrote:Here is the setup I'm using: One core is powered constantly [only 1 fuel cell at a time], the second core is only powered up if the 500 degree steam tanks drop below threshold level, for better fuel efficiency.
"Functional simplicity, structural complexity." ~ Appleseed
-
- Fast Inserter
- Posts: 163
- Joined: Fri May 16, 2014 2:30 pm
- Contact:
Re: Loading nuclear reactors
Took me a while to work through exactly what was going on, but that's helpful. I created a solution last night, but I wasn't happy with the results because it required about 8 combinators, and it was still kind of finicky. I had RS latches for "reactor inserter running" and "reactor running," plus a bunch of tests to make sure that the load-the-chest inserter did not run at the same time as the load-the-reactor inserter.Killcreek2 wrote:@OP There is a simple 1-combinator [per reactor core] solution to only load 1 fuel at a time: the Memory cell.
I think the key thing I was missing was the idea of reading the contents of the inserter loading the reactor. You couldn't do that in version 0.12, and I'm still not up to speed on all the combinator improvements since then. I was doing it in a much clumsier fashion, by checking if the chest went from full -> empty.
It's also helpful to use a latch that uses (set signal > reset signal) instead of (signal > 0).
As for hooking the reactor to the larger grid - that part was easy. I'm using a power switch, and a RS latch that turns it on when the accumulator charge < 25 and off when it's > 80. I started with a simple test (no combinator needed), but while that works fine with steam engines it's not so great with turbines, which have a spin-up time.
If the reactor power output is much larger than the main grid demand, which it usually is with nuclear power setups, the result is that the turbines rapidly charge the main grid's accumulators and then disconnect.
One thing I belatedly realized is that nuclear power is not very sustainable until you get a Korvax enricher running. Regardless of how much ore you're mining, each centrifuge produces only 1 U235 per 1428 seconds, versus a burn time of 200 seconds per cell. A Korvax enricher centrifuge produces 1 U235 per 50 seconds, so one enricher can keep 4 reactors running continuously. Centrifuges are quite expensive at 100 Advanced Circuits each, so you can't just spam them like furnaces or even oil refineries.
- Distelzombie
- Filter Inserter
- Posts: 336
- Joined: Tue May 02, 2017 4:27 pm
- Contact:
Re: Loading nuclear reactors
I realized you can simply add accumulators to overcome the one or two seconds of downtime. I think its a great solution.Distelzombie wrote:For people who want early game setups:
I found that you can use a very simple setup: A inserter (with stack override to one) comming from an assembler with wires to tanks. Inserter rule is: If water = 0 insert.
This will insert only one fuel if necessary. The reactor will always stay at 500°C and there are only seconds in between where its not producing power. Very simply = simple results.
Complete 2-Lane system as a Blueprint-Book!
The perfect OCD reactor?
Testing chained science lab efficiency
Please use real prefixes and proper rounding!
Re: Loading nuclear reactors
So I didn't see a High->Low transition combinators logic. Unfortunately I am not that good with combinators but what you need is
Memory ( if previous steam value >10)
AND
Current ( steam value < 10 )
When both are true inserter works which will only be true for 1 frame.
Memory ( if previous steam value >10)
AND
Current ( steam value < 10 )
When both are true inserter works which will only be true for 1 frame.
-
- Fast Inserter
- Posts: 163
- Joined: Fri May 16, 2014 2:30 pm
- Contact:
Re: Loading nuclear reactors
Yeah, I realized that, while Killcreek2's solution is a fine solution for loading 1 fuel at a time, it doesn't have any sort of edge detection. The setup he showed loads fuel cells as long as the steam is below the desired threshold. What we want is something that loads 1 when steam is low, and then stops.
This is the method I know for detecting transitions:
Comparison 1: If steam < 500, Green = 1.
Adder 1: Green + 0 -> output green. Delays signal by 1 tick.
Comparison 2: If adder output > comparison 1, green = 1.
The final comparator creates a 1-tick pulse (green = 1) when steam goes from above 500 to below. This should replace the simple (steam < threshold) comparison to set the "load reactor" latch.
The main drawback I can see is that it will do this every time there's a transition. So if steam gets above 500, then drops below while the reactor is running, the circuit loads another fuel cell prematurely. This seems possible if the steam is sloshing around between storage tanks, which I've seen happen.
This is the method I know for detecting transitions:
Comparison 1: If steam < 500, Green = 1.
Adder 1: Green + 0 -> output green. Delays signal by 1 tick.
Comparison 2: If adder output > comparison 1, green = 1.
The final comparator creates a 1-tick pulse (green = 1) when steam goes from above 500 to below. This should replace the simple (steam < threshold) comparison to set the "load reactor" latch.
The main drawback I can see is that it will do this every time there's a transition. So if steam gets above 500, then drops below while the reactor is running, the circuit loads another fuel cell prematurely. This seems possible if the steam is sloshing around between storage tanks, which I've seen happen.
Re: Loading nuclear reactors
Or if 1 rod is not enough to get steam reserves over the minimum your power plant will shut down for good. but at this point you are at or above the limits of the plant.
-
- Fast Inserter
- Posts: 163
- Joined: Fri May 16, 2014 2:30 pm
- Contact:
Re: Loading nuclear reactors
I spent some time experimenting, and ended up with a setup that's both simple and reliable.
I inverted Killcreek2's memory cell. The comparator reads:
If (fuel cells > used fuel cells) then output (1 fuel cell). The meaning is "if fuel cell is 1, the reactor is currently running."
Inputs are the loading and unloading inserters, as per Killcreek2's setup, and the output is to the loading inserter. Because I'm using red wire for both, the input and the output of the combinator are linked, and it's a memory latch. Loading a fuel cell sets the latch, and unloading a used cell clears it.
The test comparison near the storage tank is:
If (steam < 2000) then output (1 reactor). The meaning is "power needed if reactor = 1."
The input inserter works if power's being requested and the reactor is not running. The test is:
Enable if (reactor > fuel cell).
You don't need to use requester chests, as I did, a belt loading fuel cells into the chests works as well. I really wanted to do that, actually, but I didn't have enough space to make it fit, and I didn't want to move my reactors because I'd lose the current stored heat, and I'd also make the heat pipes longer.
Reactor Control
This requires one comparison combinator per reactor, does not need to be pre-loaded, and works if demand exceeds generation. No edge-transition detection is needed.I inverted Killcreek2's memory cell. The comparator reads:
If (fuel cells > used fuel cells) then output (1 fuel cell). The meaning is "if fuel cell is 1, the reactor is currently running."
Inputs are the loading and unloading inserters, as per Killcreek2's setup, and the output is to the loading inserter. Because I'm using red wire for both, the input and the output of the combinator are linked, and it's a memory latch. Loading a fuel cell sets the latch, and unloading a used cell clears it.
The test comparison near the storage tank is:
If (steam < 2000) then output (1 reactor). The meaning is "power needed if reactor = 1."
The input inserter works if power's being requested and the reactor is not running. The test is:
Enable if (reactor > fuel cell).
You don't need to use requester chests, as I did, a belt loading fuel cells into the chests works as well. I really wanted to do that, actually, but I didn't have enough space to make it fit, and I didn't want to move my reactors because I'd lose the current stored heat, and I'd also make the heat pipes longer.
Re: Loading nuclear reactors
Looks nice and simple.
Can you post a blueprint of control setup block?
It will be much easier to get conditions right
Can you post a blueprint of control setup block?
It will be much easier to get conditions right
- Killcreek2
- Long Handed Inserter
- Posts: 73
- Joined: Sat Dec 10, 2016 8:39 am
- Contact:
Re: Loading nuclear reactors
Actually with my setup it does not need any edge detection whatsoever: It only loads a new fuel cell when steam is low AND the reactor is empty, so it will never load multiple fuel even if the steam level flickers at the trigger point, as the input inserter trips the memory cell to OFF as soon as it grabs a fuel pack. [The right-hand reactor was setup this way in my previous pic, I now have both cores setup this way.]Gus_Smedstad wrote:Yeah, I realized that, while Killcreek2's solution is a fine solution for loading 1 fuel at a time, it doesn't have any sort of edge detection. The setup he showed loads fuel cells as long as the steam is below the desired threshold. What we want is something that loads 1 when steam is low, and then stops.
...
The main drawback I can see is that it will do this every time there's a transition. So if steam gets above 500, then drops below while the reactor is running, the circuit loads another fuel cell prematurely. This seems possible if the steam is sloshing around between storage tanks, which I've seen happen.
Would be very easy to add a 3rd wait condition, just add it to the input inserter wire & set inserter to if >2, so it only loads when all 3 conditions are true then disables itself.
Grats for getting your setup to work.
"Functional simplicity, structural complexity." ~ Appleseed
Re: Loading nuclear reactors
Awesome solution Gus_Smedstad!
Adopted it immediately due to its simplicity...
I really like how the refueling circuit is encapsuled and allows for simple remote control of the reactors.
Adopted it immediately due to its simplicity...
I really like how the refueling circuit is encapsuled and allows for simple remote control of the reactors.
-
- Fast Inserter
- Posts: 163
- Joined: Fri May 16, 2014 2:30 pm
- Contact:
Re: Loading nuclear reactors
Here's the blueprint string for just the control elements. It requires an external (reactor = 1) signal to load a fuel rod.
I could be mis-reading it, of course. Correct me if I'm wrong: your left-hand reactor has a test for low steam, less than 90k in the screen shot, and it sends out "used cell = 1" to the latch. This sets the latch, which in turn causes the reactor to load a fuel rod. This is true even if the reactor is already running. As long as steam is low, the latch is forced to stay in the reactor-off state (used cell = 1). If a new fuel rod appears in the chest before the steam rises, the circuit will load a second fuel rod.
My first, iffy solution to this problem was to add edge-detection, so low steam would set the latch, but wouldn't hold it set (used cell = 1) beyond the initial request.
I'm not really seeing anything to prevent this, but I'm going off a screen shot, and I don't always see all the implications of combinator wiring, so I might have missed something.
EDIT: I looked at the screen shot again, and it looks like the test (steam < 90k) sends the signal to the inserter, not the latch. Which means it doesn't affect the latch, but it does force the inserter to run regardless of the latch state. The inserter's only test is (used cell > 0), there's no AND condition there.
EDIT 2: I must be missing something, because my interpretation makes it look like the left-hand reactor will load fuel rods 1 at a time regardless of steam state, and will load an extra rod when steam is low. Maybe there's something in the cut-off area of the screen. Or something.
Nuclear Control Block
I don't think that's true. I got fixated on edge-detection for a while there because I thought I needed a latch to address they continuous-loading issue I perceived in your setup.Killcreek2 wrote:Actually with my setup it does not need any edge detection whatsoever: It only loads a new fuel cell when steam is low AND the reactor is empty
I could be mis-reading it, of course. Correct me if I'm wrong: your left-hand reactor has a test for low steam, less than 90k in the screen shot, and it sends out "used cell = 1" to the latch. This sets the latch, which in turn causes the reactor to load a fuel rod. This is true even if the reactor is already running. As long as steam is low, the latch is forced to stay in the reactor-off state (used cell = 1). If a new fuel rod appears in the chest before the steam rises, the circuit will load a second fuel rod.
My first, iffy solution to this problem was to add edge-detection, so low steam would set the latch, but wouldn't hold it set (used cell = 1) beyond the initial request.
I'm not really seeing anything to prevent this, but I'm going off a screen shot, and I don't always see all the implications of combinator wiring, so I might have missed something.
EDIT: I looked at the screen shot again, and it looks like the test (steam < 90k) sends the signal to the inserter, not the latch. Which means it doesn't affect the latch, but it does force the inserter to run regardless of the latch state. The inserter's only test is (used cell > 0), there's no AND condition there.
EDIT 2: I must be missing something, because my interpretation makes it look like the left-hand reactor will load fuel rods 1 at a time regardless of steam state, and will load an extra rod when steam is low. Maybe there's something in the cut-off area of the screen. Or something.
Re: Loading nuclear reactors
My solution to this issue has been inserters that pull from chests that never have more than one rod each when steam or accumulators get low, then have them refill the chests with a single rod once the steam/accu gets back up, 2 deciders and an arithmetic to AND them for the reset.
should be stable up to just below the point of overloading the output of the reactor, but at that point there isn't much that can be done with circuits and is anyone seriously using reactors at 100%?
should be stable up to just below the point of overloading the output of the reactor, but at that point there isn't much that can be done with circuits and is anyone seriously using reactors at 100%?
- Killcreek2
- Long Handed Inserter
- Posts: 73
- Joined: Sat Dec 10, 2016 8:39 am
- Contact:
Re: Loading nuclear reactors
I see where you got confused: The green wire running up the left of the screen is between big power poles.Gus_Smedstad wrote:I don't think that's true. I got fixated on edge-detection for a while there because I thought I needed a latch to address they continuous-loading issue I perceived in your setup.Killcreek2 wrote:Actually with my setup it does not need any edge detection whatsoever: It only loads a new fuel cell when steam is low AND the reactor is empty
I could be mis-reading it, of course. Correct me if I'm wrong: your left-hand reactor has a test for low steam, less than 90k in the screen shot, and it sends out "used cell = 1" to the latch. This sets the latch, which in turn causes the reactor to load a fuel rod. This is true even if the reactor is already running. As long as steam is low, the latch is forced to stay in the reactor-off state (used cell = 1). If a new fuel rod appears in the chest before the steam rises, the circuit will load a second fuel rod.
My first, iffy solution to this problem was to add edge-detection, so low steam would set the latch, but wouldn't hold it set (used cell = 1) beyond the initial request.
I'm not really seeing anything to prevent this, but I'm going off a screen shot, and I don't always see all the implications of combinator wiring, so I might have missed something.
EDIT: I looked at the screen shot again, and it looks like the test (steam < 90k) sends the signal to the inserter, not the latch. Which means it doesn't affect the latch, but it does force the inserter to run regardless of the latch state. The inserter's only test is (used cell > 0), there's no AND condition there.
EDIT 2: I must be missing something, because my interpretation makes it look like the left-hand reactor will load fuel rods 1 at a time regardless of steam state, and will load an extra rod when steam is low. Maybe there's something in the cut-off area of the screen. Or something.
The left reactor in that pic was not connected to the steam signal at all ~ that one was set to load 1 fuel only if empty, thus ran continuously on a single fuel cell at a time. [Was from testing one core at max load, my apologies that the wiring was not clearly shown to be separate.]
The right reactor input inserter is connected to both the output of the memory latch and the steam signal via different wires. As you noticed with your first edit, the steam signal does not enter or affect the "is reactor empty" latch.
The inserter is set to if >1, so it requires both the latch outputting "reactor empty"=1, and the signal to indicate "steam low "=1 before it activates.
If the reactor is empty, but there is plenty of steam it waits until the steam=low signal "tops up" the latch signal to the trigger point [>1]. Which then immediately trips the latch back to zero when the inserter grabs the next fuel cell, so that if the steam=low signal flickers it will not load extras.
"Functional simplicity, structural complexity." ~ Appleseed
Re: Loading nuclear reactors
So I changed my setup to be like yours and it works amazingly well. However I think you did not do a good job for formatting it.
1. Wire reactor output inserter to steam reserve tank.
2. Test if water is less then x (I used 1,000)
3. Set stack size to 1
4. Enable read hand contents
5. Wire reactor input inseter to reactor output inseter
6. Test if used fuel cores is greater then 0
8. Change stack size to 1
7. Seed your reactor with 1 fuel core
The only issue I can see is if you run out of fuel cores the reactor will not restart its self when more get made. However I not have a back log of 1500k U-235 so I dont see that happening any time soon
1. Wire reactor output inserter to steam reserve tank.
2. Test if water is less then x (I used 1,000)
3. Set stack size to 1
4. Enable read hand contents
5. Wire reactor input inseter to reactor output inseter
6. Test if used fuel cores is greater then 0
8. Change stack size to 1
7. Seed your reactor with 1 fuel core
The only issue I can see is if you run out of fuel cores the reactor will not restart its self when more get made. However I not have a back log of 1500k U-235 so I dont see that happening any time soon
Re: Loading nuclear reactors
I have a belt running around my reactors with splitters to pull off a single fuel cell for each reactor. The splitters make sure there's always a fuel cell ready under the fuel inserters so when they activate they all work simultaneously. I have a decider combinator wired up as a counter to count the empty cells as they're extracted. All of the inserters are set to read hand contents, so as soon as a reactor is finished the counter increments. The next decider just checks the steam level and forwards the counter if steam is low. The last combinator isn't strictly necessary, but makes the wiring simpler. It checks if empty fuel cells = 4 (number of cores) and outputs F=1. The fuel inserters are set to enable if F=1. When they pick up a fuel cell, they send that onto the circuit network which causes the counter to reset.
Since all of the fuel inserters operate simultaneously, they each load one fuel cell into their reactor before the counter resets. Because I'm using a counter to track empty fuel cells, if they're not synchronized it still works, and they won't start a new fuel cycle until the last one is finished.
blueprint string for the whole setup
Re: Loading nuclear reactors
My setup is fairly simple (4 deciders, 1 constant combinator).
This does mean that if I'm consuming energy faster than I can produce it (so that steam tanks aren't filling), I'll continue burning fuel cells, but that's what I want anyway.
- Constant combinator with a count of number of reactors, and the lower threshold for steam in a storage tank.
- One box per reactor containing one full fuel cell (stack size=1 inserter wired directly to it)
- One box per reactor containing one used fuel cell (stack size=1 inserter wired directly to it)
- Wire all the boxes together
- Wire the inserters which empty the boxes together
- Activate the inserters to empty the boxes when:
- Full fuel cells in boxes match the number of reactors (meaning that fuel is available for all of them), and
- Used fuel cells in boxes match the number of reactors (meaning that reactors have completed), and
- Steam in tank is below the defined threshold.
- The unused fuel cell box is refilled with from supply, and the empty fuel cell box remains empty until the reactors finish.
This does mean that if I'm consuming energy faster than I can produce it (so that steam tanks aren't filling), I'll continue burning fuel cells, but that's what I want anyway.
Re: Loading nuclear reactors
I've got a 2.4 GW reactor with perfect fuel cell loading across all cores. viewtopic.php?f=8&t=47070
It may be more power than what you're looking for, but it's controlled by just 5 combinators. Or maybe 6, I can't remember. I'm reaching the point in my game that I need another one. It's very easily scalable as well.
It may be more power than what you're looking for, but it's controlled by just 5 combinators. Or maybe 6, I can't remember. I'm reaching the point in my game that I need another one. It's very easily scalable as well.
-
- Burner Inserter
- Posts: 5
- Joined: Tue May 02, 2017 4:27 pm
- Contact:
Re: Loading nuclear reactors
I built a system which can handle 16 reactors (it can buffer more than twice a single fuel rod of output on each, or run over full capacity with 440 turbines. I have the steam to turbines separately controlled based on an accumulator (not part of this circuit). I might expand it more, it lives within the footprint of a single side of the reactors in case I want to do something insane like stack 128 of them.
My control circuit for the reactor and steam storage follows. It inserts exactly enough fuel to keep the reactor going when necessary, and starts instantly when steam goes below the specified level.
Blueprint for the main control (one pole, four decider combinators, one arithmetic combinator
Blueprint for each reactor (one inserter, one pole, one arithmetic combinator, one belt)
Usage: Connect the reactor circuits and the the steam tanks to the main control pole with red wire. The decision combinator sticking out chooses the amount of steam watch for, if it is under this amount the reactor will be on. To start it the first time, you must switch the top combinator (with the condition "1" < 11999) from an output of "input" to 1 and back to "input".
The only failure mode I am aware of is that no provision was really made for running out of fuel (I have a huge amount buffered). It will wait and pick up the next available fuel, but it uses a 200 second timer and will stack charges such that missing 5 fuelings means it will pick the next 5 up.
My control circuit for the reactor and steam storage follows. It inserts exactly enough fuel to keep the reactor going when necessary, and starts instantly when steam goes below the specified level.
Blueprint for the main control (one pole, four decider combinators, one arithmetic combinator
main control
Blueprint for each reactor (one inserter, one pole, one arithmetic combinator, one belt)
each reactor
Usage: Connect the reactor circuits and the the steam tanks to the main control pole with red wire. The decision combinator sticking out chooses the amount of steam watch for, if it is under this amount the reactor will be on. To start it the first time, you must switch the top combinator (with the condition "1" < 11999) from an output of "input" to 1 and back to "input".
The only failure mode I am aware of is that no provision was really made for running out of fuel (I have a huge amount buffered). It will wait and pick up the next available fuel, but it uses a 200 second timer and will stack charges such that missing 5 fuelings means it will pick the next 5 up.