Loading nuclear reactors

Post all other topics which do not belong to any other category.
User avatar
Distelzombie
Filter Inserter
Filter Inserter
Posts: 336
Joined: Tue May 02, 2017 4:27 pm
Contact:

Re: Loading nuclear reactors

Post by Distelzombie »

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!
User avatar
Distelzombie
Filter Inserter
Filter Inserter
Posts: 336
Joined: Tue May 02, 2017 4:27 pm
Contact:

Re: Loading nuclear reactors

Post by Distelzombie »

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
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!
User avatar
Killcreek2
Long Handed Inserter
Long Handed Inserter
Posts: 73
Joined: Sat Dec 10, 2016 8:39 am
Contact:

Re: Loading nuclear reactors

Post by Killcreek2 »

torne wrote:
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.
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.
Derp, you are correct, I forgot the neighbour bonus when working it out. Nice catch, thanks.
"Functional simplicity, structural complexity." ~ Appleseed
Gus_Smedstad
Fast Inserter
Fast Inserter
Posts: 163
Joined: Fri May 16, 2014 2:30 pm
Contact:

Re: Loading nuclear reactors

Post by Gus_Smedstad »

Killcreek2 wrote:@OP There is a simple 1-combinator [per reactor core] solution to only load 1 fuel at a time: the Memory cell.
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.

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.
User avatar
Distelzombie
Filter Inserter
Filter Inserter
Posts: 336
Joined: Tue May 02, 2017 4:27 pm
Contact:

Re: Loading nuclear reactors

Post by Distelzombie »

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.
I realized you can simply add accumulators to overcome the one or two seconds of downtime. I think its a great solution.
Complete 2-Lane system as a Blueprint-Book! The perfect OCD reactor? Testing chained science lab efficiency Please use real prefixes and proper rounding!
Nich
Fast Inserter
Fast Inserter
Posts: 171
Joined: Wed Jan 18, 2017 2:33 am
Contact:

Re: Loading nuclear reactors

Post by Nich »

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.
Gus_Smedstad
Fast Inserter
Fast Inserter
Posts: 163
Joined: Fri May 16, 2014 2:30 pm
Contact:

Re: Loading nuclear reactors

Post by Gus_Smedstad »

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.
Nich
Fast Inserter
Fast Inserter
Posts: 171
Joined: Wed Jan 18, 2017 2:33 am
Contact:

Re: Loading nuclear reactors

Post by Nich »

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.
Gus_Smedstad
Fast Inserter
Fast Inserter
Posts: 163
Joined: Fri May 16, 2014 2:30 pm
Contact:

Re: Loading nuclear reactors

Post by Gus_Smedstad »

I spent some time experimenting, and ended up with a setup that's both simple and reliable.
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.
orzelek
Smart Inserter
Smart Inserter
Posts: 3924
Joined: Fri Apr 03, 2015 10:20 am
Contact:

Re: Loading nuclear reactors

Post by orzelek »

Looks nice and simple.
Can you post a blueprint of control setup block?
It will be much easier to get conditions right :D
User avatar
Killcreek2
Long Handed Inserter
Long Handed Inserter
Posts: 73
Joined: Sat Dec 10, 2016 8:39 am
Contact:

Re: Loading nuclear reactors

Post by Killcreek2 »

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.
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.]

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
User avatar
MeduSalem
Smart Inserter
Smart Inserter
Posts: 1686
Joined: Sun Jun 08, 2014 8:13 pm
Contact:

Re: Loading nuclear reactors

Post by MeduSalem »

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.
Gus_Smedstad
Fast Inserter
Fast Inserter
Posts: 163
Joined: Fri May 16, 2014 2:30 pm
Contact:

Re: Loading nuclear reactors

Post by Gus_Smedstad »

Here's the blueprint string for just the control elements. It requires an external (reactor = 1) signal to load a fuel rod.
Nuclear Control Block
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 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.

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.
cbhj1
Fast Inserter
Fast Inserter
Posts: 170
Joined: Tue Apr 25, 2017 2:53 pm
Contact:

Re: Loading nuclear reactors

Post by cbhj1 »

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%?
User avatar
Killcreek2
Long Handed Inserter
Long Handed Inserter
Posts: 73
Joined: Sat Dec 10, 2016 8:39 am
Contact:

Re: Loading nuclear reactors

Post by Killcreek2 »

Gus_Smedstad wrote:
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 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.

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.
I see where you got confused: The green wire running up the left of the screen is between big power poles.
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
Nich
Fast Inserter
Fast Inserter
Posts: 171
Joined: Wed Jan 18, 2017 2:33 am
Contact:

Re: Loading nuclear reactors

Post by Nich »

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
kanvil
Burner Inserter
Burner Inserter
Posts: 7
Joined: Fri Jan 13, 2017 5:48 pm
Contact:

Re: Loading nuclear reactors

Post by kanvil »

reactor-control.jpg
reactor-control.jpg (435.24 KiB) Viewed 7702 times
I built something a little different than others I've looked at, although it's not the most compact or scalable.

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
Billiam
Manual Inserter
Manual Inserter
Posts: 1
Joined: Fri May 12, 2017 3:04 pm
Contact:

Re: Loading nuclear reactors

Post by Billiam »

My setup is fairly simple (4 deciders, 1 constant combinator).
  • 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.
Adding another reactor means wiring the new inserters and boxes to the old ones, and increasing the reactor count by 1 in the 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.
Rapier31
Inserter
Inserter
Posts: 34
Joined: Mon Apr 25, 2016 4:00 pm
Contact:

Re: Loading nuclear reactors

Post by Rapier31 »

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.
cerberusti
Burner Inserter
Burner Inserter
Posts: 5
Joined: Tue May 02, 2017 4:27 pm
Contact:

Re: Loading nuclear reactors

Post by cerberusti »

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
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.
Post Reply

Return to “General discussion”