Windpower
Wind power system with one or more wind turbines
- PySAM.Windpower.default(config) Windpower
Load defaults for the configuration
config
. Available configurations are:“GenericPVWattsWindFuelCellBatteryHybridHostDeveloper”
“GenericPVWattsWindFuelCellBatteryHybridSingleOwner”
“PVWattsWindBatteryHybridHostDeveloper”
“PVWattsWindBatteryHybridSingleOwner”
“PVWattsWindFuelCellBatteryHybridHostDeveloper”
“PVWattsWindFuelCellBatteryHybridSingleOwner”
“PhotovoltaicWindBatteryHybridHostDeveloper”
“PhotovoltaicWindBatteryHybridSingleOwner”
“WindPowerAllEquityPartnershipFlip”
“WindPowerCommercial”
“WindPowerLCOECalculator”
“WindPowerLeveragedPartnershipFlip”
“WindPowerMerchantPlant”
“WindPowerNone”
“WindPowerResidential”
“WindPowerSaleLeaseback”
“WindPowerSingleOwner”
Note
Some inputs do not have default values and may be assigned a value from the variable’s Required attribute. See variable attribute descriptions below.
- PySAM.Windpower.from_existing(data, optional config) Windpower
Share data with an existing PySAM class. If
optional config
is a valid configuration name, load the module’s defaults for that configuration.
- PySAM.Windpower.wrap(ssc_data_t) Windpower
Load data from a PySSC object.
Warning
Do not call PySSC.data_free on the ssc_data_t provided to
wrap()
Windpower is a wrapper for the SSC compute module cmod_windpower.cpp
Interdependent Variables
The variables listed below are interdependent with other variables. If you change the value of one of these variables, you may need to change values of other variables. The SAM user interface manages these interdependent variables, but in PySAM, it is up to you change the value of all interdependent variables so they are consistent. See Interdependent Variables for examples and details.
wake_int_loss
wind_farm_wake_model
wind_farm_xCoordinates
wind_farm_yCoordinates
wind_resource_model_choice
wind_turbine_hub_ht
wind_turbine_max_cp
wind_turbine_powercurve_powerout
wind_turbine_powercurve_windspeeds
wind_turbine_rotor_diameter
Functions
- class PySAM.Windpower.Windpower
This class contains all the variable information for running a simulation. Variables are grouped together in the subclasses as properties. If property assignments are the wrong type, an error is thrown.
- assign(dict) None
Assign attributes from nested dictionary, except for Outputs
nested_dict = { 'Resource': { var: val, ...}, ...}
- execute(int verbosity) None
Execute simulation with verbosity level 0 (default) or 1
- export() dict
Export attributes into nested dictionary
- get_data_ptr() Pointer
Get ssc_data_t pointer
- replace(dict) None
Replace attributes from nested dictionary, except for Outputs. Unassigns all values in each Group then assigns from the input dict.
nested_dict = { 'Resource': { var: val, ...}, ...}
- unassign(name) None
Unassign a value in any of the variable groups.
- value(name, optional value) None | float | dict | sequence | str
Get or set by name a value in any of the variable groups.
Resource Group
- class PySAM.Windpower.Windpower.Resource
- assign(dict) None
Assign attributes from dictionary, overwriting but not removing values.
Resource_vals = { var: val, ...}
- export() dict
Export attributes into dictionary.
- replace(dict) None
Replace attributes from dictionary, unassigning values not present in input
dict
.Resource_vals = { var: val, ...}
- weibull_k_factor
Weibull K factor for wind resource
Required: Required if wind_resource_model_choice=1
- Type:
float
- weibull_reference_height
Reference height for Weibull wind speed [m]
Constraints: MIN=0
Required: False. Automatically set to 50 if not assigned explicitly or loaded from defaults.
- Type:
float
- weibull_wind_speed
Average wind speed for Weibull model
Constraints: MIN=0
Required: Required if wind_resource_model_choice=1
- Type:
float
- wind_resource_data
Wind resouce data in memory
Required: False for configuration with default inputs. May be required if a variable dependent on its value changes. Example: For the Detailed PV - Single Owner configuration, only Subarray 1 is enabled in the configuration defaults, so Subarray 2 inputs would not be required; if Subarray 2 is enabled, then Subarray 2 inputs is required.
- Type:
dict
- wind_resource_distribution
Wind Speed x Dir Distribution as 2-D PDF [m/s,deg]
Required: Required if wind_resource_model_choice=2
- Type:
sequence[sequence]
- wind_resource_filename
Local wind data file path
Constraints: LOCAL_FILE
Required: False for configuration with default inputs. May be required if a variable dependent on its value changes. Example: For the Detailed PV - Single Owner configuration, only Subarray 1 is enabled in the configuration defaults, so Subarray 2 inputs would not be required; if Subarray 2 is enabled, then Subarray 2 inputs is required.
- Type:
str
- wind_resource_model_choice
Hourly, Weibull or Distribution model [0/1/2]
Constraints: INTEGER
Required: True
The value of the following variables depends on
wind_resource_model_choice
:wind_turbine_powercurve_powerout
wind_turbine_powercurve_windspeeds
- Type:
float
Turbine Group
- class PySAM.Windpower.Windpower.Turbine
- assign(dict) None
Assign attributes from dictionary, overwriting but not removing values.
Turbine_vals = { var: val, ...}
- calculate_powercurve()
Calculates the power produced by a wind turbine at windspeeds incremented by 0.25 m/snnInput: var_table with key-value pairsn ‘turbine_size’: double [kW]n ‘rotor_diameter’: int [m]n ‘elevation’: double [m], required if using Weibull resource model, otherwise 0n ‘max_cp’: double max Cp [-],n ‘max_tip_speed’: double [m/s]n ‘max_tip_sp_ratio’: double max tip speed ratio [-]n ‘cut_in’: double cut in speed [m/s]n ‘cut_out’: double cut out speed [m/s]n ‘drive_train’: int 0: 3 Stage Planetary, 1: Single Stage - Low Speed Generator, 2: Multi-Generator, 3: Direct DrivennOutput: key-value pairs added to var_tablen ‘wind_turbine_powercurve_windspeeds’: array [m/s]n ‘wind_turbine_powercurve_powerout’: array [m/s]n ‘rated_wind_speed’: double [m/s[n ‘hub_efficiency’: array [m/s]
- export() dict
Export attributes into dictionary.
- replace(dict) None
Replace attributes from dictionary, unassigning values not present in input
dict
.Turbine_vals = { var: val, ...}
- wind_resource_shear
Shear exponent
Constraints: MIN=0
Required: True
- Type:
float
- wind_turbine_hub_ht
Hub height [m]
Constraints: POSITIVE
Required: True
The value of the following variables depends on
wind_turbine_hub_ht
:wind_turbine_powercurve_powerout
wind_turbine_powercurve_windspeeds
- Type:
float
- wind_turbine_max_cp
Max Coefficient of Power
Constraints: MIN=0
Required: Required if wind_resource_model_choice=1
The value of the following variables depends on
wind_turbine_max_cp
:wind_turbine_powercurve_powerout
wind_turbine_powercurve_windspeeds
- Type:
float
- wind_turbine_powercurve_powerout
Power curve turbine output array [kW]
INOUT: This variable is both an input and an output to the compute module.
Constraints: LENGTH_EQUAL=wind_turbine_powercurve_windspeeds
Required: True
The value of
wind_turbine_powercurve_powerout
depends on the following variables:wind_resource_model_choice
wind_turbine_hub_ht
wind_turbine_max_cp
- Type:
sequence
- wind_turbine_powercurve_windspeeds
Power curve wind speed array [m/s]
INOUT: This variable is both an input and an output to the compute module.
Required: True
The value of
wind_turbine_powercurve_windspeeds
depends on the following variables:wind_resource_model_choice
wind_turbine_hub_ht
wind_turbine_max_cp
- Type:
sequence
- wind_turbine_rotor_diameter
Rotor diameter [m]
Constraints: POSITIVE
Required: True
The value of the following variables depends on
wind_turbine_rotor_diameter
:wind_farm_xCoordinates
wind_farm_yCoordinates
- Type:
float
Farm Group
- class PySAM.Windpower.Windpower.Farm
- assign(dict) None
Assign attributes from dictionary, overwriting but not removing values.
Farm_vals = { var: val, ...}
- export() dict
Export attributes into dictionary.
- replace(dict) None
Replace attributes from dictionary, unassigning values not present in input
dict
.Farm_vals = { var: val, ...}
- max_turbine_override
Override the max number of turbines for wake modeling [numTurbines]
Info: set new max num turbines
- Type:
float
- system_capacity
Nameplate capacity [kW]
Constraints: MIN=0
Required: True
The value of
system_capacity
depends on the following variables:wind_turbine_rotor_diameter
- Type:
float
- wind_farm_wake_model
Wake Model [Simple, Park, EV, Constant] [0/1/2/3]
Constraints: INTEGER
Required: True
The value of the following variables depends on
wind_farm_wake_model
:wake_int_loss
- Type:
float
- wind_farm_xCoordinates
Turbine X coordinates [m]
Required: True
The value of
wind_farm_xCoordinates
depends on the following variables:wind_turbine_rotor_diameter
- Type:
sequence
- wind_farm_yCoordinates
Turbine Y coordinates [m]
Constraints: LENGTH_EQUAL=wind_farm_xCoordinates
Required: True
The value of
wind_farm_yCoordinates
depends on the following variables:wind_turbine_rotor_diameter
- Type:
sequence
- wind_resource_turbulence_coeff
Turbulence coefficient [%]
Constraints: MIN=0
Required: True
- Type:
float
Losses Group
- class PySAM.Windpower.Windpower.Losses
- assign(dict) None
Assign attributes from dictionary, overwriting but not removing values.
Losses_vals = { var: val, ...}
- export() dict
Export attributes into dictionary.
- replace(dict) None
Replace attributes from dictionary, unassigning values not present in input
dict
.Losses_vals = { var: val, ...}
- avail_bop_loss
Balance-of-plant availability loss [%]
Constraints: MIN=0,MAX=100
Required: False. Automatically set to 0 if not assigned explicitly or loaded from defaults.
- Type:
float
- avail_grid_loss
Grid availability loss [%]
Constraints: MIN=0,MAX=100
Required: False. Automatically set to 0 if not assigned explicitly or loaded from defaults.
- Type:
float
- avail_turb_loss
Turbine availabaility loss [%]
Constraints: MIN=0,MAX=100
Required: False. Automatically set to 0 if not assigned explicitly or loaded from defaults.
- Type:
float
- elec_eff_loss
Electrical efficiency loss [%]
Constraints: MIN=0,MAX=100
Required: False. Automatically set to 0 if not assigned explicitly or loaded from defaults.
- Type:
float
- elec_parasitic_loss
Electrical parasitic consumption loss [%]
Constraints: MIN=0,MAX=100
Required: False. Automatically set to 0 if not assigned explicitly or loaded from defaults.
- Type:
float
- en_icing_cutoff
Enable Icing Cutoff [0/1]
Constraints: INTEGER
Required: False. Automatically set to 0 if not assigned explicitly or loaded from defaults.
- Type:
float
- en_low_temp_cutoff
Enable Low Temperature Cutoff [0/1]
Constraints: INTEGER
Required: False. Automatically set to 0 if not assigned explicitly or loaded from defaults.
- Type:
float
- env_degrad_loss
Environmental Degradation loss [%]
Constraints: MIN=0,MAX=100
Required: False. Automatically set to 0 if not assigned explicitly or loaded from defaults.
- Type:
float
- env_env_loss
Environmental External Conditions loss [%]
Constraints: MIN=0,MAX=100
Required: False. Automatically set to 0 if not assigned explicitly or loaded from defaults.
- Type:
float
- env_exposure_loss
Environmental Exposure loss [%]
Constraints: MIN=0,MAX=100
Required: False. Automatically set to 0 if not assigned explicitly or loaded from defaults.
- Type:
float
- env_icing_loss
Environmental Icing loss [%]
Constraints: MIN=0,MAX=100
Required: False. Automatically set to 0 if not assigned explicitly or loaded from defaults.
- Type:
float
- icing_cutoff_rh
Icing Cutoff Relative Humidity [%]
Info: ‘rh’ required in wind_resource_data
Constraints: MIN=0
Required: Required if en_icing_cutoff=1
- Type:
float
- icing_cutoff_temp
Icing Cutoff Temperature [C]
Required: Required if en_icing_cutoff=1
- Type:
float
- low_temp_cutoff
Low Temperature Cutoff [C]
Required: Required if en_low_temp_cutoff=1
- Type:
float
- ops_env_loss
Environmental/Permit Curtailment loss [%]
Constraints: MIN=0,MAX=100
Required: False. Automatically set to 0 if not assigned explicitly or loaded from defaults.
- Type:
float
- ops_grid_loss
Grid curtailment loss [%]
Constraints: MIN=0,MAX=100
Required: False. Automatically set to 0 if not assigned explicitly or loaded from defaults.
- Type:
float
- ops_load_loss
Load curtailment loss [%]
Constraints: MIN=0,MAX=100
Required: False. Automatically set to 0 if not assigned explicitly or loaded from defaults.
- Type:
float
- ops_strategies_loss
Operational strategies loss [%]
Constraints: MIN=0,MAX=100
Required: False. Automatically set to 0 if not assigned explicitly or loaded from defaults.
- Type:
float
- turb_generic_loss
Turbine Generic Powercurve loss [%]
Constraints: MIN=0,MAX=100
Required: False. Automatically set to 0 if not assigned explicitly or loaded from defaults.
- Type:
float
- turb_hysteresis_loss
Turbine High Wind Hysteresis loss [%]
Constraints: MIN=0,MAX=100
Required: False. Automatically set to 0 if not assigned explicitly or loaded from defaults.
- Type:
float
- turb_perf_loss
Turbine Sub-optimal performance loss [%]
Constraints: MIN=0,MAX=100
Required: False. Automatically set to 0 if not assigned explicitly or loaded from defaults.
- Type:
float
- turb_specific_loss
Turbine Site-specific Powercurve loss [%]
Constraints: MIN=0,MAX=100
Required: False. Automatically set to 0 if not assigned explicitly or loaded from defaults.
- Type:
float
- wake_ext_loss
External Wake loss [%]
Constraints: MIN=0,MAX=100
Required: False. Automatically set to 0 if not assigned explicitly or loaded from defaults.
- Type:
float
- wake_future_loss
Future Wake loss [%]
Constraints: MIN=0,MAX=100
Required: False. Automatically set to 0 if not assigned explicitly or loaded from defaults.
- Type:
float
- wake_int_loss
Constant Wake Model, internal wake loss [%]
Constraints: MIN=0,MAX=100
Required: Required if wind_farm_wake_model=3
The value of
wake_int_loss
depends on the following variables:wind_farm_wake_model
- Type:
float
AdjustmentFactors Group
- class PySAM.AdjustmentFactors.AdjustmentFactors
- assign() None
Assign attributes from dictionary
- export() Dict
Export attributes into dictionary
- constant
AC Constant loss adjustment [%]
- dc_constant
DC Constant loss adjustment [%]
- dc_en_hourly
Enable DC hourly-based adjustment factors [0/1]
- dc_en_periods
Enable DC period-based adjustment factors [0/1]
- dc_en_timeindex
Enable DC lfetime adjustment factors [0/1]
- dc_hourly
DC Hourly Adjustment Factors [%]
- dc_periods
DC Period-based Adjustment Factors [%]
- dc_timeindex
DC Lifetime Adjustment Factors [%]
- en_hourly
Enable AC hourly-based adjustment factors [0/1]
- en_periods
Enable AC period-based adjustment factors [0/1]
- en_timeindex
Enable AC lfetime adjustment factors [0/1]
- hourly
AC Hourly Adjustment Factors [%]
- periods
AC Period-based Adjustment Factors [%]
- sf_constant
DC Constant loss adjustment [%]
- sf_en_hourly
Enable SF hourly-based adjustment factors [0/1]
- sf_en_periods
Enable SF period-based adjustment factors [0/1]
- sf_en_timeindex
Enable SF lfetime adjustment factors [0/1]
- sf_hourly
SF Hourly Adjustment Factors [%]
- sf_periods
SF Period-based Adjustment Factors [%]
- sf_timeindex
SF Lifetime Adjustment Factors [%]
- timeindex
AC Lifetime Adjustment Factors [%]
Uncertainty Group
- class PySAM.Windpower.Windpower.Uncertainty
- assign(dict) None
Assign attributes from dictionary, overwriting but not removing values.
Uncertainty_vals = { var: val, ...}
- export() dict
Export attributes into dictionary.
- replace(dict) None
Replace attributes from dictionary, unassigning values not present in input
dict
.Uncertainty_vals = { var: val, ...}
- total_uncert
Total uncertainty in energy production as percent of annual energy [%]
Constraints: MIN=0,MAX=100
- Type:
float
HybridCosts Group
- class PySAM.Windpower.Windpower.HybridCosts
- assign(dict) None
Assign attributes from dictionary, overwriting but not removing values.
HybridCosts_vals = { var: val, ...}
- export() dict
Export attributes into dictionary.
- replace(dict) None
Replace attributes from dictionary, unassigning values not present in input
dict
.HybridCosts_vals = { var: val, ...}
- degradation
Annual AC degradation [%]
Required: False. Automatically set to 0.0 if not assigned explicitly or loaded from defaults.
- Type:
sequence
- land_area
Total land area [acres]
Required: False. Automatically set to 0 if not assigned explicitly or loaded from defaults.
The value of
land_area
depends on the following variables:wind_turbine_rotor_diameter
- Type:
float
- om_capacity
Capacity-based O&M amount [$/kWcap]
Info: !battery,!fuelcell
Required: False. Automatically set to 0.0 if not assigned explicitly or loaded from defaults.
- Type:
sequence
- om_capacity_escal
Capacity-based O&M escalation [%/year]
Required: False. Automatically set to 0.0 if not assigned explicitly or loaded from defaults.
- Type:
float
- om_fixed
Fixed O&M annual amount [$/year]
Info: !battery,!fuelcell
Required: False. Automatically set to 0.0 if not assigned explicitly or loaded from defaults.
- Type:
sequence
- om_fixed_escal
Fixed O&M escalation [%/year]
Required: False. Automatically set to 0.0 if not assigned explicitly or loaded from defaults.
- Type:
float
- om_land_lease
Land lease cost [$/acre]
Required: False. Automatically set to 0 if not assigned explicitly or loaded from defaults.
- Type:
sequence
- om_land_lease_escal
Land lease cost escalation [%/yr]
Required: False. Automatically set to 0 if not assigned explicitly or loaded from defaults.
- Type:
float
- om_production
Production-based O&M amount [$/MWh]
Info: !battery,!fuelcell
Required: False. Automatically set to 0.0 if not assigned explicitly or loaded from defaults.
- Type:
sequence
- om_production_escal
Production-based O&M escalation [%/year]
Required: False. Automatically set to 0.0 if not assigned explicitly or loaded from defaults.
- Type:
float
- total_installed_cost
Total installed cost [$]
Required: True
The value of
total_installed_cost
depends on the following variables:wind_turbine_rotor_diameter
- Type:
float
Outputs Group
- class PySAM.Windpower.Windpower.Outputs
- assign(dict) None
Assign attributes from dictionary, overwriting but not removing values.
Outputs_vals = { var: val, ...}
- export() dict
Export attributes into dictionary.
- replace(dict) None
Replace attributes from dictionary, unassigning values not present in input
dict
.Outputs_vals = { var: val, ...}
- annual_energy
Annual Energy [kWh]
- Type:
float
- annual_energy_distribution_time
Annual energy production as function of time [kW]
- Type:
sequence[sequence]
- annual_energy_p75
Annual energy with 75% probability of exceedance [kWh]
- Type:
float
- annual_energy_p90
Annual energy with 90% probability of exceedance [kWh]
- Type:
float
- annual_energy_p95
Annual energy with 95% probability of exceedance [kWh]
- Type:
float
- annual_gross_energy
Annual Gross Energy [kWh]
- Type:
float
- avail_losses
Availability losses [%]
- Type:
float
- capacity_factor
Capacity factor [%]
- Type:
float
- cf_battery_replacement_cost_schedule
replacement O&M costs [$]
- Type:
sequence
- cf_energy_net
annual energy [kWh]
- Type:
sequence
- cf_fuelcell_replacement_cost_schedule
replacement O&M costs [$]
- Type:
sequence
- cf_land_lease_expense
Land lease expense [$]
- Type:
sequence
- cf_om_capacity
capacity O&M costs [$]
- Type:
sequence
- cf_om_fixed
fixed O&M costs [$]
- Type:
sequence
- cf_om_fuel_cost
fossil fuel O&M costs [$]
- Type:
sequence
- cf_om_land_lease
land lease O&M costs [$]
- Type:
sequence
- cf_om_production
production O&M costs [$]
- Type:
sequence
- cutoff_losses
Low temp and Icing Cutoff losses [%]
- Type:
float
- elec_losses
Electrical losses [%]
- Type:
float
- elev
Site elevation [m]
- Type:
float
- env_losses
Environmental losses [%]
- Type:
float
- gen
System power generated [kW]
- Type:
sequence
- kwh_per_kw
First year kWh/kW [kWh/kW]
- Type:
float
- lat
Latitude [degrees]
- Type:
float
- lon
Longitude [degrees]
- Type:
float
- monthly_energy
Monthly Energy Gross [kWh]
- Type:
sequence
- ops_losses
Operational losses [%]
- Type:
float
- pressure
Pressure [atm]
- Type:
sequence
- temp
Air temperature [‘C]
- Type:
sequence
- turb_losses
Turbine losses [%]
- Type:
float
- turbine_output_by_windspeed_bin
Turbine output by wind speed bin [kW]
- Type:
sequence
- wake_losses
Wake losses [%]
- Type:
float
- wind_direction
Wind direction [degrees]
- Type:
sequence
- wind_speed
Wind speed [m/s]
- Type:
sequence
- wind_speed_average
Average Wind speed [m/s]
- Type:
float
- year
Year
- Type:
float