- Posts: 3
Using Known System Capacity Factors to Model Hourly Wind Generation
- colleenmccamy
- Topic Author
Less
More
07 May 2023 12:33 #12123
by colleenmccamy
Using Known System Capacity Factors to Model Hourly Wind Generation was created by colleenmccamy
Hello,
We are working to get hourly capacity factor for wind at locations of existing wind projects within the contiguous US using the WIND Toolkit wind speed data. We have a SAM code using the PySSC model. We are providing lat and lon values for centroids of each wind project. We are also inputting the project's system capacity as a float within the following code. However, when providing the project's system capacity, the hourly capacity factors that we get for each site do not make sense (values greater than 1). What would be the best way to provide the known system capacity for the wind projects to get estimated hourly capacity factors with the given wind speed data to the SAM model so that it calculates the hourly capacity factors using known system capacity?
We also saw that the system_capacity variable depends on rotor diameter. We input the rotor diameter into the model, the capacity factors do not change.
system_cap_kw = float(system_cap_kw)
def onshoreWind(homePath, lat_in, lon_in, rotor_m, system_cap_kw, data_in):
# importing libraries
import PySAM
from PySAM.PySSC import PySSC
import pandas as pd
import numpy as np
import sys, os
# setting inputs as floats
rotor_m = float(rotor_m)
system_cap_kw = float(system_cap_kw)
# setting model inputs
ssc = PySSC()
ssc.data_set_number( data, b'wind_turbine_rotor_diameter', rotor_m )
ssc.data_set_number( data, b'system_capacity', system_cap_kw )
........ additional model code
I have included the entire SAM Assumptions script as an attachment. Please let us know if there is any additional information that we can provide and we appreciate your time and help!
Best,
Colleen
We are working to get hourly capacity factor for wind at locations of existing wind projects within the contiguous US using the WIND Toolkit wind speed data. We have a SAM code using the PySSC model. We are providing lat and lon values for centroids of each wind project. We are also inputting the project's system capacity as a float within the following code. However, when providing the project's system capacity, the hourly capacity factors that we get for each site do not make sense (values greater than 1). What would be the best way to provide the known system capacity for the wind projects to get estimated hourly capacity factors with the given wind speed data to the SAM model so that it calculates the hourly capacity factors using known system capacity?
We also saw that the system_capacity variable depends on rotor diameter. We input the rotor diameter into the model, the capacity factors do not change.
system_cap_kw = float(system_cap_kw)
def onshoreWind(homePath, lat_in, lon_in, rotor_m, system_cap_kw, data_in):
# importing libraries
import PySAM
from PySAM.PySSC import PySSC
import pandas as pd
import numpy as np
import sys, os
# setting inputs as floats
rotor_m = float(rotor_m)
system_cap_kw = float(system_cap_kw)
# setting model inputs
ssc = PySSC()
ssc.data_set_number( data, b'wind_turbine_rotor_diameter', rotor_m )
ssc.data_set_number( data, b'system_capacity', system_cap_kw )
........ additional model code
I have included the entire SAM Assumptions script as an attachment. Please let us know if there is any additional information that we can provide and we appreciate your time and help!
Best,
Colleen
Attachments:
Please Log in or Create an account to join the conversation.
- pgilman
Less
More
- Posts: 5447
08 May 2023 17:47 - 08 May 2023 17:48 #12128
by pgilman
Replied by pgilman on topic Using Known System Capacity Factors to Model Hourly Wind Generation
Hi Colleen,
Your Python code imports the PySAM package so you don't need to also import PySSC. You can use the method described in the PySAM documentation to import input data from SAM into your PySAM model:
nrel-pysam.readthedocs.io/en/main/inputs-from-sam.html
The benefit of using PySAM is that it has better documentation and provides methods for interacting with variables.
To model different sizes of wind farms, you have to set the value of the following three variables together:
You can use the diagram on SAM's Wind Farm input page to figure out how those X and Y coordinates work.
Here is a basic code example that shows how to model a wind farm with one turbine and two turbines, assuming you are using the power curve option for specifying the wind turbine. See the attached zip file for the input JSON file, which I generated from the .sam file and then modified to read the wind resource file from the folder containing the Python script.
Best regards,
Paul.
Your Python code imports the PySAM package so you don't need to also import PySSC. You can use the method described in the PySAM documentation to import input data from SAM into your PySAM model:
nrel-pysam.readthedocs.io/en/main/inputs-from-sam.html
The benefit of using PySAM is that it has better documentation and provides methods for interacting with variables.
To model different sizes of wind farms, you have to set the value of the following three variables together:
Code:
system_capacity
wind_farm_xCoordinates
wind_farm_yCoordinates
You can use the diagram on SAM's Wind Farm input page to figure out how those X and Y coordinates work.
Here is a basic code example that shows how to model a wind farm with one turbine and two turbines, assuming you are using the power curve option for specifying the wind turbine. See the attached zip file for the input JSON file, which I generated from the .sam file and then modified to read the wind resource file from the folder containing the Python script.
Code:
import json
import PySAM.Windpower as wp
wind = wp.new()
with open('untitled_windpower.json', 'r') as file:
data = json.load(file)
# loop through each key-value pair
for k, v in data.items():
if k != 'number_inputs':
wind.value(k, v)
# Wind farm with one turbine
wind.value('wind_farm_xCoordinates', [ 0 ])
wind.value('wind_farm_yCoordinates', [ 0 ])
wind.value('system_capacity', 48000)
wind.execute()
print('annual energy (kWh) = ', wind.Outputs.annual_energy)
print('capacity factor = ', wind.Outputs.capacity_factor)
print()
#Wind farm with two turbines
wind.value('wind_farm_xCoordinates', [ 0, 616 ])
wind.value('wind_farm_yCoordinates', [ 0, 0 ])
wind.value('system_capacity', 96000)
wind.execute()
print('annual energy (kWh) = ', wind.Outputs.annual_energy)
print('capacity factor = ', wind.Outputs.capacity_factor)
Best regards,
Paul.
Attachments:
Last edit: 08 May 2023 17:48 by pgilman.
Please Log in or Create an account to join the conversation.
- pgilman
Less
More
- Posts: 5447
10 May 2023 11:38 #12138
by pgilman
Replied by pgilman on topic Using Known System Capacity Factors to Model Hourly Wind Generation
We created a new example for the PySAM Windpower module here:
github.com/NREL/pysam/tree/main/Examples/Windpower%20Example
.
Best regards,
Paul.
Best regards,
Paul.
Please Log in or Create an account to join the conversation.
Moderators: pgilman