Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add baseline supervisory hybrid plant controller #36

Merged
merged 31 commits into from
Jul 26, 2024

Conversation

misi9170
Copy link
Collaborator

@misi9170 misi9170 commented May 7, 2024

This pull request adds a placeholder for a controller for a hybrid wind, solar, and battery plant. Power measurements from each asset are provided to the supervisory controller; and the supervisory controller sends back setpoints. However, there is currently no control logic providing feedback (the setpoints are simply set arbitrarily).

TODO:


if ("external_signals" in hercules_dict
and "plant_power_reference" in hercules_dict["external_signals"]):
plant_power_reference = hercules_dict["external_signals"]["wind_power_reference"]
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does this mean that the plant power reference needs to be defined as "wind_power_reference" always?

Copy link
Collaborator Author

@misi9170 misi9170 May 13, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@genevievestarke good catch! That was supposed to be "plant_power_reference" (copy and paste error). I've now fixed this

@@ -48,3 +48,12 @@ Integral action, as well as gain scheduling based on turbine saturation, has bee
simple proportional control appears sufficient currently. However, these may be enabled at a
later date if needed. The `proportional_gain` for the controller may be provided on instantiation,
and defaults to `proportional_gain = 1`.

### HybridSupervisoryControllerBaseline
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@genevievestarke could you check the documentation below and see if I've accurately portrayed the HybridSupervisoryControllerBaseline?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I updated the description, let me know if it makes sense!

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@genevievestarke , just bumping this, are you OK with the description I've written for the HybridSupervisoryControllerBaseline? Feel free to update the description if you'd like.

@misi9170
Copy link
Collaborator Author

@genevievestarke would you like the simple_hybrid_plant example to be replaced by your wind_solar_battery one? the wind_solar_battery example is not yet in the repository, but we could add it if you'd like.

@genevievestarke
Copy link
Collaborator

The simple_hybrid_plant example doesn't work for me. Does it work for you? I was wondering if you want me to put in the example plant I've been running?

@misi9170 misi9170 marked this pull request as ready for review July 16, 2024 18:35
@genevievestarke
Copy link
Collaborator

@misi9170 I cleaned up the jupyter notebook, it should be ready for merging after your review!

@misi9170
Copy link
Collaborator Author

misi9170 commented Jul 24, 2024

Thanks @genevievestarke, I'll take a look over it tomorrow and we should be able to get it merged

@misi9170
Copy link
Collaborator Author

@genevievestarke I made a few minor cosmetic changes to the example notebook, but I think this is good to merge. As I opened this PR, I can't review it, so if you'd like to add a review feel free.

If you get a chance, have a look over the controller description I added; assuming that's fine, I think we're good to merge.

@genevievestarke
Copy link
Collaborator

Ok, I updated the controller description, should be good to merge!

@genevievestarke genevievestarke self-requested a review July 26, 2024 14:59
@@ -48,3 +48,12 @@ Integral action, as well as gain scheduling based on turbine saturation, has bee
simple proportional control appears sufficient currently. However, these may be enabled at a
later date if needed. The `proportional_gain` for the controller may be provided on instantiation,
and defaults to `proportional_gain = 1`.

### HybridSupervisoryControllerBaseline
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I updated the description, let me know if it makes sense!

@misi9170 misi9170 merged commit 4f06306 into NREL:develop Jul 26, 2024
3 checks passed
@misi9170 misi9170 deleted the feature/supervisory-skeleton branch July 26, 2024 15:12
@misi9170 misi9170 changed the title Add placeholder for supervisory hybrid plant controller Add baseline supervisory hybrid plant controller Jul 26, 2024
@misi9170 misi9170 mentioned this pull request Jul 26, 2024
4 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants