NatLabRockies / NatLabRockies/H2Integrate

SLC: User-specified custom system level controller

Open
#748 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Python
Stars
26
Forks
44
Avg merge
3d 22h
Merged PRs (30d)
16

Description

SLC: User-specified custom system level controller

currently, users can specify a custom resource model, technology model, or system-level finance model. In the future, user's should be able to have their own/custom technology-specific control strategy and their own/custom system level controller model.

For a user to add a custom technology-specific control strategy, this can be done simply in H2IntegrateModel with the following change in collect_custom_models() from this:

self.create_custom_models(
            self.technology_config["technologies"],
            self.tech_parent_path,
            ["performance_model", "cost_model", "finance_model"],
        )

to this:

self.create_custom_models(
            self.technology_config["technologies"],
            self.tech_parent_path,
            ["performance_model", "cost_model", "finance_model", "control_strategy"],
        )

A more complex change would be needed for a user to specify a custom system level control strategy.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start in H2IntegrateModel.collect_custom_models() and inspect how create_custom_models() handles the existing performance, cost, and finance models. Trace the technology_config and tech_parent_path inputs, then determine the entry points needed for a system-level controller. Done means users can specify both a custom technology control strategy and a custom system-level controller model.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
backend
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
42/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.