-
Notifications
You must be signed in to change notification settings - Fork 6
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
Wind farm power setpoint tracking controller #29
Wind farm power setpoint tracking controller #29
Conversation
…oints and enable interface functionality.
integral_gain=0 | ||
|
||
self.K_p = proportional_gain * 1/self.n_turbines | ||
self.K_i = integral_gain *(4*beta*omega_n) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't think we use K_i, but if we don't, should we have it in there?
def __init__(self, interface, input_dict, proportional_gain=1, verbose=False): | ||
super().__init__(interface, input_dict, verbose=verbose) | ||
|
||
# No integral action for now. beta and omega_n not used. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If we keep this in, we should mention how these terms are defined and that they're turbine specific (I think they're turbine specific?)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I've decided to comment out any code relating to integral action to avoid any confusion about whether integral action is taking place
…o avoid confusion.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good to me!
* rename actuator disk interface for generality with passing power setpoints and enable interface functionality. * Initial skeleton for power tracking controller. * first tests added. * ruff, typos. * Passing through yaw angles as well (at null value). * Open-loop setpoint distribution. * Rename to distributing for this version.' * References pass through interface; tested." * placeholder for feedback-based power tracking controller. * Tracking control loop runs; not yet tested. * Test proportional control operation. * Slightly more thorough test. * Running simulations back to back. * plotting; use output_file option in input_dict. * ruff. * Follow externally-provided reference. * Upload data files for examples. * Update tests to reflect external_signals key on hercules_dict. * Better tuning (after transients. * Allow proportional gain to be set externally and test that expected behavior results. * Update documentation. * Update plots, trajectory. * Update documentation of example. * More consistent tracking of hercules time in plot output. * Update readme. * Clarify setpoint default unit; comment out code for integral action to avoid confusion.
Implements a closed-loop wind farm power-tracking controller and provides an example using the Hercules Floris stand-in.
Addresses #9
Also addresses NREL/hercules#72 on Hercules
To do list:
Incidental bits and pieces included in this PR: