Barotrauma Better Vanilla Reactor Automation
Improving on top of existing well-known reactor automation while not making it an hour-long component struggle.
Bonus! My rig for comparative reactor automation tests is in the workshop.
Contents
- Reactor Basics
- Typical Reactor Automation Approach
- Non-oscillating Reactor Automation
- Turbine Accelerator – Better Reactor Automation
- Already a Veteran Trauma Diver? Here’s All You Need
Reactor Basics
You have 2 sub-systems in reactor – heat generation (fission) and energy production (turbine) that uses that heat.
Ideal reactor generates barely enough heat for the turbine to generate exact amount of power for the load the sub requires.
If heat generated is more than “barely enough” you’ll waste fuel and in extreme case melt the reactor.
If power generated exceeds load you’ll damage electrical equipment of the ship.
There are cases where you would want to “waste fuel” (depleted fuel rods production) or overload the grid (electrical skill training) but we won’t cover those right now.
Non-functional requirements – use as less resources (components) for the build and keep it as simple as possible.
Typical Reactor Automation Approach
Reactor automation choice depends on the resource availability on the submarine.
1st variant and the most regular (and, arguably, greater) is a 2-component rector.
It uses regex component to control input for reactor temperature and greater component for turbine output.
It is most “reactive” variant as it only uses 0 and 100 values to operate. So it oscillates both controls (almost) constantly and tends to bounce around ideal positions.
If only 1 component is available, automate fission rate first. It allows use of multiple rods without drawbacks and reactor overheating is way more annoying than turbine inefficiency.
Value for the temperature depends on the supply-demand of the sub, but I’d start with 3999, switching all the way to 4999 if necessary.
Resource list: 2 components, 5 wires.
(I’m not the author of that approach, including just for reference)
Non-oscillating Reactor Automation
Alternative turbine control mode would be to follow precise load that sub demands.
Add a memory component with value maxReactorVoltage/100 and divide the load by that number. Reactor turbine slider should now always follow the middle of the green range.
So when grid does not experience major load spikes (i.e. sub is idle while the crew is away on a diving mission) the reactor will act like an ideal one.
Precision comes at a price – it adjusts the power output slower than what the reactor is capable of.
Reason behind it – turbine control has inertia – it adjusts slower the closer to the set value is.
On its own that method is worse for the sub than “greater component” turbine control because of the damage to the electrical systems of the ship.
Turbine Accelerator – Better Reactor Automation
Add Turbine accelerator to combine the precision with reactiveness of the 2-component reactor.
(That’s my original contribution to the trauma-engineering community)
Add a “subtract” and another regex components to the stew. They’ll bring the output in the desired area at max speed and leave the precise adjustment to existing setup.
It needs to be applied ON TOP and AFTER the precise controller because of how components are evaluated in current version of the game.
(Load – power) -> regex (check capture group value tb) expression “^(?-?\d{2,})$” -> turbine_in
It is up to 50% more efficient in controlling the turbine than precise control and does not oscillate under constant load.
Already a Veteran Trauma Diver? Here’s All You Need
Add subtract and regex on top of MaxReactorPower-%-based turbine control.
Load – Power -> regex ^(?-?\d{2,})$ -> turbine_in
Happy diving!
More Guides:
- Barotrauma – How to Add Items Into Cabinets, Lockers, Shelfs
- Barotrauma – Stabilised Battery Charging Guide
- Barotrauma – Repeated Fixfoam Detonator
- Barotrauma – Starting a Nuclear Reactor in a Submarine
- Barotrauma – Some Men Just Want To Watch The World Burn Achievement Guide
ncG1vNJzZmifkaKysbjAsmWtoaCofKjByJ2crGeSlr%2BwwNGarKaZXZeytcDEq2SvmZ6eua2tjKucmpukpL9urdStpqaZpJ68r3rHraSl