Big Reactors Grid Control

A program for OpenComputers to manage any
Big Reactors/Extreme Reactors setup.

Compatibility

Due to a bug present in versions 0.4.5.40 to 0.4.5.45 of Extreme Reactors, Big Reactors Grid Control will run extremely slow and slow down your (in-game) computer. The program will NOT work correctly, no matter how it may look. If you're using an affected version, please update to version 0.4.5.46 or later. You may have to break and replace any computer-ports on your reactors / turbines after upgrading for the fix to take effect.

Where can I get it?

The current version can be found here: controller gui
See the setup section for further information.
Note: Big Reactors Grid Control also works with Extreme Reactors.
The current version is: 4.3.2 (changelog)
Old versions: 4.3.1 4.2.8 4.2.7 4.2.6 4.2.4 4.2.3 4.2.2 4.2 4.1 4.0.1 4.0

Check out the forum thread on Big Reactors Grid Control in the OpenComputers Forum

Features

Active and Passive Reactor support

Active and passive reactors are supported as well as turbines.

Multi-Reactor/-Turbine support

This program allows you to control multiple reactors and turbines at once. You no longer need multiple computers and screens for your large reactor setup. One computer, one screen!

Inhomogenous Grid support

You can connect any number of active reactors, passive reactors and turbines to the same controller. It just works.

Plug&Play

The controller is fully autonomous and automatically configures, calibrates and estimates optimal values for a reactor or a turbine once it is connected. Just plug it in and you're good.

Multi-Purpose usage of Active Reactors

Do you just need a lot of steam for something? Just hook it up to an active reactor controlled by this controller. The controller will automatically regulate the reactors output so you don't run out of steam.

PD regulation

In addition to the old turn reactor on/off method, this controller uses a pd regulator to drive reactors and turbines as efficiently as possible while saturating your energy grid.

Deamon

Deploy multiple services on the same machine, as the controller itself is a background process and won't block the entire system.

Headless support

If you never look at controller screens, you can just remove it once you set up the controller. No screens required.

Scalable UI

You like BIG screens? Or maybe ultra wide screens? No problem! The UI scales to fit any screen size you may want.

How to setup

You'll need a computer with an Internet Card to download Big Reactors Grid Control. Once you've got your computer up and running, run
wget http://xypm.tenyx.de/standalone/brgc_installer.lua
and execute
brgc_installer
.
If you're upgrading from a previous version, you will need to restart your (in-game) computer now.
That's it.
To start the controller you'll have to do:
rc brgc_reactor start
rc brgc_turbine start
rc brgc_grid start
Alternatively you can do a simple:
brgcctrl service all start
Don't forget to add
brgc_reactor
,
brgc_turbine
and
brgc_grid
to your
/etc/rc.cfg
if you want to start the controller at boot time:
enabled = { "brgc_reactor", "brgc_turbine", "brgc_grid" }
To do so without editing any files, you may use the following commands:
rc brgc_reactor enable
rc brgc_turbine enable
rc brgc_grid enable
You can now connect your reactors and turbines to the computer. If you want to start the gui, simply run
brgc_gui
. To use the grid functionality, connect energy storage blocks to your computer using Adapters. Currently EnderIO Capacitors (requires the mod Computronics), Draconic Evolution Energy Storage and RFTools Power Cells are supported.

Note: If you're going to use turbines, also using the grid controller is strongly recommended.
Note: If you don't intend to use turbines, you can omit starting
brgc_turbine
.
Note: If you don't want to use the grid controller, you can omit starting
brgc_grid
.
Note: The controller assumes all active reactors to output steam to the same steam network.
Note: The controller assumes all turbines to output energy to the same energy grid.

Configuration

Big Reactors Grid Control stores its configuration at
/etc/br_control.cfg
. By default it is managed automatically and you don't need to do anything besides connecting your components with a cable.

Automatic configuration

If you connect a reactor or turbine, the controller will lookup the respective configuration. If no configuration is found it will create one using the default configuration. If the default configuration is incomplete (default) the controller will now attempt to estimate the maximum energy output, steam output or RPM for your reactor or turbine. In the GUI this is called CALIBRATION-mode.

Calibration: Passive reactor

Unfortunately, passive reactors have a lot of jitter. This jitter slows down calibration of passive reactors quite a bit so be patient ;)

Calibration: Active reactor

Calibrating active reactors is quite fast. However you need to make sure at least 10% of your reactors steam production can actually be consumed and can sufficient ammounts of water can be supplied. I recommend attaching some sort of fluid sink to the reactors output, but a few (active) turbines work perfectly fine as well. Being able to consume more steam during this phase may result in better calibration of the reactor.

Calibration: Turbine

The controller assumes two things about your turbine:
  • The turbine is built correctly. This means your turbine can be run at maximum supported steam (25mb/t per blade) without exceeding 1950 RPM. Should your turbine exceed 1950 RPM at any stage, the controller will shut down the turbine and flag it as failed.
  • The turbine is able to run at 1600 RPM or more. If your turbine doesn't support this, calibration may fail.
Once calibration started, the turbine will be sped up to 1780 RPM before engaging the inductor. Now the controller waits until the RPM has stabilized. This process may take a minute or two.

After any step, the results are saved. Should you reconnect your reactor/turbine or restart the controller, calibration or optimization continue where they left off.

Manual configuration

This section still needs to be written. Please read the
/etc/br_config.cfg
.
You need to stop the controller before you make any changes to the configuration file (
rc brgc_reactor stop
and
rc brgc_turbine stop
). If you want to create copies of the default configuration for new components without the controller running or create an initial configuration, run
brgcctrl discover
.

Changelog

