Windpower¶
Wrapper for SAM Simulation Core model: cmod_windpower.cpp
Input Consistency Warning¶
As described in Possible Problems, some input parameters are interdependent but the equations that enforce consistency are not available in this PySAM module. Therefore, the onus is on the PySAM user to check that interdependencies are correctly handled. The variables which may require additional logic include:
- system_capacity
- 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
Provided for each of these inputs is a list of other inputs that are potentially interdependent.
Creating an Instance¶
Refer to the Initializing a Model page for details on the different ways to create an instance of a PySAM class.
Windpower model description
Wind power system with one or more wind turbines
-
PySAM.Windpower.
default
(config) → Windpower¶ Use default attributes config options:
- “WindPowerAllEquityPartnershipFlip”
- “WindPowerCommercial”
- “WindPowerLCOECalculator”
- “WindPowerLeveragedPartnershipFlip”
- “WindPowerMerchantPlant”
- “WindPowerNone”
- “WindPowerResidential”
- “WindPowerSaleLeaseback”
- “WindPowerSingleOwner”
-
PySAM.Windpower.
from_existing
(data, optional config) → Windpower¶ Share underlying data with an existing PySAM class. If config provided, default attributes are loaded otherwise.
-
PySAM.Windpower.
new
() → Windpower¶
-
PySAM.Windpower.
wrap
(ssc_data_t) → Windpower¶ Use existing PySSC data
Warning
Do not call PySSC.data_free on the ssc_data_t provided to
wrap
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
-
unassign
(name) → None¶ Unassign a value in any of the variable groups.
-
value
(name, optional value) → Union[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
() → None¶ Assign attributes from dictionary
Resource_vals = { var: val, ...}
-
export
() → dict¶ Export attributes into dictionary
-
weibull_k_factor
¶ Weibull K factor for wind resource
Required: True if wind_resource_model_choice=1
Type: float
-
weibull_reference_height
¶ Reference height for Weibull wind speed [m]
Constraints: MIN=0
Required: If not provided, assumed to be 50
Type: float
-
weibull_wind_speed
¶ Average wind speed for Weibull model
Constraints: MIN=0
Required: True if wind_resource_model_choice=1
Type: float
-
wind_resource_data
¶ Wind resouce data in memory
Required: False
Type: dict
-
wind_resource_distribution
¶ Wind Speed x Dir Distribution as 2-D PDF [m/s,deg]
Required: True if wind_resource_model_choice=2
Type: sequence[sequence]
-
wind_resource_filename
¶ Local wind data file path
Constraints: LOCAL_FILE
Required: False
Type: str
-
wind_resource_model_choice
¶ Hourly, Weibull or Distribution model [0/1/2]
Constraints: INTEGER
Required: True
- Changes to this variable may require updating the values of the following:
- wind_turbine_powercurve_powerout
- wind_turbine_powercurve_windspeeds
Type: float
-
Turbine Group¶
-
class
PySAM.Windpower.Windpower.
Turbine
¶ -
assign
() → None¶ Assign attributes from dictionary
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
-
wind_resource_shear
¶ Shear exponent
Constraints: MIN=0
Required: True
Type: float
-
wind_turbine_hub_ht
¶ Hub height [m]
Constraints: POSITIVE
Required: True
- Changes to this variable may require updating the values of the following:
- wind_turbine_powercurve_powerout
- wind_turbine_powercurve_windspeeds
Type: float
-
wind_turbine_max_cp
¶ Max Coefficient of Power
Constraints: MIN=0
Required: True if wind_resource_model_choice=1
- Changes to this variable may require updating the values of the following:
- wind_turbine_powercurve_powerout
- wind_turbine_powercurve_windspeeds
Type: float
-
wind_turbine_powercurve_powerout
¶ Power curve turbine output array [kW]
Constraints: LENGTH_EQUAL=wind_turbine_powercurve_windspeeds
Required: True
- This variable may need to be updated if the values of the following have changed:
- 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]
Required: True
- This variable may need to be updated if the values of the following have changed:
- 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
- Changes to this variable may require updating the values of the following:
- system_capacity
- wind_farm_xCoordinates
- wind_farm_yCoordinates
Type: float
-
Farm Group¶
-
class
PySAM.Windpower.Windpower.
Farm
¶ -
assign
() → None¶ Assign attributes from dictionary
Farm_vals = { var: val, ...}
-
export
() → dict¶ Export attributes into dictionary
-
system_capacity
¶ Nameplate capacity [kW]
Constraints: MIN=0
Required: True
- This variable may need to be updated if the values of the following have changed:
- wind_turbine_rotor_diameter
Type: float
-
wind_farm_wake_model
¶ Wake Model [Simple, Park, EV, Constant] [0/1/2/3]
Constraints: INTEGER
Required: True
- Changes to this variable may require updating the values of the following:
- wake_int_loss
Type: float
-
wind_farm_xCoordinates
¶ Turbine X coordinates [m]
Required: True
- This variable may need to be updated if the values of the following have changed:
- wind_turbine_rotor_diameter
Type: sequence
-
wind_farm_yCoordinates
¶ Turbine Y coordinates [m]
Constraints: LENGTH_EQUAL=wind_farm_xCoordinates
Required: True
- This variable may need to be updated if the values of the following have changed:
- 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
() → None¶ Assign attributes from dictionary
Losses_vals = { var: val, ...}
-
export
() → dict¶ Export attributes into dictionary
-
avail_bop_loss
¶ Balance-of-plant availability loss [%]
Constraints: MIN=0,MAX=100
Required: If not provided, assumed to be 0
Type: float
-
avail_grid_loss
¶ Grid availability loss [%]
Constraints: MIN=0,MAX=100
Required: If not provided, assumed to be 0
Type: float
-
avail_turb_loss
¶ Turbine availabaility loss [%]
Constraints: MIN=0,MAX=100
Required: If not provided, assumed to be 0
Type: float
-
elec_eff_loss
¶ Electrical efficiency loss [%]
Constraints: MIN=0,MAX=100
Required: If not provided, assumed to be 0
Type: float
-
elec_parasitic_loss
¶ Electrical parasitic consumption loss [%]
Constraints: MIN=0,MAX=100
Required: If not provided, assumed to be 0
Type: float
-
en_icing_cutoff
¶ Enable Icing Cutoff [0/1]
Constraints: INTEGER
Required: If not provided, assumed to be 0
Type: float
-
en_low_temp_cutoff
¶ Enable Low Temperature Cutoff [0/1]
Constraints: INTEGER
Required: If not provided, assumed to be 0
Type: float
-
env_degrad_loss
¶ Environmental Degradation loss [%]
Constraints: MIN=0,MAX=100
Required: If not provided, assumed to be 0
Type: float
-
env_env_loss
¶ Environmental External Conditions loss [%]
Constraints: MIN=0,MAX=100
Required: If not provided, assumed to be 0
Type: float
-
env_exposure_loss
¶ Environmental Exposure loss [%]
Constraints: MIN=0,MAX=100
Required: If not provided, assumed to be 0
Type: float
-
env_icing_loss
¶ Environmental Icing loss [%]
Constraints: MIN=0,MAX=100
Required: If not provided, assumed to be 0
Type: float
-
icing_cutoff_rh
¶ Icing Cutoff Relative Humidity [%]
Info: ‘rh’ required in wind_resource_data
Constraints: MIN=0
Required: True if en_icing_cutoff=1
Type: float
-
icing_cutoff_temp
¶ Icing Cutoff Temperature [C]
Required: True if en_icing_cutoff=1
Type: float
-
low_temp_cutoff
¶ Low Temperature Cutoff [C]
Required: True if en_low_temp_cutoff=1
Type: float
-
ops_env_loss
¶ Environmental/Permit Curtailment loss [%]
Constraints: MIN=0,MAX=100
Required: If not provided, assumed to be 0
Type: float
-
ops_grid_loss
¶ Grid curtailment loss [%]
Constraints: MIN=0,MAX=100
Required: If not provided, assumed to be 0
Type: float
-
ops_load_loss
¶ Load curtailment loss [%]
Constraints: MIN=0,MAX=100
Required: If not provided, assumed to be 0
Type: float
-
ops_strategies_loss
¶ Operational strategies loss [%]
Constraints: MIN=0,MAX=100
Required: If not provided, assumed to be 0
Type: float
-
turb_generic_loss
¶ Turbine Generic Powercurve loss [%]
Constraints: MIN=0,MAX=100
Required: If not provided, assumed to be 0
Type: float
-
turb_hysteresis_loss
¶ Turbine High Wind Hysteresis loss [%]
Constraints: MIN=0,MAX=100
Required: If not provided, assumed to be 0
Type: float
-
turb_perf_loss
¶ Turbine Sub-optimal performance loss [%]
Constraints: MIN=0,MAX=100
Required: If not provided, assumed to be 0
Type: float
-
turb_specific_loss
¶ Turbine Site-specific Powercurve loss [%]
Constraints: MIN=0,MAX=100
Required: If not provided, assumed to be 0
Type: float
-
wake_ext_loss
¶ External Wake loss [%]
Constraints: MIN=0,MAX=100
Required: If not provided, assumed to be 0
Type: float
-
wake_future_loss
¶ Future Wake loss [%]
Constraints: MIN=0,MAX=100
Required: If not provided, assumed to be 0
Type: float
-
wake_int_loss
¶ Constant Wake Model, internal wake loss [%]
Constraints: MIN=0,MAX=100
Required: True if wind_farm_wake_model=3
- This variable may need to be updated if the values of the following have changed:
- wind_farm_wake_model
Type: float
-
Uncertainty Group¶
-
class
PySAM.Windpower.Windpower.
Uncertainty
¶ -
assign
() → None¶ Assign attributes from dictionary
Uncertainty_vals = { var: val, ...}
-
export
() → dict¶ Export attributes into dictionary
-
total_uncert
¶ Total uncertainty in energy production as percent of annual energy [%]
Constraints: MIN=0,MAX=100
Type: float
-
AdjustmentFactors Group¶
-
class
PySAM.Windpower.Windpower.
AdjustmentFactors
¶ -
assign
() → None¶ Assign attributes from dictionary
-
export
() → Dict¶ Export attributes into dictionary
-
constant
¶ float
Type: type
-
dc_constant
¶ DC Constant loss adjustment [%]
-
dc_hourly
¶ DC Hourly Adjustment Factors [%]
-
dc_periods
¶ DC Period-based Adjustment Factors [%]
-
hourly
¶ AC Hourly Adjustment Factors [%]
-
periods
¶ AC Period-based Adjustment Factors [%]
-
sf_constant
¶ DC Constant loss adjustment [%]
-
sf_hourly
¶ DC Hourly Adjustment Factors [%]
-
sf_periods
¶ DC Period-based Adjustment Factors [%]
-
Outputs Group¶
-
class
PySAM.Windpower.Windpower.
Outputs
¶ -
assign
() → None¶ Assign attributes from dictionary
Outputs_vals = { var: val, ...}
-
export
() → dict¶ Export attributes into dictionary
-
annual_energy
¶ Annual Energy [kWh]
Type: float
-
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
-
cutoff_losses
¶ Low temp and Icing Cutoff losses [%]
Type: float
-
elec_losses
¶ Electrical losses [%]
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
-
monthly_energy
¶ Monthly Energy [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 [deg]
Type: sequence
-
wind_speed
¶ Wind speed [m/s]
Type: sequence
-
wind_speed_average
¶ Average Wind speed [m/s]
Type: float
-