Windpower

Wind power system with one or more wind turbines

PySAM.Windpower.default(config) → Windpower

Load defaults for the configuration config. Available configurations are:

  • “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.new() → Windpower
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.

  • 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

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

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) → 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(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]

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]

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:

  • system_capacity
  • 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

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

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(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
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