Jump to content
  • Sky
  • Blueberry
  • Slate
  • Blackcurrant
  • Watermelon
  • Strawberry
  • Orange
  • Banana
  • Apple
  • Emerald
  • Chocolate
  • Charcoal
XyFreak

Big Reactors Grid Control

Recommended Posts

Hi everyone.
 
 
A while back I promised more releases, so here you go: Big Reactors Grid Control is a multi reactor/turbine controller for Big Reactors and Extreme Reactors.

Mission goal: Be the best big reactors controller there is. Nothing more, nothing less.

First things first - here's the website: https://tenyx.de/brgc/

NOTE: Due to a bug with OpenOS 1.7.4, BRGC will not work with that version. Please update to 1.7.5.

Main features
  • Active and passive reactor support
  • Support for multiple reactors and turbines at the same time (n:m)
  • Control active and passive reactors with the same controller
  • Automatic configuration of everything (EVERYTHING!)

Setup instructions

  1. wget the installer from here: http://xypm.tenyx.de/standalone/brgc_installer.lua
  2. Run it
  3. Done

Big Reactors Grid Control comes with three rc.d files:

  1. /etc/rc.d/brgc_reactor.lua
  2. /etc/rc.d/brgc_turbine.lua
  3. /etc/rc.d/brgc_grid.lua

If you want the controller to run at boot time, you can just use OpenOS' rc.d schema.

 

There's a GUI as well as a command line utility for advanced users.
To start the gui, simply run "brgc_gui" and watch the magic happen.
The gui scales the screen resolution to match the screens ratio and should scale with basically all screen setups.
I recommend 3x2 or 4x3 screens.

 

As of now the command line utility allows you to do (almost) everything you can do with the GUI and also allows you to change the controllers configuration at runtime (if you so desire).
Check out "brgcctrl help" for further information.

 

How to set up the grid

In a basic setup you just interconnect everything:
All active reactors can output steam to all turbines. All passive reactors and turbines output energy to the same grid.
You CAN have passive reactors and turbines output energy to different energy grids.
While this poses absolutely NO problem for passive reactors, you will have to set some turbines to "independent"-mode (more on that below).

If you want your reactors and turbines to properly cooperate, you'll also need to connect at least one energy storage block to your energy grid.
Currently supported storage "blocks" are:

  • EnderIO Capacitors (requires the mod "Computronics")
  • Draconic Evolution Energy Storage multiblocks.
  • RFTools Energy Cells
  • Thermal Expansion Energy Cells
  • Mekanism Induction Matrices

You can connect them using OpenComputers Adapters.

 

Discovering new components

As mentioned before the controller tries to autoconfigure everything:

 

Passive Reactors

When a new passive reactor is connected to the controller, the controller will first try to measure its maximum energy output. The reactor will have its output increased step by step and the average (interpolated) maximum will be used for that value (CALIBRATING).
After calibration has been completed, the controller calculates the most efficient energy output of the reactor.

 

Active Reactors

When a new active reactor is connected to the controller, the controller will first try to measure its maximum steam output (CALIBRATING). For this to work correctly the reactor must be able to output at least SOME steam (read: you need a consumer) and you will need to provide sufficient ammounts of water. The controller will detect reactors with a potential steam output greater than 50 B/t and limit its energy accordingly.

 

Turbines

When a new turbine is connected to the controller, the controller will first try to measure its maximum energy output (CALIBRATING). For this to work, make sure your 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.

Note: Your turbine is NOT required to be able to process 2000 mB/t. Smaller turbines work perfectly fine.

 

Screenshots

After this wall of text, here're some screenshots (pre 4.2).

 

Setup:
test_setup.png

 

Main view:

overview.png

 

Passive reactor details:

reactor_passive_detail.png

 

Active reactor details:

reactor_active_detail.png

 

Turbine details:

turbine_detail.png

 

Let's go in order:

When you start up the GUI you will be presented with the main view.
Here a combined overview of passive reactors, active reactors and turbines will be presented.
You can click (or touch) on any of these items to open up a detailed view of the component.
Here you can enable/disable the component or change its behaviour.

 

What behaviour?

This is where it gets interesting.

 

Passive Reactors

You will notice that passive reactors have two modes and an "auto" mode.

 

PWM

This is the behaviour everyone knows: The reactor gets turned on when its internal energy storage drops below 10% and gets turned off when the energy storage exceeds 90% of it's maximum capacity.
In PWM mode the reactor will generate energy at its most efficient rod level.
Overall this mode allows the reactor to generate energy as efficiently as possible as long as your actual energy consumption is below or equal to its optimal energy output.
But sometimes you need just a bit more energy and you don't want to upgrade your reactor or build a new one. "Classic" controllers will fail to produce sufficient ammounts of energy here.

 

This leads me to the second behaviour:

Load

