Adaptive Overload Buffer
Добавить в игру через Steam
Нажмите «Подписаться»
На странице Steam войдите в аккаунт, если потребуется.
Подписаться
О материале
«Adaptive Overload Buffer» — материал мастерской Barotrauma. Моды, подлодки, предметы и новые задания для экипажа. Данные Steam, описание автора и ссылка для установки через подписку. Совместимость редакцией не проверена.
Описание автора
A robust active overload protection system meant to deal with power spikes reliably, while minimizing disruptions to the power grid. It uses capacitors to create temporary protective loads. The basic examples use dedicated capacitors, but it can be modified to supply weapons as well (example included).
The file containes working examples for several reactor types, an example setup to handle reactor upgrades, and ideas for further modifications.
There are other systems that accomplish the same goal; battery buffers separating the reactor from the grid are a common method. Keeping the roles of backup power and overload protection cleanly separated is the main advantage of this system: reactor and battery power can be used in parallel. However, it is also quite complex and uses more components than other methods.
It can be configured in a way that makes the sub practically immune from overload damage (which can be kinda boring). However, its performance can be limited intentionally, to reduce overload damage rather than prevent it fully (so that catastrophic !!!FUN!!! is not completely ruled out).
More infos in the file itself.
Examples of community subs that use this system: Winterhauler by Koffer KingFisher Mk3 by SNSDestiny D.B.E Buchanan By Flightless Lobster Apotheosis by me
Using the DIY Controller by Ignis (though any other "smooth" controller should work as well)
Basic Explanation:
(Graphs are just sketches and not to scale)
I. Unmitigated Disaster
[img=https://steamuserimages-a.akamaihd.net/ugc/2065507958863511390/5FD87D3A277379BE511B64A210038B21FAC8BE19/?imw=5000&imh=5000&ima=fit&impolicy=Letterbox&imcolor=#000000&letterbox=false][/img]Fig. 1: Unprotected Reactor
An overload will cause damage if the power output of the reactor is at least twice as big as the power consumption of all connected components (load): P >= 2L Let's look at the most severe case: The load drops from 100% of reactor output to almost nothing. The reactor will lower its output far too slowly, and the junction boxes will be damaged and might start fires. Even when using a custom reactor controller (generally much faster than built-in control), damage can't be avoided. The speed at which the reactor output can be lowered is inherently limited.
II. Solution: A Temporary Buffer Load
[img=https://steamuserimages-a.akamaihd.net/ugc/2065507958863605343/32CEEC733CF2244B9FB1F53203476CC20124970E/?imw=5000&imh=5000&ima=fit&impolicy=Letterbox&imcolor=#000000&letterbox=false][/img]Fig. 2: Preventing Damage
Activating an alternative load brings the power under the damage threshold again. This buffer load can be created by any device that consumes power, but let's assume we use capacitors or batteries for this purpose. If the buffer load is at least 50% of max. reactor output, the grid will be completely safe from overload damage: The condition P < 2L (Where L is the complete load including the buffer) is always fulfilled. A concrete example: A 4000kW reactor would need two capacitors to create such a buffer load (max charge speed 1000kw each), but it would need four batteries (500kW) - the main reason why capacitors are used here.
There's a problem: The reactor will always aim for the total load it "sees": The load of the buffer AND the rest of the submarine. A temporary load should be shut off eventually - but shutting down the buffer could create another overload situation. This method isn't a practical solution yet.
III. Using a Modified Load Signal
[img=https://steamuserimages-a.akamaihd.net/ugc/2065507958863606004/0669B9A7370CAA177D8A4C347DC52CB5DE4D750A/?imw=5000&imh=5000&ima=fit&impolicy=Letterbox&imcolor=#000000&letterbox=false][/img]Fig. 3: Hiding the buffer load from the reactor
The solution is to use a reactor controller that receives a modified value for L. This is done by subtracting the buffer load from the rest of L. The resulting value is labeled the "adjusted" load, and represents the power consumption of the rest of the submarine: L_adjusted = L_total - L_buffer As long as the buffer isn't active, LA is identical to L. Once it is activated, the reactor will lower its output to the adjusted load value, and ignore the buffer load. Eventually, the buffer can be turned off safely.
The file contains an example of this method. Although it can be used for overload protection as it is, problems remain: The buffer always greedily consumes a big chunk of the reactor power, leaving very little for other devices like steering and lights when it is active, causing them to shut down. Also, a lot of power is wasted, since the energy that enters the buffer is lost for other purposes.
IV. Adaptive Buffer Load
[img=https://steamuserimages-a.akamaihd.net/ugc/2065507958863606841/35A5EA50E84AA2829A7105AB30E92B2FDBE7B2F4/?imw=5000&imh=5000&ima=fit&impolicy=Letterbox&imcolor=#000000&letterbox=false][/img]Fig. 3: Ideal behavior of the buffer load (only adjusted load shown for clarity)
Instead of using a constant buffer load of 50% maxP, it would be better to make it variable. It only needs to be as big as 50% of the current reactor output - just enough so that 2L remains larger than P. This minimizes the amount of power loss for the rest of the sub. Adapting the load can be done by changing the charge speed of batteries or capacitors - however, it can only be set to multiples of 10%. The resulting load curve will look differently:
V. Load Curve for Capacitors
[img=https://steamuserimages-a.akamaihd.net/ugc/2065507958863609295/5662E301ED6DF118DB378BE4F6E2E86800E7C404/?imw=5000&imh=5000&ima=fit&impolicy=Letterbox&imcolor=#000000&letterbox=false][/img]Actual behavior of the buffer (Adj. load not shown for clarity)
Capacitors add another complication: Their charge speed is dependent on the square of the control input. A few math components are needed to calculate it. This stair-like load curve is not ideal, but it leaves enough power for the rest of the sub - some instances of power loss can occur, but they will be brief and not cause too much trouble.
VI. Power Dissipation
So far, the buffer was treated as if it had an unlimited capacity to store excess power. But the capacitors must be drained of stored energy; the buffer won't work when it's full. Lamps with a custom power consumption are used here (any other item that consumes power would work as well):
Using a very high value (like 1000kW) will give the system basically unlimited capacity, since power exits the capacitor faster than it can enter. Lower values (around 20-50kW) will give the buffer a cooldown period that players will have to take into account, and might not leave enough capacity to absorb overloads that are too extreme. There's no 100% correct value; it depends on your sub design and on how powerful you want the system to be in practice. The same applies to the number of capacitors: Using fewer than 2 per 1000kW reactor power is possible and can be enough for most situations (since extreme overloads like the one described above should be very rare on a normal sub).
Как установить и запустить
Откройте оригинальную страницу в Steam Workshop, проверьте версию игры, зависимости и порядок загрузки в описании автора. Нажмите «Подписаться» и дождитесь загрузки Steam. Включите материал в меню модификаций или контента игры, если это требуется. Совместимость и запуск редакцией не проверены.