-
Notifications
You must be signed in to change notification settings - Fork 28
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
feat: more wind power curves #53
Merged
Merged
Changes from 11 commits
Commits
Show all changes
12 commits
Select commit
Hold shift + click to select a range
c4be10f
data: more wind power curves
danielolsen 48e9087
feat: create state averaged wind power curves
danielolsen 83c42e9
feat: query power from turbine or state, with default
danielolsen 470f6be
refactor: more modular wind power curve analyses
danielolsen 170a4a4
fix: bugfix for state wind power curves, adding tests
danielolsen b1f5c4d
refactor: Move power curves in specific module
rouille 6676438
chore: Rerun notebook using new power estimation
rouille 2dd7bb8
feat: wind power curve spatio-temporal smoothing
danielolsen cb08b53
chore: cleanup to final chosen values
danielolsen d1a6563
doc: updates to wind power curve readme
danielolsen ecb5402
docs: Improve README
rouille 0651ccc
refactor: based on PR review, pass dataframes to get_power()
danielolsen File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,15 +1,16 @@ | ||
# PreREISE | ||
This package defines the scenario and calls the MATLAB simulation engine. The | ||
name stands for pre Renewable Energy Integration Study Engine. | ||
This package defines the scenario and calls the [MATLAB][MATLAB] simulation | ||
engine. The name stands for pre Renewable Energy Integration Study Engine. | ||
|
||
|
||
|
||
## 1. Setup/Install | ||
This package requires MATLAB, MATPOWER and Gurobi. | ||
This package requires [MATLAB][MATLAB], [MATPOWER][MATPOWER] and | ||
[Gurobi][Gurobi]. | ||
|
||
|
||
### A. MATLAB | ||
Install MATLAB and proceed as follows: | ||
Install [MATLAB][MATLAB] and proceed as follows: | ||
``` | ||
cd "matlabroot\extern\engines\python" | ||
python setup.py install | ||
|
@@ -24,7 +25,8 @@ for Mac or Linux systems. | |
|
||
|
||
### B. MATPOWER | ||
Download MATPOWER and add the following directories in ***add_path.m***: | ||
Download [MATPOWER][MATPOWER] and add the following directories in | ||
***add_path.m***: | ||
``` | ||
<MATPOWER> — core MATPOWER functions | ||
<MATPOWER>/most — core MOST functions | ||
|
@@ -58,12 +60,33 @@ primarily of a numerical weather model and an analysis system to initialize | |
that model. RAP provides, every hour ranging from May 2012 to date, the U and | ||
V components of the wind speed at 80 meter above ground on a 13x13 square | ||
kilometer resolution grid every hour. Data can be retrieved using the NetCDF | ||
Subset Service. Information on this interface is described [here][NetCDF]. | ||
|
||
Note that the dataset is incomplete (33 hours are missing in 2016) and, | ||
consequently, missing entries need to be imputed. Afterwards, wind speed is | ||
converted to power for all the wind farms in the network using the *IEC class 2* | ||
power curve provided by NREL in the [WIND Toolkit documentation][WIND_doc]. | ||
Subset Service. Information on this interface is described [here][NetCDF]. Note | ||
that the dataset is incomplete and, consequently, missing entries need to be | ||
imputed. | ||
|
||
Once the U and V components of the wind are converted to a non-directional | ||
wind speed magnitude, this speed is converted to power using wind turbine | ||
power curves. Since real wind farms are not currently mapped to TAMU network | ||
farms, a capacity-weighted average wind turbine power curve is created for each | ||
state based on the turbine types reported in EIA Form 860. The wind turbine | ||
curve for each real wind farm is looked up from a database of curves (or the | ||
*IEC class 2* power curve provided by NREL in the | ||
[WIND Toolkit documentation][WIND_doc]) is used for turbines without curves in | ||
the database), and scaled from the real hub heights to 80m hub heights using an | ||
alpha of 0.15. These height-scaled, turbine-specific curves are averaged to | ||
obtain a state curve translating wind speed to normalized power. States without | ||
wind farms in EIA Form 860 are represented by the *IEC class 2* power curve. | ||
|
||
Each turbine curve represents the instantaneous power from a single turbine for | ||
a given wind speed. To account for spatio-temporal variations in wind speed | ||
(i.e. an hourly average wind speed that varies through the hour, and a | ||
point-specific wind speed that varies throughout the wind farm), a distribution | ||
is used: a normal distribution with standard deviation of 40% of the average | ||
wind speed. This distribution tends to boost the power produced at lower | ||
wind speeds (since the power curve in this region is convex) and lower the | ||
power produced at higher wind speeds (since the power curve in this region is | ||
concave as the turbine tops out, and shuts down at higher wind speeds). This | ||
tracks with the wind-farm level data shown in NREL's validation report. | ||
Comment on lines
+85
to
+89
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 👍 |
||
|
||
Check out the ***[rap_demo.ipynb][RAP_notebook]*** notebook for demo. | ||
|
||
|
@@ -236,6 +259,9 @@ from prereise.call.test import test_call | |
test_call.test() | ||
``` | ||
|
||
[MATLAB]: https://www.mathworks.com/products/matlab.html | ||
[MATPOWER]: https://matpower.org | ||
[Gurobi]: https://www.gurobi.com | ||
[RAP]: https://www.ncdc.noaa.gov/data-access/model-data/model-datasets/rapid-refresh-rap | ||
[RAP_notebook]: https://github.com/intvenlab/PreREISE/blob/develop/prereise/gather/winddata/rap/demo/rap_demo.ipynb | ||
[NetCDF]: https://www.unidata.ucar.edu/software/thredds/current/tds/reference/NetcdfSubsetServiceReference.html | ||
|
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,8 +1,8 @@ | ||
import pytest | ||
|
||
from prereise.call.call import launch_scenario_performance | ||
|
||
|
||
@pytest.mark.skip(reason="Need to run on the server") | ||
def test(): | ||
# Moving import inside test() so that matlab module is not a dependency. | ||
from prereise.call.call import launch_scenario_performance | ||
launch_scenario_performance('0', 16) |
This file was deleted.
Oops, something went wrong.
Oops, something went wrong.
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.
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.
Don't most wind turbines only work with wind in a specific direction?
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 believe all modern turbines pivot to follow the wind.