In "Load"-mode the reactor will always aim to produce energy at the same rate as it's consumed. Maybe some people already suspect what that mode is all about: It's a PD-like regulator.
While "Load"-mode is not as efficient as PWM-mode in situations where the energy consumption is below the optimal energy output, it will guarantee you're never running into energy shortages - provided you're not exceeding the reactors maximal capacity.

 

Auto

"Auto"-mode aims to eliminate the disadvantages of both modes by combining them:
If the energy consumption can be satisfied with PWM-mode, PWM will be used. If the energy consumption is above optimal levels, "Load"-mode will be used instead.
As a result, "auto"-mode generates energy as efficient as possible while always saturating your energy demands.

 

Active Reactors

As of now, active reactors only operate in "load" mode. Steam is consumed and produced way too fast and the reactors internal steam storage does not allow for anything else.

 

Turbines

Turbines controlled similar to reactors in "load" mode: The controller will always try to balance the turbines internal energy storage out to 50% by using a PD-like regulator.
Turbines can be operated in "ganged"-mode or in "independent"-mode, with "ganged"-mode being the default.
The only difference between these two modes is that turbines in "ganged"-mode can be shut down by the controller, while "independent" turbines will always be active, even if they overproduce energy at the lowest RPM allowed.
This is handy if one (or more) of your turbines produces energy for a seperate (dedicated) energy grid but has to be controlled by the same controller. If such a turbine is not in "independent"-mode it may be shut down which will lead to energy failure in that grid.

 

That's it for now. If you have any questions, want to report bugs, etc., feel free to drop a message here.

Also: Do you want an indepth tutorial on how to use the command line utility? Need a description on what the GUI is actually showing?

 

Have fun
XyFreak

 

Link to post
Share on other sites

This is really awesome but it has some problems:

I'm using one active reactor (max output 50B/t) and 8 Turbines.

So the steamtarget is 16B/t which is correct.

 

But your controller calibrates the reactor to output 12B/t...

I'm using some external power storage. So when power is left in the turbines your controller stops them. Sadly it does not activate them if the power is gone.. Just one turbine is being run (spin down, spin up), i don't understand what that one turbine should be doing..

Link to post
Share on other sites

Okidoki,

 

I found an issue with the calibration of reactors with > 50 B/t steam output. The fix will be published tomorrow.

 

I was not able to reproduce the issue with the turbines not speeding up. Can you tell me how big your energy delta (in RF/t) is/was?

If a turbine still has energy stored, the controller will not power on additional turbines. Also, the controller tries to estimate the suspended turbines energy output and enables only the ones that're required to fit your energy needs.

 

From what you told me (turbine spinning up and down) you have quite irregular energy needs - but that's ok. To me it looks like the controller estimated one turbine being enough to power your grid. The turbine spinning up and down does support this assumption (spin down = turbine producing too much energy, spin up = turbine does not produce enough energy).

 

If your energy storage still empties, pls make sure your conduits can actually transport enough energy per tick (I'm pretty sure that's the case for you but I still wanted to mention it).

 

If everything should be in order from your point of view and your energy storage still empties, please provide more information:

  • What's your typical energy consumption
  • How are your turbines built (a screenshot will do)?
  • How is your reactor built?

 

-XyFreak

Link to post
Share on other sites

None of my turbines has energy stored, only my enderio capacitors. (except if the capacitors are full, of course)

 

Typical energy consumption: 500kRF/t but to tes the system I always restart with empty capacitors or higher output

Reactor: it is a 15x15x7 active reactor, capable of outputting 50B/t

 

All turbines are activated, conduits are no problem because I use tesseracts, they have no transfer limit.

 

Oh and btw: setting the steamtarget manually does not seem to work. I always get an error.

 

My steamtarget seems to be ok but the reactor is not being controlled to output that many.. after a restart my reactor only outputs 700mB/t while calibrating.. it does not want to go higher.. the turbines definitely will work with more steam. I tested the complete setup manually of course. It definitely is able to perform at the maximum of the turbine steam input.

(not all turbines are visible on the screen... seems like I built too many :D )

 

a few pictures as requested: https://files.freiebaptisten.de/s/9EVC3EA0qK1uRc0

Link to post
Share on other sites

Hey,

 

Nice to see that u also wrote a BR programm to.

 

Is it possible to set the rotaion for ludicrit turbines over 2000 rpm? I think it was 2100-2400 rpm with arround 24~30 KiRF I think (or was there a zero more?).

Because the CC script, which I usually use is with a small trick adjustable :).

 

Will be nice :).

 

Same question like for the DR Programm ... is it possible to use it over LAN/WLAN? Will be glad to see the state of each connected BR/Turbine even if each BR/Turbine has only a nun-GUI PC connected.

Link to post
Share on other sites

Hey, sorry for disappearing for a bit and not getting the update out by the promised time.

As compensation I've tweaked the turbine shutoff algorithm so it's a bit more efficient.

The update will definitely be released tomorrow. I will also run additional tests so I can figure out why my controller doesn't like your setup kevinkk525.

