Loewchen wrote: Sat Sep 21, 2024 5:06 pm
XT-248 wrote: Sat Sep 21, 2024 4:51 pm
I plan to have an infinite scalable 2xN nuclear reactor layout. When I connect more than one reactor to the checker (that checker being if the reactor has less than one fuel), the condition would also have to consider the number of reactors.
IE: Four reactors have four fuel cells (one each). Then, the four reactors burn the four fuel cells until there is no fuel. Then, another fuel cell gets inserted. Only one is inserted in one reactor, leaving three reactors 'cold.'
So, I have to change the condition (< 1) to (< 4). Then I add another 6 reactors and change the condition to (< 10). Etc.
You will lose the neighboring bonus if you don't fuel them all at the same time, staggering them is a waste. Run them all with full bonus, store the energy and then pause all until the heat storage is depleted, way simper and way more efficient.
When I wire all of the reactors, regardless of the number of reactors, to be checked globally on the red or green circuit network. I have to change the conditions manually to match the number of reactors.
It is much easier to set it to less than 1 to ensure that no reactors have any fuel left to burn and never change it from 1 despite adding more 2xN rows of reactors.
If I have to manually change the condition every time I add a new row of 2xN of reactors, there is more chance for something to go wrong.
I don't design it to stagger the fuel intake between reactors. I design it so that all reactors receive a fuel cell simultaneously.
I highlighted a potential problem by using a single "less than one" condition and checking all reactors simultaneously for any fuel remaining globally.
Loewchen wrote: Sat Sep 21, 2024 5:06 pm
XT-248 wrote: Sat Sep 21, 2024 4:51 pm
Hypothetically, how do I ensure all inserters are synchronized after removing the timer condition?
You just need to read one central value of either temperature or steam and they will be synchronized by default.
The timer is an external single central signal visible to the logical circuit,
and service double-duty as a master-shutdown signal.
Reading only one of either temperature or steam tells part of what is happening and not the whole picture. It is possible to have a reading at a certain temperature level, and the steam level is filled to maximum capacity or empty due to a lengthy period of unusually high energy demand. The same is true of reading only the steam level, not the temperature level.
Tertius wrote: Sat Sep 21, 2024 7:38 pm
XT-248 wrote: Sat Sep 21, 2024 4:51 pm
Yes and no, I plan to have a timer not just limited to preventing an extra fuel cell from being inserted.
I plan to have an infinite scalable 2xN nuclear reactor layout.
It's an interesting new challenge with the more direct sensors of temperature and fuel content.
Reading fuel is directly replacing the timer. With timer, you insert one fuel and reset the timer by doing it, then count to 12000. After that you know the fuel is empty (if you made sure you just inserted 1 fuel), because the fuel is always burning for 12000 ticks. With reading the fuel, it's a plugin replacement from C>=12000 to F=0 (F=fuel). This is convenience, nothing more.
In contrast, reading temperature is new. To produce some output power, the heat exchangers need some temperature. The higher the required power, the higher the required temperature, so more heat exchangers are active and produce more steam to produce more power.
Usually, power usage isn't spiky but increases slowly and steadily while the factory grows. There is fluctuation, but usually consumption doesn't change from 0 to full and from full to 0.
It seems we're still not able to directly read power consumption, so we're not able to directly relate temperature to power (temperature is proportional to power). We still need some helper able to tell "current power production is higher than consumption" or "current power production is lower than production", so it's still the steam that's telling us this. So, if steam does rise, we're too hot, and if steam does lower, we're too cold.
Until now, steam level vastly varied because of the huge latency between steam threshold transition and re-heating the reactors.
My new approach would be to keep the reactor temperature up, steam level constant, and constantly adjust the desired temperature to keep the desired steam level. If steam level lowers, I would increase the desired reactor temperature by some degree (by how much is yet to be defined), and if steam level rises, I would lower the desired reactor temperature. This must be a somewhat slow process, may be by implementing a PID controller. That's probably much more complex than a simple steam threshold, but much more exact.
Or may be the cheap version of this is just a copy of the old setups with a temperature threshold instead of a steam threshold and may be even require no combinator at all, since the 2 thresholds can be queried directly in the fuel inserter. You need to query fuel <= 0 AND steam <= [steam threshold] with one condition, which can be done by querying EVERYTHING <= 0 and adding -[steam threshold] from a constant combinator, so both thresholds are 0. Needs more steam buffer, since it's not as exact as a PID controller and you need to always use the temperature threshold for full reactor load.
A thing to investigate. My goal would be to build a reactor with as little steam buffer as possible but still wasteless and keeping the reactor under 1000°C all the time.
The way I do it now (before reading the temperature or fuel in a reactor) is to read a steam tank then at a certain XX% or YYYY value out of 25k units (connected to all of the steam storage tanks), only insert if the steam level is low enough to have sufficient capacity between reactor and heat exchanger to completely empty/drain everything down to 500-degree heat.
The problem is that I cannot know the current heat level at any given moment. So, I had to overengineer the heat pipe and exchanger to keep up with what a reactor can produce at a 400% neighbor bonus, regardless of the steam tank capacity at that moment.
In the future, I can change the design to be more aware of the temperature, which is not possible currently. Perhaps even start to re-examine how many heat pipes/exchangers I would need for a given 2xN row of reactors.
Then throw in the new, as much as it pains me to say this, simulation-less fluid network, for steam-turbines/pipe/under-ground-pipe/storage-tank/pump/etc.
Now I can check all three values: Timer (external and run without electric power), temperature (seems to be the highest value? as opposite to cumulative?), and fuel reminding (seems to count fuel being consumed as an extra on top of what is sitting in the input slot) to make a smarter nuclear complex.
I will acknowledge that there is a non-zero chance that heat mechanics may play a new role.
I am looking forward ahead to a new generation of nuclear energy designs.