4.3.1 -> 4.3.2
 - Removed dependency on OpenOS "threads" library. This means BRGC should world with OpenOS 1.6 again.
 - Implemented workaround for a bug with OpenComputers and Extreme Reactors when using Lua 5.3.
 - Fixed a bug that would sometimes flash an error message when done calibrating multiple reactors at once.

4.2.8 -> 4.3.1
 - Now using the new ER API (0.4.5.48 and higher). Old API is still supported.
 - Implemented further mitigations for the "too long without yielding" issues.
 - Included a hack/workaround for a bug with OpenOS 1.7.1 (and earlier) and Lua 5.3 mode.
 - Fixed a bug where attempting to format a number as an integer (illegal in Lua 5.3 mode).

4.2.7 -> 4.2.8
 - Use threads/coroutines for heavy calculations on calibration data. This'll fix the "too long without yielding" errors.
 - Hopefully fixed an issue where the controller gets confused by the massive internal energy storage of draconic evolutions energy relays.

NOTE: If you see errors regarding the controller not being able to find "thread" you'll have to upgrade your OpenOS!

4.2.6 -> 4.2.7
 - Fixed reactor calibration not completing.
 - Increased calibration accuracy.
 - Implemented workaround for situations where active reactors won't output enough steams from their hot fluid tank even though there should be plenty available.
 - Added graceful degradation to reactor performance if hot fluid tanks are overflowing.
 - Retweaked active reactor regulator.
 - Added fuel level display to the reactor info panel. The fuel level displayed is the REACTIVE fuel, which is fuel + waste / 100.

4.2.4 -> 4.2.6
 - Greatly reduced the number of API calls for setting reactor fuel rod levels.
 - Fixed a bug where the reactor controller would miscalculate the fuel rod offsets with sub 1% precision.
 - Fixed a bug where the grid controller would not set the reactors output rate to the optimum but leave it as is when coming out of "HOLDING CHARGE" mode.
 - Partially rewrote calibration code for reactors to remove "magic values".
 - The Tabs for "Reactors" and "Turbines" will be omitted if there's not enough space for them (only calculated on GUI startup).
 - Fixed GUI resolution misbehaving on T2 screen setups. The colors are still off due to colorspace limitations on those screens.
 - Fixed grid UI for very slim screen setups. Try a sexy 3x1 T3 screen setup!
 - Added experimental support for mekanism induction matrix. J -> RF conversion ratios can be set in mekanism config.
   Conversion ratios other than 5:2 (J:RF) will confuse the controller.
   The ratio for the induction matrix can be changed in /usr/lib/brgc/energy_storage_component.lua
 - Added support for thermal expansion energy cells.

4.2.3 -> 4.2.4
 - Fixed a bug that caused the grid controller to crash if more than one passive reactor is connected
 - Fixed a bug where the turbine controller would include disabled/suspended turbines steam input in the total steam requirements.
 
4.2.2 -> 4.2.3
 - Added experimental support for RFTools Power Cells

4.2.1 -> 4.2.2
 - Actually fixed "brgcctrl recalibrate"
 - Fixed an issue where the grid controller would fail to suspend turbines
 - Fixed an issue where the grid controller would ignore reactors/turbines being disabled and still use them
 - Fixed an issue where turbines always enter CALIBRATION state after KICKOFF
 - Fixed an issue where turbine calibration would finish too soon

4.2 -> 4.2.1
 - Fixed an issue where the grid controller would not shut down turbines/reactors when the attached energy storage is full.
 - Fixed an issue where brgcctrl would crash when attempting to recalibrate turbines.
 - Removed "optimize" from brgcctrl as this no longer serves any purpose.
 
4.1 -> 4.2
 - Refactored a LOT of code
 - Implemented the Grid controller. This controller can manage passive reactors and turbines if you connect external energy storage to your computer.
 - Removed old turbine suspension logic. Use the grid controller instead!
 - Fixed a bug that caused the GUI not to update when new reactors/turbines were connected (finally)
 - Fixed a bug that would cause brgcctrl to crash when attempting to use the steamtarget function
 - The generated configuration file is now human readable again
 - More bugfixes

4.0.1 -> 4.1
 - Fixed a bug where turbines that are being calibrated can be suspended
 - Fixed a design bug where the performance prediction for passive reactors was based on linear regression.
   BRGC now has the ability to do polynomial interpolation.
 - Because the polynomial interpolation is THAT GOOD we can do numerical reactor optimization based on the polynomial.
   OPTIMIZATION-mode has been removed. This also fixes all issues of the OPTIMIZATION-mode (obviously).

4.0 -> 4.0.1
 - Fixed a bug where the controller failed to properly calculate a reactors rod limit (affects reactors with 50 B/t output).
 - Fixed a bug that prevented "brgcctrl" from setting the steamtarget manually.
 - Fixed a bug that caused turbines to not speed up as fast as intended during "SPINUP" phase.
 - Improved decision making for unsuspending turbines.
 - Controller will now try to prevent the internal steam tanks of active reactors from overflowing more aggressively.

4.0
Initial release. Why 4.0? While this is the first public release, it's actually the 4th generation of the controller.

Disclaimer, Copyright and other stuff.

First things first: I'm not responsible for any exploding reactors or computers. As always: Use this program at your own risk.
I do not allow anyone to redistribute my code. If you want to tell someone about this, send him or her a link to this page as you'll always be able to get the latest version from here.
If you want to use parts of my code for whatever purpose you are permitted to do so if you credit me.
If you have any questions, you can contact me on JABBER (JID/xyfreak@tenyx.de), Twitch (XyFreak) or Twitter (XyFreak1).

Core elements for the design of this website have shamelessly been ripped off ffmpeg.org.