Fortunately my test-reactor is fairly similar to yours.

 

@Chaoschaot234

It is not possible to get the turbines to that speed with my program. This is simply because you can't get full blown turbines to >>1780 RPM with 2000mB/t.

Also the CC scripts "just" turn on/off the turbine so they can speed up the turbines while idle. This script regulates your turbines so they produce exactly the ammount of energy you need.

Additionally, I've hardcoded 1950 RPM to be detected as turbine failures. Explosions ARE coming to big reactors - we just don't know when ;)

 

 

As for the networking question: The answer I gave you for the DR program applies here as well. It's just that this time, things won't explode but will fluctuate way too much to be able to control them properly. Running a non-GUI server (one for the entire grid) and a simple GUI-client can be done. I'll consider doing that as soon as kevinkk525s problems are gone.

 

-XyFreak

Link to post
Share on other sites

I've released the bugfixed version.

To upgrade to version 4.0.1 just run the installer again and restart your computer(s).

 

Here's the changelog:

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.

-XyFreak

Link to post
Share on other sites

Thanks for the bugfix.

 

I'll test it on my MP-Server and will response after that :).

 

Oh, I forgott to mention that you can set the ROD LVL also in active mode on each reactor, so please insert a buttion with a new page that you can set the ROD LVL manually.

 

ALso my BR did not has one steam outputsystem, it has up to 20 because it produces so much steam that I can run a total of 20 turbines with at last 24.5 KRf/t and this will then be collected into one energy network.

 

How does this can be a problem?

Link to post
Share on other sites

Honestly, I'm at a loss. It seems the installer can't open ANY of the files for writing.

The only thing I can think of is that /usr/lib is a _FILE_ on your computer for some reason and not a directory.

 

Can you check real quick if you can create a file at /usr/lib/oop.lua ?

 

-XyFreak

Link to post
Share on other sites

Here's what I found and the result of your request. It's probably something simple that I'm missing on my end, but I can't figure out what. Plus, it's been well over 25 years since I messed with Lua. To say that I'm rusty is an understatement. But I'd really like to get your program to work as it will do exactly what I need. Thanks for your help.

Untitled.jpg

Link to post
Share on other sites

yeah ok you mounted a disk to /BRGC.

However brgc is installed into /usr/lib and /usr/bin (think linux) so you need to install openos onto the disk and boot that.

Grab a new disk (or remove everything from the old one) and then just type "install". The OpenOS installer will ask you where to install OpenOS to. When done it'll ask you if you want to reboot. Remove the floppy and say "Y".

Once the computer has rebooted (which will be faster btw) download and run the brgc installer again.

Link to post
Share on other sites

Well, I wish I could say that it works perfectly, but for some reason, there is an error with my reactor. When I run "brgc_reactor start" it starts up my reactor just fine. But when I run "brgc_turbine start" my turbine starts up but then the error occurs.
I tried again but altered my cable setup and waited a bit before starting the turbine program and it seems to be working flawlessly now. Was I running the turbine program too quickly?
If you could help me stamp out this one last bug then I'm sure I can apply it to any other setup that I build later. Thanks so much for your help. This will make my world much nicer and easier to maintain.

Untitled.jpg

Link to post
Share on other sites

So...here's what i THINK is happening:

The control programs are not running. Your turbine is turned off.

Then you start the reactor control program. Since the reactor control program does not have calibration data on the turbine it'll attempt to calibrate itself. HOWEVER the steam doesn't have anywhere to go and your reactors steam tank will "overflow" thus the temperature will raise.

When your reactors core reaches 2000°C the controller assumes there's something seriously rong with your setup and the safety mechanism kicks in; your reactor is flagged faulty.

 

What you need to do is (this is also described in the howto) is to give the reactor something to output the steam to. Just enable your turbine and you're good. I recommend that you can at least consume 10% of your reactors max steam production (the more the better) for the auto calibration to work as intended. It does work with less but more data means more accurate calibration.

After calibration is done you can start the turbine controller.

 

Note that you only need to do this once. The controller will store all calibration data in /etc/brgc_control.cfg

I also recommend you use more than one turbine. The turbine controller has been designed to work well with very high workloads and tries to prevent power shortages at all cost. Thus if you only have one turbine it will be sped down but never shut down completely (which is only important if you're not using much power at all).

Link to post
Share on other sites

Ok, I understand now. I omitted where I hooked up another Elite energy cube so the reactor had time to turn on and make steam to charge it up. That explains the "Calibrating" message that I saw. It all makes sense now!

Thanks so much for your help. Your program is awesome and I know it will keep my power grid functioning at maximum efficiency. Have a great day!

Link to post
Share on other sites

Hey, I've been using this with just simply one passive reactor, but whenever it's been running the setup, specifically optimizing step. It throttles around 80-97% rod insertion before it jumps to 100% insertion, then settles there generating no power. Any ideas on why? I can find more info as needed, it's my friends reactor on a server.

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...


×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use and Privacy Policy.