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

  • 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