Add SteamBoilerPool for monitoring and controlling steam boilers#1429
Draft
shsms wants to merge 7 commits into
Draft
Add SteamBoilerPool for monitoring and controlling steam boilers#1429shsms wants to merge 7 commits into
shsms wants to merge 7 commits into
Conversation
Signed-off-by: Sahas Subramanian <sahas.subramanian@proton.me>
The steam boiler pool's power formula relies on the steam_boiler_formula() helper, which is available from frequenz-microgrid-component-graph 0.4.1. Signed-off-by: Sahas Subramanian <sahas.subramanian@proton.me>
Steam boilers are controllable electrical loads. Their active power and its inclusion/exclusion bounds, together with the per-phase power, current, voltage and frequency, are reported through the corresponding AC_* metrics. SteamBoilerData derives directly from ComponentData and declares its own fields and from_samples/to_samples handling, rather than reusing another category's type, so steam boilers are not coupled to the CHP data model. Signed-off-by: Sahas Subramanian <sahas.subramanian@proton.me>
Adds the timeseries.steam_boiler_pool package: the SteamBoilerPool, its reference store and report types, and a SteamBoilerSystemBoundsTracker that aggregates the active-power bounds of the working boilers, mirroring the PV pool. Signed-off-by: Sahas Subramanian <sahas.subramanian@proton.me>
Wires the steam boiler pool into the data pipeline factory (microgrid.new_steam_boiler_pool()), the data sourcing actor, the power managing actor, and the power distributor. The data sourcing actor handles the steam boiler component category so the power formula can resample per-boiler power, the SteamBoilerManager distributes power across the working boilers, capping each boiler at its active-power upper bound, and the SteamBoilerStatusTracker reports per-boiler health. Signed-off-by: Sahas Subramanian <sahas.subramanian@proton.me>
Adds SteamBoilerDataWrapper, steam boiler streaming in the mock microgrid, graph-generator support, and tests for the steam boiler pool formula and power control methods. Signed-off-by: Sahas Subramanian <sahas.subramanian@proton.me>
Signed-off-by: Sahas Subramanian <sahas.subramanian@proton.me>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Steam boilers are controllable electrical loads that the SDK could not yet monitor or
control. This branch adds a
SteamBoilerPool, wired through the data pipeline, datasourcing, power management and power distribution, mirroring the existing component pools.
Changes
RELEASE_NOTES.mdto the template (the previous release's notes had not been cleared).SteamBoilerDatacomponent data type (AC_* metrics, inclusion/exclusion bounds).timeseries.steam_boiler_poolpackage:SteamBoilerPool, its reference store,result types, and a system-bounds tracker aggregating the working boilers' active-power
bounds.
microgrid.new_steam_boiler_pool()),the data sourcing actor, the power-managing actor, and the power distributor
(
SteamBoilerManagerdistributes power across working boilers, capping each at itsactive-power upper bound;
SteamBoilerStatusTrackerreports per-boiler health).frequenz-microgrid-component-graphto0.4.1for thesteam_boiler_formula()helper.SteamBoilerDataWrapper, mock-microgrid streaming, graph generator).Public API: new
microgrid.new_steam_boiler_pool(),SteamBoilerPool,SteamBoilerData.