Battery
Detailed battery storage model
- PySAM.Battery.default(config) Battery
Load defaults for the configuration
config
. Available configurations are:“FuelCellCommercial”
“FuelCellSingleOwner”
“GenericBatteryAllEquityPartnershipFlip”
“GenericBatteryCommercial”
“GenericBatteryHostDeveloper”
“GenericBatteryLeveragedPartnershipFlip”
“GenericBatteryMerchantPlant”
“GenericBatteryResidential”
“GenericBatterySaleLeaseback”
“GenericBatterySingleOwner”
“GenericBatteryThirdParty”
“GenericPVWattsWindFuelCellBatteryHybridHostDeveloper”
“GenericPVWattsWindFuelCellBatteryHybridSingleOwner”
“MEwaveBatterySingleOwner”
“PVWattsWindBatteryHybridHostDeveloper”
“PVWattsWindBatteryHybridSingleOwner”
“PVWattsWindFuelCellBatteryHybridHostDeveloper”
“PVWattsWindFuelCellBatteryHybridSingleOwner”
“PhotovoltaicWindBatteryHybridHostDeveloper”
“PhotovoltaicWindBatteryHybridSingleOwner”
“StandaloneBatteryAllEquityPartnershipFlip”
“StandaloneBatteryCommercial”
“StandaloneBatteryHostDeveloper”
“StandaloneBatteryLeveragedPartnershipFlip”
“StandaloneBatteryMerchantPlant”
“StandaloneBatteryResidential”
“StandaloneBatterySaleLeaseback”
“StandaloneBatterySingleOwner”
“StandaloneBatteryThirdParty”
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.Battery.from_existing(data, optional config) Battery
Share data with an existing PySAM class. If
optional config
is a valid configuration name, load the module’s defaults for that configuration.
- PySAM.Battery.wrap(ssc_data_t) Battery
Load data from a PySSC object.
Warning
Do not call PySSC.data_free on the ssc_data_t provided to
wrap()
Battery is a wrapper for the SSC compute module cmod_battery.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.
LeadAcid_q10_computed
LeadAcid_q20_computed
LeadAcid_qn_computed
batt_Qexp
batt_Qfull
batt_Qfull_flow
batt_Qnom
batt_Vnom_default
batt_ac_dc_efficiency
batt_ac_or_dc
batt_chem
batt_computed_bank_capacity
batt_computed_series
batt_computed_strings
batt_current_charge_max
batt_current_choice
batt_current_discharge_max
batt_dc_ac_efficiency
batt_dc_dc_efficiency
batt_dispatch_load_forecast_choice
batt_load_ac_forecast
batt_load_ac_forecast_escalation
batt_mass
batt_power_charge_max_kwac
batt_power_charge_max_kwdc
batt_power_discharge_max_kwac
batt_power_discharge_max_kwdc
batt_room_temperature_celsius
batt_surface_area
dispatch_manual_discharge
dispatch_manual_gridcharge
dispatch_manual_percent_discharge
dispatch_manual_percent_gridcharge
grid_curtailment
load_escalation
Functions
- class PySAM.Battery.Battery
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.
- Reopt_size_standalone_battery_post()
Given a PV system with Utilityrate5 parameters, get the optimal battery size. Maps SAM compute module inputs to those of the ReOpt API: Pvsamv1 model linked with Battery, Utilityrate5, with Cashloan optional.
For more information on which PySAM variables are used, see: https://github.com/NREL/ssc/blob/develop/ssc/cmod_battery_eqns.h
For an example, see the ‘Examples’ readthedocs page.
- assign(dict) None
Assign attributes from nested dictionary, except for Outputs
nested_dict = { 'Simulation': { 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 = { 'Simulation': { 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.
Simulation Group
- class PySAM.Battery.Battery.Simulation
- assign(dict) None
Assign attributes from dictionary, overwriting but not removing values.
Simulation_vals = { var: val, ...}
- export() dict
Export attributes into dictionary.
- replace(dict) None
Replace attributes from dictionary, unassigning values not present in input
dict
.Simulation_vals = { var: val, ...}
- percent_complete
Estimated simulation status [%]
INOUT: This variable is both an input and an output to the compute module.
- Type:
float
Lifetime Group
- class PySAM.Battery.Battery.Lifetime
- assign(dict) None
Assign attributes from dictionary, overwriting but not removing values.
Lifetime_vals = { var: val, ...}
- export() dict
Export attributes into dictionary.
- replace(dict) None
Replace attributes from dictionary, unassigning values not present in input
dict
.Lifetime_vals = { var: val, ...}
- analysis_period
Lifetime analysis period [years]
Info: The number of years in the simulation
Required: Required if system_use_lifetime_output=1
- Type:
float
- inflation_rate
Inflation rate [%]
Constraints: MIN=-99
Required: False. Automatically set to 0 if not assigned explicitly or loaded from defaults.
- Type:
float
- system_use_lifetime_output
Lifetime simulation [0/1]
Options: 0=SingleYearRepeated,1=RunEveryYear
Constraints: BOOLEAN
Required: False. Automatically set to 0 if not assigned explicitly or loaded from defaults.
- Type:
float
BatterySystem Group
- class PySAM.Battery.Battery.BatterySystem
- assign(dict) None
Assign attributes from dictionary, overwriting but not removing values.
BatterySystem_vals = { var: val, ...}
- export() dict
Export attributes into dictionary.
- replace(dict) None
Replace attributes from dictionary, unassigning values not present in input
dict
.BatterySystem_vals = { var: val, ...}
- batt_ac_dc_efficiency
Inverter AC to battery DC efficiency
The value of the following variables depends on
batt_ac_dc_efficiency
:LeadAcid_q10_computed
LeadAcid_q20_computed
LeadAcid_qn_computed
batt_Qexp
batt_Qfull_flow
batt_Qnom
batt_computed_bank_capacity
batt_computed_series
batt_computed_strings
batt_current_charge_max
batt_current_discharge_max
batt_mass
batt_power_charge_max_kwac
batt_power_charge_max_kwdc
batt_power_discharge_max_kwac
batt_power_discharge_max_kwdc
batt_surface_area
- Type:
float
- batt_ac_or_dc
Battery interconnection (AC or DC)
Options: 0=DC_Connected,1=AC_Connected
The value of the following variables depends on
batt_ac_or_dc
:LeadAcid_q10_computed
LeadAcid_q20_computed
LeadAcid_qn_computed
batt_Qexp
batt_Qfull_flow
batt_Qnom
batt_computed_bank_capacity
batt_computed_series
batt_computed_strings
batt_current_charge_max
batt_current_discharge_max
batt_mass
batt_power_charge_max_kwac
batt_power_charge_max_kwdc
batt_power_discharge_max_kwac
batt_power_discharge_max_kwdc
batt_surface_area
- Type:
float
- batt_computed_bank_capacity
Battery computed bank capacity [kWh]
INOUT: This variable is both an input and an output to the compute module.
The value of the following variables depends on
batt_computed_bank_capacity
:batt_Qexp
batt_Qfull_flow
batt_Qnom
batt_mass
batt_surface_area
The value of
batt_computed_bank_capacity
depends on the following variables:batt_Qfull
batt_Vnom_default
batt_ac_dc_efficiency
batt_ac_or_dc
batt_chem
batt_current_choice
batt_dc_ac_efficiency
batt_dc_dc_efficiency
- Type:
float
- batt_computed_series
Battery number of cells in series
INOUT: This variable is both an input and an output to the compute module.
The value of
batt_computed_series
depends on the following variables:batt_Qfull
batt_Vnom_default
batt_ac_dc_efficiency
batt_ac_or_dc
batt_chem
batt_current_choice
batt_dc_ac_efficiency
batt_dc_dc_efficiency
- Type:
float
- batt_computed_strings
Battery number of strings of cells
INOUT: This variable is both an input and an output to the compute module.
The value of the following variables depends on
batt_computed_strings
:LeadAcid_q10_computed
LeadAcid_q20_computed
LeadAcid_qn_computed
The value of
batt_computed_strings
depends on the following variables:batt_Qfull
batt_Vnom_default
batt_ac_dc_efficiency
batt_ac_or_dc
batt_chem
batt_current_choice
batt_dc_ac_efficiency
batt_dc_dc_efficiency
- Type:
float
- batt_current_charge_max
Battery maximum charge current [A]
INOUT: This variable is both an input and an output to the compute module.
The value of
batt_current_charge_max
depends on the following variables:batt_Qfull
batt_Vnom_default
batt_ac_dc_efficiency
batt_ac_or_dc
batt_chem
batt_current_choice
batt_dc_ac_efficiency
batt_dc_dc_efficiency
- Type:
float
- batt_current_choice
Limit cells by current or power
The value of the following variables depends on
batt_current_choice
:LeadAcid_q10_computed
LeadAcid_q20_computed
LeadAcid_qn_computed
batt_Qexp
batt_Qfull_flow
batt_Qnom
batt_computed_bank_capacity
batt_computed_series
batt_computed_strings
batt_current_charge_max
batt_current_discharge_max
batt_mass
batt_power_charge_max_kwac
batt_power_charge_max_kwdc
batt_power_discharge_max_kwac
batt_power_discharge_max_kwdc
batt_surface_area
- Type:
float
- batt_current_discharge_max
Battery maximum discharge current [A]
INOUT: This variable is both an input and an output to the compute module.
The value of
batt_current_discharge_max
depends on the following variables:batt_Qfull
batt_Vnom_default
batt_ac_dc_efficiency
batt_ac_or_dc
batt_chem
batt_current_choice
batt_dc_ac_efficiency
batt_dc_dc_efficiency
- Type:
float
- batt_dc_ac_efficiency
Battery DC to AC efficiency
The value of the following variables depends on
batt_dc_ac_efficiency
:LeadAcid_q10_computed
LeadAcid_q20_computed
LeadAcid_qn_computed
batt_Qexp
batt_Qfull_flow
batt_Qnom
batt_computed_bank_capacity
batt_computed_series
batt_computed_strings
batt_current_charge_max
batt_current_discharge_max
batt_mass
batt_power_charge_max_kwac
batt_power_charge_max_kwdc
batt_power_discharge_max_kwac
batt_power_discharge_max_kwdc
batt_surface_area
- Type:
float
- batt_dc_dc_efficiency
System DC to battery DC efficiency
The value of the following variables depends on
batt_dc_dc_efficiency
:LeadAcid_q10_computed
LeadAcid_q20_computed
LeadAcid_qn_computed
batt_Qexp
batt_Qfull_flow
batt_Qnom
batt_computed_bank_capacity
batt_computed_series
batt_computed_strings
batt_current_charge_max
batt_current_discharge_max
batt_mass
batt_power_charge_max_kwac
batt_power_charge_max_kwdc
batt_power_discharge_max_kwac
batt_power_discharge_max_kwdc
batt_surface_area
- Type:
float
- batt_inverter_efficiency_cutoff
Inverter efficiency at which to cut battery charge or discharge off [%]
- Type:
float
- batt_loss_choice
Loss power input option [0/1]
Options: 0=Monthly,1=TimeSeries
Required: False. Automatically set to 0 if not assigned explicitly or loaded from defaults.
- Type:
float
- batt_losses
Battery system losses at each timestep (kW DC for DC connected, AC for AC connected) [kW]
Required: False. Automatically set to 0 if not assigned explicitly or loaded from defaults.
- Type:
sequence
- batt_losses_charging
Battery system losses when charging (kW DC for DC connected, AC for AC connected) [kW]
Required: False. Automatically set to 0 if not assigned explicitly or loaded from defaults.
- Type:
sequence
- batt_losses_discharging
Battery system losses when discharging (kW DC for DC connected, AC for AC connected) [kW]
Required: False. Automatically set to 0 if not assigned explicitly or loaded from defaults.
- Type:
sequence
- batt_losses_idle
Battery system losses when idle (kW DC for DC connected, AC for AC connected) [kW]
Required: False. Automatically set to 0 if not assigned explicitly or loaded from defaults.
- Type:
sequence
- batt_mass
Battery mass [kg]
The value of
batt_mass
depends on the following variables:batt_Qfull
batt_Vnom_default
batt_ac_dc_efficiency
batt_ac_or_dc
batt_chem
batt_computed_bank_capacity
batt_current_choice
batt_dc_ac_efficiency
batt_dc_dc_efficiency
- Type:
float
- batt_meter_position
Position of battery relative to electric meter
Options: 0=BehindTheMeter,1=FrontOfMeter
- Type:
float
- batt_power_charge_max_kwac
Battery maximum charge power (AC) [kWac]
INOUT: This variable is both an input and an output to the compute module.
The value of
batt_power_charge_max_kwac
depends on the following variables:batt_Qfull
batt_Vnom_default
batt_ac_dc_efficiency
batt_ac_or_dc
batt_chem
batt_current_choice
batt_dc_ac_efficiency
batt_dc_dc_efficiency
- Type:
float
- batt_power_charge_max_kwdc
Battery maximum charge power (DC) [kWdc]
INOUT: This variable is both an input and an output to the compute module.
The value of
batt_power_charge_max_kwdc
depends on the following variables:batt_Qfull
batt_Vnom_default
batt_ac_dc_efficiency
batt_ac_or_dc
batt_chem
batt_current_choice
batt_dc_ac_efficiency
batt_dc_dc_efficiency
- Type:
float
- batt_power_discharge_max_kwac
Battery maximum discharge power (AC) [kWac]
INOUT: This variable is both an input and an output to the compute module.
The value of
batt_power_discharge_max_kwac
depends on the following variables:batt_Qfull
batt_Vnom_default
batt_ac_dc_efficiency
batt_ac_or_dc
batt_chem
batt_current_choice
batt_dc_ac_efficiency
batt_dc_dc_efficiency
- Type:
float
- batt_power_discharge_max_kwdc
Battery maximum discharge power (DC) [kWdc]
INOUT: This variable is both an input and an output to the compute module.
The value of
batt_power_discharge_max_kwdc
depends on the following variables:batt_Qfull
batt_Vnom_default
batt_ac_dc_efficiency
batt_ac_or_dc
batt_chem
batt_current_choice
batt_dc_ac_efficiency
batt_dc_dc_efficiency
- Type:
float
- batt_replacement_capacity
Capacity degradation at which to replace battery [%]
- Type:
float
- batt_replacement_option
Enable battery replacement? [0=none,1=capacity based,2=user schedule]
Constraints: INTEGER,MIN=0,MAX=2
Required: False. Automatically set to 0 if not assigned explicitly or loaded from defaults.
- Type:
float
- batt_replacement_schedule_percent
Percentage of battery capacity to replace in each year [%]
Options: length <= analysis_period
Required: Required if batt_replacement_option=2
- Type:
sequence
- batt_surface_area
Battery surface area [m^2]
The value of
batt_surface_area
depends on the following variables:batt_Qfull
batt_Vnom_default
batt_ac_dc_efficiency
batt_ac_or_dc
batt_chem
batt_computed_bank_capacity
batt_current_choice
batt_dc_ac_efficiency
batt_dc_dc_efficiency
- Type:
float
- en_batt
Enable battery storage model [0/1]
Required: False. Automatically set to 0 if not assigned explicitly or loaded from defaults.
- Type:
float
- en_standalone_batt
Enable standalone battery storage model [0/1]
Required: False. Automatically set to 0 if not assigned explicitly or loaded from defaults.
- Type:
float
- en_wave_batt
Enable wave battery storage model [0/1]
Required: False. Automatically set to 0 if not assigned explicitly or loaded from defaults.
- Type:
float
- om_replacement_cost1
Cost to replace battery per kWh [$/kWh]
- Type:
sequence
SystemOutput Group
- class PySAM.Battery.Battery.SystemOutput
- assign(dict) None
Assign attributes from dictionary, overwriting but not removing values.
SystemOutput_vals = { var: val, ...}
- export() dict
Export attributes into dictionary.
- replace(dict) None
Replace attributes from dictionary, unassigning values not present in input
dict
.SystemOutput_vals = { var: val, ...}
- annual_energy
Annual Energy [kWh]
INOUT: This variable is both an input and an output to the compute module.
Required: False. Automatically set to 0 if not assigned explicitly or loaded from defaults.
- Type:
float
- capacity_factor
Capacity factor [%]
INOUT: This variable is both an input and an output to the compute module.
- Type:
float
- energy_hourly_kW
Power output of array [kW]
Info: Lifetime system generation
INOUT: This variable is both an input and an output to the compute module.
Required: Required if en_wave_batt=1
- Type:
sequence
- gen
System power generated [kW]
INOUT: This variable is both an input and an output to the compute module.
- Type:
sequence
Load Group
- class PySAM.Battery.Battery.Load
- assign(dict) None
Assign attributes from dictionary, overwriting but not removing values.
Load_vals = { var: val, ...}
- export() dict
Export attributes into dictionary.
- replace(dict) None
Replace attributes from dictionary, unassigning values not present in input
dict
.Load_vals = { var: val, ...}
- crit_load
Critical electricity load (year 1) [kW]
- Type:
sequence
- crit_load_escalation
Annual critical load escalation [%/year]
Required: False. Automatically set to 0 if not assigned explicitly or loaded from defaults.
- Type:
sequence
- grid_outage
Grid outage in this time step [0/1]
Options: 0=GridAvailable,1=GridUnavailable,Length=load
- Type:
sequence
- load
Electricity load (year 1) [kW]
The value of the following variables depends on
load
:batt_room_temperature_celsius
- Type:
sequence
- load_escalation
Annual load escalation [%/year]
Required: False. Automatically set to 0 if not assigned explicitly or loaded from defaults.
The value of the following variables depends on
load_escalation
:batt_load_ac_forecast_escalation
- Type:
sequence
- run_resiliency_calcs
Enable resilence calculations for every timestep [0/1]
Options: 0=DisableCalcs,1=EnableCalcs
Required: False. Automatically set to 0 if not assigned explicitly or loaded from defaults.
- Type:
float
BatteryCell Group
- class PySAM.Battery.Battery.BatteryCell
- assign(dict) None
Assign attributes from dictionary, overwriting but not removing values.
BatteryCell_vals = { var: val, ...}
- export() dict
Export attributes into dictionary.
- replace(dict) None
Replace attributes from dictionary, unassigning values not present in input
dict
.BatteryCell_vals = { var: val, ...}
- LeadAcid_q10_computed
Capacity at 10-hour discharge rate [Ah]
The value of
LeadAcid_q10_computed
depends on the following variables:batt_Qfull
batt_Vnom_default
batt_ac_dc_efficiency
batt_ac_or_dc
batt_chem
batt_computed_strings
batt_current_choice
batt_dc_ac_efficiency
batt_dc_dc_efficiency
- Type:
float
- LeadAcid_q20_computed
Capacity at 20-hour discharge rate [Ah]
The value of
LeadAcid_q20_computed
depends on the following variables:batt_Qfull
batt_Vnom_default
batt_ac_dc_efficiency
batt_ac_or_dc
batt_chem
batt_computed_strings
batt_current_choice
batt_dc_ac_efficiency
batt_dc_dc_efficiency
- Type:
float
- LeadAcid_qn_computed
Capacity at discharge rate for n-hour rate [Ah]
The value of
LeadAcid_qn_computed
depends on the following variables:batt_Qfull
batt_Vnom_default
batt_ac_dc_efficiency
batt_ac_or_dc
batt_chem
batt_computed_strings
batt_current_choice
batt_dc_ac_efficiency
batt_dc_dc_efficiency
- Type:
float
- LeadAcid_tn
Time to discharge [h]
- Type:
float
- batt_C_rate
Rate at which voltage vs. capacity curve input
- Type:
float
- batt_Cp
Battery specific heat capacity [J/KgK]
- Type:
float
- batt_Qexp
Cell capacity at end of exponential zone [Ah]
The value of
batt_Qexp
depends on the following variables:batt_Qfull
batt_Vnom_default
batt_ac_dc_efficiency
batt_ac_or_dc
batt_chem
batt_computed_bank_capacity
batt_current_choice
batt_dc_ac_efficiency
batt_dc_dc_efficiency
- Type:
float
- batt_Qfull
Fully charged cell capacity [Ah]
The value of the following variables depends on
batt_Qfull
:LeadAcid_q10_computed
LeadAcid_q20_computed
LeadAcid_qn_computed
batt_Qexp
batt_Qfull_flow
batt_Qnom
batt_computed_bank_capacity
batt_computed_series
batt_computed_strings
batt_current_charge_max
batt_current_discharge_max
batt_mass
batt_power_charge_max_kwac
batt_power_charge_max_kwdc
batt_power_discharge_max_kwac
batt_power_discharge_max_kwdc
batt_surface_area
- Type:
float
- batt_Qfull_flow
Fully charged flow battery capacity [Ah]
The value of
batt_Qfull_flow
depends on the following variables:batt_Qfull
batt_Vnom_default
batt_ac_dc_efficiency
batt_ac_or_dc
batt_chem
batt_computed_bank_capacity
batt_current_choice
batt_dc_ac_efficiency
batt_dc_dc_efficiency
- Type:
float
- batt_Qnom
Cell capacity at end of nominal zone [Ah]
The value of
batt_Qnom
depends on the following variables:batt_Qfull
batt_Vnom_default
batt_ac_dc_efficiency
batt_ac_or_dc
batt_chem
batt_computed_bank_capacity
batt_current_choice
batt_dc_ac_efficiency
batt_dc_dc_efficiency
- Type:
float
- batt_Vcut
Cutoff voltage for battery rated capacity [V]
Required: False. Automatically set to 0 if not assigned explicitly or loaded from defaults.
- Type:
float
- batt_Vexp
Cell voltage at end of exponential zone [V]
- Type:
float
- batt_Vfull
Fully charged cell voltage [V]
- Type:
float
- batt_Vnom
Cell voltage at end of nominal zone [V]
- Type:
float
- batt_Vnom_default
Default nominal cell voltage [V]
The value of the following variables depends on
batt_Vnom_default
:LeadAcid_q10_computed
LeadAcid_q20_computed
LeadAcid_qn_computed
batt_Qexp
batt_Qfull_flow
batt_Qnom
batt_computed_bank_capacity
batt_computed_series
batt_computed_strings
batt_current_charge_max
batt_current_discharge_max
batt_mass
batt_power_charge_max_kwac
batt_power_charge_max_kwdc
batt_power_discharge_max_kwac
batt_power_discharge_max_kwdc
batt_surface_area
- Type:
float
- batt_calendar_a
Calendar life model coefficient [1/sqrt(day)]
Required: Required if en_batt=1&batt_life_model=0&batt_calendar_choice=1
- Type:
float
- batt_calendar_b
Calendar life model coefficient [K]
Required: Required if en_batt=1&batt_life_model=0&batt_calendar_choice=1
- Type:
float
- batt_calendar_c
Calendar life model coefficient [K]
Required: Required if en_batt=1&batt_life_model=0&batt_calendar_choice=1
- Type:
float
- batt_calendar_choice
Calendar life degradation input option [0/1/2]
Options: 0=NoCalendarDegradation,1=LithiomIonModel,2=InputLossTable
Required: Required if en_batt=1&batt_life_model=0
- Type:
float
- batt_calendar_lifetime_matrix
Days vs capacity
Required: Required if en_batt=1&batt_life_model=0&batt_calendar_choice=2
- Type:
sequence[sequence]
- batt_calendar_q0
Calendar life model initial capacity cofficient
Required: Required if en_batt=1&batt_life_model=0&batt_calendar_choice=1
- Type:
float
- batt_chem
Battery chemistry
Options: 0=LeadAcid,1=LiIon
The value of the following variables depends on
batt_chem
:LeadAcid_q10_computed
LeadAcid_q20_computed
LeadAcid_qn_computed
batt_Qexp
batt_Qfull_flow
batt_Qnom
batt_computed_bank_capacity
batt_computed_series
batt_computed_strings
batt_current_charge_max
batt_current_discharge_max
batt_mass
batt_power_charge_max_kwac
batt_power_charge_max_kwdc
batt_power_discharge_max_kwac
batt_power_discharge_max_kwdc
batt_surface_area
- Type:
float
- batt_h_to_ambient
Heat transfer between battery and environment [W/m2K]
- Type:
float
- batt_initial_SOC
Initial state-of-charge [%]
- Type:
float
- batt_life_model
Battery life model specifier [0/1/2]
Options: 0=calendar/cycle,1=NMC,2=LMO/LTO
Required: False. Automatically set to 0 if not assigned explicitly or loaded from defaults.
- Type:
float
- batt_lifetime_matrix
Cycles vs capacity at different depths-of-discharge
Required: Required if en_batt=1&batt_life_model=0
- Type:
sequence[sequence]
- batt_maximum_SOC
Maximum allowed state-of-charge [%]
- Type:
float
- batt_minimum_SOC
Minimum allowed state-of-charge during nominal operation [%]
- Type:
float
- batt_minimum_modetime
Minimum time at charge state [min]
- Type:
float
- batt_minimum_outage_SOC
Minimum allowed state-of-charge during an outage [%]
- Type:
float
- batt_resistance
Internal resistance [Ohm]
- Type:
float
- batt_room_temperature_celsius
Temperature of storage room [C]
Options: length=1 for fixed, # of weatherfile records otherwise
The value of
batt_room_temperature_celsius
depends on the following variables:grid_curtailment
- Type:
sequence
- batt_voltage_choice
Battery voltage input option [0/1]
Options: 0=UseVoltageModel,1=InputVoltageTable
Required: False. Automatically set to 0 if not assigned explicitly or loaded from defaults.
- Type:
float
- batt_voltage_matrix
Battery voltage vs. depth-of-discharge
- Type:
sequence[sequence]
- cap_vs_temp
Effective capacity as function of temperature [C,%]
- Type:
sequence[sequence]
Inverter Group
- class PySAM.Battery.Battery.Inverter
- assign(dict) None
Assign attributes from dictionary, overwriting but not removing values.
Inverter_vals = { var: val, ...}
- export() dict
Export attributes into dictionary.
- replace(dict) None
Replace attributes from dictionary, unassigning values not present in input
dict
.Inverter_vals = { var: val, ...}
- inv_cec_cg_eff_cec
Inverter Coefficient Generator CEC Efficiency [%]
The value of the following variables depends on
inv_cec_cg_eff_cec
:LeadAcid_q10_computed
LeadAcid_q20_computed
LeadAcid_qn_computed
batt_Qexp
batt_Qfull_flow
batt_Qnom
batt_computed_bank_capacity
batt_computed_series
batt_computed_strings
batt_current_charge_max
batt_current_discharge_max
batt_mass
batt_power_charge_max_kwac
batt_power_charge_max_kwdc
batt_power_discharge_max_kwac
batt_power_discharge_max_kwdc
batt_surface_area
- Type:
float
- inv_cec_cg_paco
Inverter Coefficient Generator Max AC Power [Wac]
- Type:
float
- inv_ds_eff
Inverter Datasheet Efficiency [%]
The value of the following variables depends on
inv_ds_eff
:LeadAcid_q10_computed
LeadAcid_q20_computed
LeadAcid_qn_computed
batt_Qexp
batt_Qfull_flow
batt_Qnom
batt_computed_bank_capacity
batt_computed_series
batt_computed_strings
batt_current_charge_max
batt_current_discharge_max
batt_mass
batt_power_charge_max_kwac
batt_power_charge_max_kwdc
batt_power_discharge_max_kwac
batt_power_discharge_max_kwdc
batt_surface_area
- Type:
float
- inv_ds_paco
Inverter Datasheet Maximum AC Power [Wac]
- Type:
float
- inv_pd_eff
Inverter Partload Efficiency [%]
The value of the following variables depends on
inv_pd_eff
:LeadAcid_q10_computed
LeadAcid_q20_computed
LeadAcid_qn_computed
batt_Qexp
batt_Qfull_flow
batt_Qnom
batt_computed_bank_capacity
batt_computed_series
batt_computed_strings
batt_current_charge_max
batt_current_discharge_max
batt_mass
batt_power_charge_max_kwac
batt_power_charge_max_kwdc
batt_power_discharge_max_kwac
batt_power_discharge_max_kwdc
batt_surface_area
- Type:
float
- inv_pd_paco
Inverter Partload Maximum AC Power [Wac]
- Type:
float
- inv_snl_eff_cec
Inverter Sandia CEC Efficiency [%]
The value of the following variables depends on
inv_snl_eff_cec
:LeadAcid_q10_computed
LeadAcid_q20_computed
LeadAcid_qn_computed
batt_Qexp
batt_Qfull_flow
batt_Qnom
batt_computed_bank_capacity
batt_computed_series
batt_computed_strings
batt_current_charge_max
batt_current_discharge_max
batt_mass
batt_power_charge_max_kwac
batt_power_charge_max_kwdc
batt_power_discharge_max_kwac
batt_power_discharge_max_kwdc
batt_surface_area
- Type:
float
- inv_snl_paco
Inverter Sandia Maximum AC Power [Wac]
- Type:
float
- inverter_count
Number of inverters
- Type:
float
- inverter_model
Inverter model specifier
Options: 0=cec,1=datasheet,2=partload,3=coefficientgenerator,4=generic
Constraints: INTEGER,MIN=0,MAX=4
Required: False. Automatically set to 4 if not assigned explicitly or loaded from defaults.
The value of the following variables depends on
inverter_model
:LeadAcid_q10_computed
LeadAcid_q20_computed
LeadAcid_qn_computed
batt_Qexp
batt_Qfull_flow
batt_Qnom
batt_computed_bank_capacity
batt_computed_series
batt_computed_strings
batt_current_charge_max
batt_current_discharge_max
batt_mass
batt_power_charge_max_kwac
batt_power_charge_max_kwdc
batt_power_discharge_max_kwac
batt_power_discharge_max_kwdc
batt_surface_area
- Type:
float
Losses Group
- class PySAM.Battery.Battery.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, ...}
- dcoptimizer_loss
DC optimizer loss
- Type:
float
BatteryDispatch Group
- class PySAM.Battery.Battery.BatteryDispatch
- assign(dict) None
Assign attributes from dictionary, overwriting but not removing values.
BatteryDispatch_vals = { var: val, ...}
- export() dict
Export attributes into dictionary.
- replace(dict) None
Replace attributes from dictionary, unassigning values not present in input
dict
.BatteryDispatch_vals = { var: val, ...}
- batt_custom_dispatch
Custom battery power for every time step [kW]
Info: kWAC if AC-connected, else kWDC
Required: Required if en_batt=1&en_standalone_batt=0&batt_dispatch_choice=2
- Type:
sequence
- batt_cycle_cost
Input battery cycle degradaton penalty per year [$/cycle-kWh]
Info: length 1 or analysis_period, length 1 will be extended using inflation
Required: Required if batt_cycle_cost_choice=1
- Type:
sequence
- batt_cycle_cost_choice
Use SAM cost model for degradaton penalty or input custom via batt_cycle_cost [0/1]
Options: 0=UseCostModel,1=InputCost
Required: False. Automatically set to 0 if not assigned explicitly or loaded from defaults.
- Type:
float
- batt_dispatch_auto_btm_can_discharge_to_grid
Behind the meter battery can discharge to grid? [0/1]
- Type:
float
- batt_dispatch_auto_can_charge
System charging allowed for automated dispatch? [0/1]
- Type:
float
- batt_dispatch_auto_can_clipcharge
Battery can charge from clipped power? [0/1]
- Type:
float
- batt_dispatch_auto_can_fuelcellcharge
Charging from fuel cell allowed for automated dispatch? [0/1]
- Type:
float
- batt_dispatch_auto_can_gridcharge
Grid charging allowed for automated dispatch? [0/1]
- Type:
float
- batt_dispatch_charge_only_system_exceeds_load
Battery can charge from system only when system output exceeds load [0/1]
Required: Required if en_batt=1&en_standalone_batt=0&batt_meter_position=0
- Type:
float
- batt_dispatch_choice
Battery dispatch algorithm [0/1/2/3/4/5]
Options: If behind the meter: 0=PeakShaving,1=InputGridTarget,2=InputBatteryPower,3=ManualDispatch,4=RetailRateDispatch,5=SelfConsumption if front of meter: 0=AutomatedEconomic,1=PV_Smoothing,2=InputBatteryPower,3=ManualDispatch
Required: Required if en_batt=1
- Type:
float
- batt_dispatch_discharge_only_load_exceeds_system
Battery can discharge battery only when load exceeds system output [0/1]
Required: Required if en_batt=1&en_standalone_batt=0&batt_meter_position=0
- Type:
float
- batt_dispatch_load_forecast_choice
Load forecast choice for automatic dispatch [0/1/2]
Options: 0=LookAhead,1=LookBehind,2=InputForecast
Required: False. Automatically set to 0 if not assigned explicitly or loaded from defaults.
The value of the following variables depends on
batt_dispatch_load_forecast_choice
:batt_load_ac_forecast
batt_load_ac_forecast_escalation
- Type:
float
- batt_dispatch_pvs_ac_lb
AC lower bound [fraction of nameplate]
Required: Required if en_batt=1&en_standalone_batt=0&batt_meter_position=1&batt_dispatch_choice=1
- Type:
float
- batt_dispatch_pvs_ac_lb_enable
Enable AC lower bound [0/1]
Required: Required if en_batt=1&en_standalone_batt=0&batt_meter_position=1&batt_dispatch_choice=1
- Type:
float
- batt_dispatch_pvs_ac_ub
AC upper bound [fraction of nameplate]
Required: Required if en_batt=1&en_standalone_batt=0&batt_meter_position=1&batt_dispatch_choice=1
- Type:
float
- batt_dispatch_pvs_ac_ub_enable
Enable AC upper bound [0/1]
Required: Required if en_batt=1&en_standalone_batt=0&batt_meter_position=1&batt_dispatch_choice=1
- Type:
float
- batt_dispatch_pvs_curtail_as_control
Correct up-ramp violations [0/1]
Required: Required if en_batt=1&en_standalone_batt=0&batt_meter_position=1&batt_dispatch_choice=1
- Type:
float
- batt_dispatch_pvs_curtail_if_violation
Curtail violations [0/1]
Required: Required if en_batt=1&en_standalone_batt=0&batt_meter_position=1&batt_dispatch_choice=1
- Type:
float
- batt_dispatch_pvs_forecast_shift_periods
Forecasting window [periods of ramp intervals]
Required: Required if en_batt=1&en_standalone_batt=0&batt_meter_position=1&batt_dispatch_choice=1
- Type:
float
- batt_dispatch_pvs_kf
Forecast accumulation error multiplier (kf)
Required: Required if en_batt=1&en_standalone_batt=0&batt_meter_position=1&batt_dispatch_choice=1
- Type:
float
- batt_dispatch_pvs_ki
Return to rest SOC multiplier (ki)
Required: Required if en_batt=1&en_standalone_batt=0&batt_meter_position=1&batt_dispatch_choice=1
- Type:
float
- batt_dispatch_pvs_kp
Track PV power multiplier (kp)
Required: Required if en_batt=1&en_standalone_batt=0&batt_meter_position=1&batt_dispatch_choice=1
- Type:
float
- batt_dispatch_pvs_max_ramp
Maximum ramp rate [% of nameplate per ramp interval]
Required: Required if en_batt=1&en_standalone_batt=0&batt_meter_position=1&batt_dispatch_choice=1
- Type:
float
- batt_dispatch_pvs_nameplate_ac
Nameplate for pv smoothing [kWac]
Required: Required if en_batt=1&en_standalone_batt=0&batt_meter_position=1&batt_dispatch_choice=1
- Type:
float
- batt_dispatch_pvs_short_forecast_enable
Enable short term power forecast [0/1]
Required: Required if en_batt=1&en_standalone_batt=0&batt_meter_position=1&batt_dispatch_choice=1
- Type:
float
- batt_dispatch_pvs_soc_rest
Battery resting SOC [%]
Required: Required if en_batt=1&en_standalone_batt=0&batt_meter_position=1&batt_dispatch_choice=1
- Type:
float
- batt_dispatch_pvs_timestep_multiplier
Ramp timestep multiplier
Required: Required if en_batt=1&en_standalone_batt=0&batt_meter_position=1&batt_dispatch_choice=1
- Type:
float
- batt_dispatch_update_frequency_hours
Frequency to update the look-ahead dispatch [hours]
- Type:
float
- batt_dispatch_wf_forecast_choice
Weather forecast choice for automatic dispatch [0/1/2]
Options: 0=LookAhead,1=LookBehind,2=InputForecast
Required: False. Automatically set to 0 if not assigned explicitly or loaded from defaults.
- Type:
float
- batt_load_ac_forecast
Load ac power forecast [kW]
Info: Length either 8760 or 8760 * steps per hour
The value of
batt_load_ac_forecast
depends on the following variables:batt_dispatch_load_forecast_choice
- Type:
sequence
- batt_load_ac_forecast_escalation
Annual load escalation for ac power forecast [kW]
Options: length <= analysis_period
The value of
batt_load_ac_forecast_escalation
depends on the following variables:batt_dispatch_load_forecast_choice
load_escalation
- Type:
sequence
- batt_look_ahead_hours
Hours to look ahead in automated dispatch [hours]
Constraints: MIN=1
- Type:
float
- batt_pv_ac_forecast
PV ac power forecast [kW]
Info: Length either 8760 * steps per hour (values repeat each year) or 8760 * steps per hour * analysis period
- Type:
sequence
- batt_pv_clipping_forecast
PV clipping forecast [kW]
Info: Length either 8760 * steps per hour (values repeat each year) or 8760 * steps per hour * analysis period
- Type:
sequence
- batt_target_choice
Target power input option [0/1]
Options: 0=InputMonthlyTarget,1=InputFullTimeSeries
Required: Required if en_batt=1&en_standalone_batt=0&batt_meter_position=0&batt_dispatch_choice=1
- Type:
float
- batt_target_power
Grid target power for every time step [kW]
Required: Required if en_batt=1&batt_meter_position=0&batt_dispatch_choice=1
- Type:
sequence
- batt_target_power_monthly
Grid target power on monthly basis [kW]
Required: Required if en_batt=1&batt_meter_position=0&batt_dispatch_choice=1
- Type:
sequence
- dispatch_manual_btm_discharge_to_grid
Periods 1-6 behind the meter discharging to grid allowed?
Required: Required if en_batt=1&batt_dispatch_choice=3&batt_meter_position=0
- Type:
sequence
- dispatch_manual_charge
Periods 1-6 charging from system allowed?
Required: Required if en_batt=1&en_standalone_batt=0&batt_dispatch_choice=3
- Type:
sequence
- dispatch_manual_discharge
Periods 1-6 discharging allowed?
Required: Required if en_batt=1&batt_dispatch_choice=3
The value of the following variables depends on
dispatch_manual_discharge
:dispatch_manual_percent_discharge
- Type:
sequence
- dispatch_manual_fuelcellcharge
Periods 1-6 charging from fuel cell allowed?
- Type:
sequence
- dispatch_manual_gridcharge
Periods 1-6 grid charging allowed?
Required: Required if en_batt=1&batt_dispatch_choice=3
The value of the following variables depends on
dispatch_manual_gridcharge
:dispatch_manual_percent_gridcharge
- Type:
sequence
- dispatch_manual_percent_discharge
Periods 1-6 discharge percent [%]
Required: Required if en_batt=1&batt_dispatch_choice=3
The value of
dispatch_manual_percent_discharge
depends on the following variables:dispatch_manual_discharge
- Type:
sequence
- dispatch_manual_percent_gridcharge
Periods 1-6 gridcharge percent [%]
Required: Required if en_batt=1&batt_dispatch_choice=3
The value of
dispatch_manual_percent_gridcharge
depends on the following variables:dispatch_manual_gridcharge
- Type:
sequence
- dispatch_manual_sched
Battery dispatch schedule for weekday
Required: Required if en_batt=1&batt_dispatch_choice=3
- Type:
sequence[sequence]
- dispatch_manual_sched_weekend
Battery dispatch schedule for weekend
Required: Required if en_batt=1&batt_dispatch_choice=3
- Type:
sequence[sequence]
- dispatch_manual_system_charge_first
System charges battery before meeting load [0/1]
Options: 0=LoadFirst,1=ChargeFirst
Required: Required if en_batt=1&en_standalone_batt=0&batt_meter_position=0&batt_dispatch_choice=3&batt_dispatch_charge_only_system_exceeds_load=0
- Type:
float
SystemCosts Group
- class PySAM.Battery.Battery.SystemCosts
- assign(dict) None
Assign attributes from dictionary, overwriting but not removing values.
SystemCosts_vals = { var: val, ...}
- export() dict
Export attributes into dictionary.
- replace(dict) None
Replace attributes from dictionary, unassigning values not present in input
dict
.SystemCosts_vals = { var: val, ...}
- om_batt_replacement_cost
Replacement cost 1 [$/kWh]
Required: False. Automatically set to 0.0 if not assigned explicitly or loaded from defaults.
- Type:
sequence
- om_batt_variable_cost
Battery production-based System Costs amount [$/MWh]
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
- om_replacement_cost_escal
Replacement cost escalation [%/year]
Required: False. Automatically set to 0.0 if not assigned explicitly or loaded from defaults.
- Type:
float
FuelCell Group
- class PySAM.Battery.Battery.FuelCell
- assign(dict) None
Assign attributes from dictionary, overwriting but not removing values.
FuelCell_vals = { var: val, ...}
- export() dict
Export attributes into dictionary.
- replace(dict) None
Replace attributes from dictionary, unassigning values not present in input
dict
.FuelCell_vals = { var: val, ...}
- fuelcell_power
Electricity from fuel cell AC [kW]
- Type:
sequence
PriceSignal Group
- class PySAM.Battery.Battery.PriceSignal
- assign(dict) None
Assign attributes from dictionary, overwriting but not removing values.
PriceSignal_vals = { var: val, ...}
- export() dict
Export attributes into dictionary.
- replace(dict) None
Replace attributes from dictionary, unassigning values not present in input
dict
.PriceSignal_vals = { var: val, ...}
- dispatch_factors_ts
Dispatch payment factor time step
Required: Required if forecast_price_signal_model=0&en_batt=1&batt_meter_position=1&ppa_multiplier_model=1
- Type:
sequence
- dispatch_sched_weekday
Diurnal weekday TOD periods [1..9]
Info: 12 x 24 matrix
Required: Required if en_batt=1&batt_meter_position=1&forecast_price_signal_model=0&ppa_multiplier_model=0
- Type:
sequence[sequence]
- dispatch_sched_weekend
Diurnal weekend TOD periods [1..9]
Info: 12 x 24 matrix
Required: Required if en_batt=1&batt_meter_position=1&forecast_price_signal_model=0&ppa_multiplier_model=0
- Type:
sequence[sequence]
- dispatch_tod_factors
TOD factors for periods 1-9
Required: Required if en_batt=1&batt_meter_position=1&forecast_price_signal_model=0&ppa_multiplier_model=0
- Type:
sequence
- forecast_price_signal_model
Forecast price signal model selected [0/1]
Options: 0=PPA based,1=Merchant Plant
Constraints: INTEGER,MIN=0,MAX=1
Required: False. Automatically set to 0 if not assigned explicitly or loaded from defaults.
- Type:
float
- mp_ancserv1_revenue
Ancillary services 1 revenue input [ [MW, $/MW]]
Required: Required if en_batt=1&batt_meter_position=1&forecast_price_signal_model=1
- Type:
sequence[sequence]
- mp_ancserv2_revenue
Ancillary services 2 revenue input [ [MW, $/MW]]
Required: Required if en_batt=1&batt_meter_position=1&forecast_price_signal_model=1
- Type:
sequence[sequence]
- mp_ancserv3_revenue
Ancillary services 3 revenue input [ [MW, $/MW]]
Required: Required if en_batt=1&batt_meter_position=1&forecast_price_signal_model=1
- Type:
sequence[sequence]
- mp_ancserv4_revenue
Ancillary services 4 revenue input [ [MW, $/MW]]
Required: Required if en_batt=1&batt_meter_position=1&forecast_price_signal_model=1
- Type:
sequence[sequence]
- mp_enable_ancserv1
Enable ancillary services 1 revenue [0/1]
Constraints: INTEGER,MIN=0,MAX=1
Required: Required if forecast_price_signal_model=1
- Type:
float
- mp_enable_ancserv2
Enable ancillary services 2 revenue [0/1]
Constraints: INTEGER,MIN=0,MAX=1
Required: Required if forecast_price_signal_model=1
- Type:
float
- mp_enable_ancserv3
Enable ancillary services 3 revenue [0/1]
Constraints: INTEGER,MIN=0,MAX=1
Required: Required if forecast_price_signal_model=1
- Type:
float
- mp_enable_ancserv4
Enable ancillary services 4 revenue [0/1]
Constraints: INTEGER,MIN=0,MAX=1
Required: Required if forecast_price_signal_model=1
- Type:
float
- mp_enable_energy_market_revenue
Enable energy market revenue [0/1]
Options: 0=false,1=true
Constraints: INTEGER,MIN=0,MAX=1
Required: Required if en_batt=1&batt_meter_position=1&forecast_price_signal_model=1
- Type:
float
- mp_energy_market_revenue
Energy market revenue input [ [MW, $/MW]]
Required: Required if en_batt=1&batt_meter_position=1&forecast_price_signal_model=1
- Type:
sequence[sequence]
- ppa_escalation
PPA escalation rate [%/year]
Required: Required if forecast_price_signal_model=0&en_batt=1&batt_meter_position=1
- Type:
float
- ppa_multiplier_model
PPA multiplier model [0/1]
Options: 0=diurnal,1=timestep
Constraints: INTEGER,MIN=0
Required: Required if forecast_price_signal_model=0&en_batt=1&batt_meter_position=1
- Type:
float
- ppa_price_input
PPA Price Input [$/kWh]
Required: Required if forecast_price_signal_model=0&en_batt=1&batt_meter_position=1
- Type:
sequence
Revenue Group
- class PySAM.Battery.Battery.Revenue
- assign(dict) None
Assign attributes from dictionary, overwriting but not removing values.
Revenue_vals = { var: val, ...}
- export() dict
Export attributes into dictionary.
- replace(dict) None
Replace attributes from dictionary, unassigning values not present in input
dict
.Revenue_vals = { var: val, ...}
- mp_ancserv1_revenue_single
Ancillary services 1 revenue input
Info: Lifetime x 1[Price($/MWh)]
Required: Required if forecast_price_signal_model=1&mp_enable_ancserv1_percent_gen=1
- Type:
sequence[sequence]
- mp_ancserv2_revenue_single
Ancillary services 2 revenue input
Info: Lifetime x 1[Price($/MWh)]
Required: Required if forecast_price_signal_model=1&mp_enable_ancserv2_percent_gen=1
- Type:
sequence[sequence]
- mp_ancserv3_revenue_single
Ancillary services 3 revenue input
Info: Lifetime x 1[Price($/MWh)]
Required: Required if forecast_price_signal_model=1&mp_enable_ancserv3_percent_gen=1
- Type:
sequence[sequence]
- mp_ancserv4_revenue_single
Ancillary services 4 revenue input
Info: Lifetime x 1[Price($/MWh)]
Required: Required if forecast_price_signal_model=1&mp_enable_ancserv4_percent_gen=1
- Type:
sequence[sequence]
- mp_enable_ancserv1_percent_gen
Enable percent demand cleared capacity option for ancillary service 1 [0/1]
Constraints: INTEGER,MIN=0,MAX=1
Required: Required if forecast_price_signal_model=1
- Type:
float
- mp_enable_ancserv2_percent_gen
Enable percent demand cleared capacity option for ancillary service 2 [0/1]
Constraints: INTEGER,MIN=0,MAX=1
Required: Required if forecast_price_signal_model=1
- Type:
float
- mp_enable_ancserv3_percent_gen
Enable percent demand cleared capacity option for ancillary service 3 [0/1]
Constraints: INTEGER,MIN=0,MAX=1
Required: Required if forecast_price_signal_model=1
- Type:
float
- mp_enable_ancserv4_percent_gen
Enable percent demand cleared capacity option for ancillary service 4 [0/1]
Constraints: INTEGER,MIN=0,MAX=1
Required: Required if forecast_price_signal_model=1
- Type:
float
- mp_enable_market_percent_gen
Enable percent demand cleared capacity option for market revenue [0/1]
Constraints: INTEGER,MIN=0,MAX=1
Required: Required if forecast_price_signal_model=1
- Type:
float
- mp_energy_market_revenue_single
Energy market revenue input
Info: Lifetime x 1 [Price($/MWh)]
Required: Required if forecast_price_signal_model=1&mp_enable_market_percent_gen=1
- Type:
sequence[sequence]
ElectricityRates Group
- class PySAM.Battery.Battery.ElectricityRates
- assign(dict) None
Assign attributes from dictionary, overwriting but not removing values.
ElectricityRates_vals = { var: val, ...}
- export() dict
Export attributes into dictionary.
- replace(dict) None
Replace attributes from dictionary, unassigning values not present in input
dict
.ElectricityRates_vals = { var: val, ...}
- en_electricity_rates
Optionally enable/disable electricity_rate [years]
Constraints: INTEGER,MIN=0,MAX=1
- Type:
float
- rate_escalation
Annual electricity rate escalation [%/year]
Required: False. Automatically set to 0 if not assigned explicitly or loaded from defaults.
- Type:
sequence
- ur_annual_min_charge
Annual minimum charge [$]
Required: False. Automatically set to 0.0 if not assigned explicitly or loaded from defaults.
- Type:
float
- ur_billing_demand_lookback_percentages
Billing demand lookback percentages by month and consider actual peak demand [%]
Info: 12x2
Required: Required if ur_enable_billing_demand=1
- Type:
sequence[sequence]
- ur_billing_demand_lookback_period
Billing demand lookback period [mn]
Constraints: INTEGER,MIN=0,MAX=12
Required: Required if ur_enable_billing_demand=1
- Type:
float
- ur_billing_demand_minimum
Minimum billing demand [kW]
Required: Required if ur_enable_billing_demand=1
- Type:
float
- ur_dc_billing_demand_periods
Billing demand applicability to a given demand charge time of use period
Required: Required if ur_enable_billing_demand=1
- Type:
sequence[sequence]
- ur_dc_enable
Enable demand charge [0/1]
Options: 0=disable,1=enable
Constraints: BOOLEAN
Required: False. Automatically set to 0 if not assigned explicitly or loaded from defaults.
- Type:
float
- ur_dc_flat_mat
Demand rates (flat) table [col 0=month, col 1=tier no, col 2=tier peak (kW), col 3=charge ($/kW)]
Info: nx4
Required: Required if ur_dc_enable=1
- Type:
sequence[sequence]
- ur_dc_sched_weekday
Demand charge weekday schedule [Periods defined in ur_dc_tou_mat]
Info: 12x24
- Type:
sequence[sequence]
- ur_dc_sched_weekend
Demand charge weekend schedule [Periods defined in ur_dc_tou_mat]
Info: 12x24
- Type:
sequence[sequence]
- ur_dc_tou_mat
Demand rates (TOU) table [col 0=period no, col 1=tier no, col 2=tier peak (kW), col 3=charge ($/kW)]
Info: nx4
Required: Required if ur_dc_enable=1
- Type:
sequence[sequence]
- ur_ec_sched_weekday
Energy charge weekday schedule [Periods defined in ur_ec_tou_mat]
Info: 12x24
- Type:
sequence[sequence]
- ur_ec_sched_weekend
Energy charge weekend schedule [Periods defined in ur_ec_tou_mat]
Info: 12x24
- Type:
sequence[sequence]
- ur_ec_tou_mat
Energy rates table [col 0=period no, col 1=tier no, col 2=max usage, col 3=max usage units (0=kWh, 1=kWh/kW, 2=kWh daily, 3=kWh/kW daily), col 4=buy rate ($/kWh), col 5=sell rate ($/kWh)]
Info: nx6
- Type:
sequence[sequence]
- ur_en_ts_buy_rate
Enable time step buy rates [0/1]
Options: 0=disable,1=enable
Constraints: BOOLEAN
Required: False. Automatically set to 0 if not assigned explicitly or loaded from defaults.
- Type:
float
- ur_en_ts_sell_rate
Enable time step sell rates [0/1]
Options: 0=disable,1=enable
Constraints: BOOLEAN
Required: False. Automatically set to 0 if not assigned explicitly or loaded from defaults.
- Type:
float
- ur_enable_billing_demand
Enable billing demand ratchets [0/1]
Options: 0=disable,1=enable
Constraints: INTEGER,MIN=0,MAX=1
Required: False. Automatically set to 0 if not assigned explicitly or loaded from defaults.
- Type:
float
- ur_metering_option
Metering options [0=net energy metering,1=net energy metering with $ credits,2=net billing,3=net billing with carryover to next month,4=buy all - sell all]
Info: Net metering monthly excess
Constraints: INTEGER,MIN=0,MAX=4
Required: False. Automatically set to 0 if not assigned explicitly or loaded from defaults.
- Type:
float
- ur_monthly_fixed_charge
Monthly fixed charge [$]
Required: False. Automatically set to 0.0 if not assigned explicitly or loaded from defaults.
- Type:
float
- ur_monthly_min_charge
Monthly minimum charge [$]
Required: False. Automatically set to 0.0 if not assigned explicitly or loaded from defaults.
- Type:
float
- ur_nm_credit_month
Month of year end payout (true-up) [mn]
Constraints: INTEGER,MIN=0,MAX=11
Required: False. Automatically set to 11 if not assigned explicitly or loaded from defaults.
- Type:
float
- ur_nm_credit_rollover
Apply net metering true-up credits to future bills [0/1]
Options: 0=disable,1=enable
Constraints: INTEGER,MIN=0,MAX=1
Required: False. Automatically set to 0 if not assigned explicitly or loaded from defaults.
- Type:
float
- ur_nm_yearend_sell_rate
Net metering true-up credit sell rate [$/kWh]
Required: False. Automatically set to 0.0 if not assigned explicitly or loaded from defaults.
- Type:
float
- ur_sell_eq_buy
Set sell rate equal to buy rate [0/1]
Info: Optional override
Constraints: BOOLEAN
Required: False. Automatically set to 0 if not assigned explicitly or loaded from defaults.
- Type:
float
- ur_ts_buy_rate
Time step buy rates [$/kWh]
- Type:
sequence
- ur_ts_sell_rate
Time step sell rates [$/kWh]
- Type:
sequence
- ur_yearzero_usage_peaks
Peak usage by month for year zero [kW]
Info: 12
Required: Required if ur_enable_billing_demand=1
- Type:
sequence
GridLimits Group
- class PySAM.Battery.Battery.GridLimits
- assign(dict) None
Assign attributes from dictionary, overwriting but not removing values.
GridLimits_vals = { var: val, ...}
- export() dict
Export attributes into dictionary.
- replace(dict) None
Replace attributes from dictionary, unassigning values not present in input
dict
.GridLimits_vals = { var: val, ...}
- enable_interconnection_limit
Enable grid interconnection limit [0/1]
Info: Enable a grid interconnection limit
- Type:
float
- grid_curtailment
Grid curtailment as energy delivery limit (first year) [MW]
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.
The value of the following variables depends on
grid_curtailment
:batt_room_temperature_celsius
- Type:
sequence
- grid_interconnection_limit_kwac
Grid interconnection limit [kWac]
- Type:
float
HybridCosts Group
- class PySAM.Battery.Battery.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, ...}
- add_om_num_types
Number of O and M types
Info: battery,fuelcell
Constraints: INTEGER,MIN=0,MAX=2
Required: False. Automatically set to 0 if not assigned explicitly or loaded from defaults.
- Type:
float
- 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:batt_Qfull
batt_Vnom_default
batt_ac_dc_efficiency
batt_ac_or_dc
batt_chem
batt_current_choice
batt_dc_ac_efficiency
batt_dc_dc_efficiency
batt_power_discharge_max_kwac
- Type:
float
- om_batt_capacity_cost
Battery capacity-based System Costs amount [$/kWcap]
Info: battery
Required: False. Automatically set to 0.0 if not assigned explicitly or loaded from defaults.
- Type:
sequence
- om_batt_fixed_cost
Battery fixed System Costs annual amount [$/year]
Info: battery
Required: False. Automatically set to 0.0 if not assigned explicitly or loaded from defaults.
- Type:
sequence
- om_batt_nameplate
Battery capacity for System Costs values [kW]
Info: battery
Required: False. Automatically set to 0 if not assigned explicitly or loaded from defaults.
The value of
om_batt_nameplate
depends on the following variables:batt_Qfull
batt_Vnom_default
batt_ac_dc_efficiency
batt_ac_or_dc
batt_chem
batt_computed_bank_capacity
batt_current_choice
batt_dc_ac_efficiency
batt_dc_dc_efficiency
- Type:
float
- 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_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_production1_values
Battery production for System Costs values [kWh]
Info: battery
Required: False. Automatically set to 0 if not assigned explicitly or loaded from defaults.
- Type:
sequence
- total_installed_cost
Total installed cost [$]
Required: True
The value of
total_installed_cost
depends on the following variables:batt_Qfull
batt_Vnom_default
batt_ac_dc_efficiency
batt_ac_or_dc
batt_chem
batt_computed_bank_capacity
batt_current_choice
batt_dc_ac_efficiency
batt_dc_dc_efficiency
batt_power_discharge_max_kwac
batt_power_discharge_max_kwdc
- Type:
float
Outputs Group
- class PySAM.Battery.Battery.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_crit_load
Critical load energy (year 1) [kWh]
- Type:
float
- annual_crit_load_unmet
Critical load energy unmet (year 1) [kWh]
- Type:
float
- annual_crit_load_unmet_percentage
Critical load unmet percentage (year 1) [%]
- Type:
float
- annual_export_to_grid_energy
Annual energy exported to grid [kWh]
- Type:
sequence
- annual_import_to_grid_energy
Annual energy imported from grid [kWh]
- Type:
sequence
- annual_outage_losses_unmet
Battery and system losses unmet energy (year 1) [kWh]
- Type:
float
- average_battery_conversion_efficiency
Battery average cycle conversion efficiency [%]
- Type:
float
- average_battery_roundtrip_efficiency
Battery average roundtrip efficiency [%]
- Type:
float
- avg_critical_load
Hours of autonomy during grid outage critical load met [kWh]
- Type:
float
- batt_DOD
Battery cycle depth of discharge [%]
- Type:
sequence
- batt_DOD_cycle_average
Battery average cycle DOD
- Type:
sequence
- batt_I
Battery current [A]
- Type:
sequence
- batt_SOC
Battery state of charge [%]
- Type:
sequence
- batt_annual_charge_energy
Battery annual energy charged [kWh]
- Type:
sequence
- batt_annual_charge_from_grid
Battery annual energy charged from grid [kWh]
- Type:
sequence
- batt_annual_charge_from_system
Battery annual energy charged from system [kWh]
- Type:
sequence
- batt_annual_discharge_energy
Battery annual energy discharged [kWh]
- Type:
sequence
- batt_annual_energy_loss
Battery annual energy loss [kWh]
- Type:
sequence
- batt_annual_energy_system_loss
Battery annual system energy loss [kWh]
- Type:
sequence
- batt_bank_installed_capacity
Battery bank installed capacity [kWh]
- Type:
float
- batt_bank_replacement
Battery bank replacements per year [number/year]
- Type:
sequence
- batt_capacity_percent
Battery relative capacity to nameplate [%]
- Type:
sequence
- batt_capacity_percent_calendar
Battery relative capacity to nameplate (calendar) [%]
- Type:
sequence
- batt_capacity_percent_cycle
Battery relative capacity to nameplate (cycling) [%]
- Type:
sequence
- batt_capacity_thermal_percent
Battery capacity percent for temperature [%]
- Type:
sequence
- batt_conversion_loss
Battery loss from power electronics [kW]
- Type:
sequence
- batt_cost_to_cycle
Battery computed cycle degradation penalty [$/cycle-kWh]
- Type:
sequence
- batt_cycles
Battery number of cycles
- Type:
sequence
- batt_dispatch_sched
Battery dispatch schedule
- Type:
sequence[sequence]
- batt_power
Electricity to/from battery AC [kW]
- Type:
sequence
- batt_power_dc
Electricity to/from battery DC [kW]
- Type:
sequence
- batt_power_target
Electricity battery power target for automated dispatch [kW]
- Type:
sequence
- batt_pvs_PV_ramp_interval
PV smoothing PV power sampled [kW]
- Type:
sequence
- batt_pvs_P_pv_ac
PV smoothing PV power before smoothing [kW]
- Type:
sequence
- batt_pvs_battpower
PV smoothing battpower [kW]
- Type:
sequence
- batt_pvs_battsoc
PV smoothing battery SOC [%]
- Type:
sequence
- batt_pvs_curtail
PV smoothing curtailed power [kW]
- Type:
sequence
- batt_pvs_energy_to_grid_percent
PV smoothing energy to grid percent (loss due to curtail and battery loss) [%]
- Type:
float
- batt_pvs_energy_to_grid_percent_sam
PV smoothing energy to grid percent actual (loss due to curtail and battery loss) [%]
- Type:
float
- batt_pvs_forecast_pv_energy
PV smoothing PV power forecast [kW]
- Type:
sequence
- batt_pvs_outpower
PV smoothing outpower [kW]
- Type:
sequence
- batt_pvs_violation_count
PV smoothing violation count
- Type:
float
- batt_pvs_violation_list
PV smoothing violation
- Type:
sequence
- batt_pvs_violation_percent
PV smoothing violation percent (of all intervals-including nighttime) [%]
- Type:
float
- batt_q0
Battery total charge [Ah]
- Type:
sequence
- batt_q1
Battery available charge [Ah]
- Type:
sequence
- batt_q2
Battery bound charge [Ah]
- Type:
sequence
- batt_qmax
Battery maximum charge with degradation [Ah]
- Type:
sequence
- batt_qmaxI
Battery maximum capacity at current [Ah]
- Type:
sequence
- batt_qmax_thermal
Battery maximum charge at temperature [Ah]
- Type:
sequence
- batt_revenue_charge
Revenue to charge from system [$/kWh]
- Type:
sequence
- batt_revenue_clipcharge
Revenue to charge from clipped [$/kWh]
- Type:
sequence
- batt_revenue_discharge
Revenue to discharge [$/kWh]
- Type:
sequence
- batt_revenue_gridcharge
Revenue to charge from grid [$/kWh]
- Type:
sequence
- batt_system_charge_percent
Battery charge energy charged from system [%]
- Type:
float
- batt_system_loss
Battery loss from ancillary equipment [kW]
- Type:
sequence
- batt_temperature
Battery temperature [C]
- Type:
sequence
- batt_to_grid
Electricity to grid from battery AC [kW]
- Type:
sequence
- batt_to_inverter_dc
Electricity to inverter from battery DC [kW]
- Type:
sequence
- batt_to_load
Electricity to load from battery AC [kW]
- Type:
sequence
- batt_to_system_load
Electricity to system loads from battery AC [kW]
- Type:
sequence
- batt_voltage
Battery voltage [V]
- Type:
sequence
- batt_voltage_cell
Battery cell voltage [V]
- Type:
sequence
- capacity_factor_sales
Capacity factor based on AC electricity to grid [%]
- Type:
float
- cdf_of_surviving
Hours of autonomy during grid outage cumulative probabilities
- Type:
sequence
- 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
- crit_load
Critical load in this timestep [kW]
- Type:
sequence
- crit_load_unmet
Critical load unmet in this timestep [kW]
- Type:
sequence
- fuelcell_to_batt
Electricity to battery from fuel cell AC [kW]
- Type:
sequence
- gen_without_battery
Power produced without the battery or curtailment [kW]
- Type:
sequence
- grid_power
Electricity to/from grid AC [kW]
- Type:
sequence
- grid_power_target
Electricity grid power target for automated dispatch [kW]
- Type:
sequence
- grid_to_batt
Electricity to battery from grid AC [kW]
- Type:
sequence
- grid_to_load
Electricity to load from grid AC [kW]
- Type:
sequence
- interconnection_loss
Electricity loss due to curtailment interconnection outage [kW]
- Type:
sequence
- market_sell_rate_series_yr1
Power price for battery dispatch [$/MWh]
- Type:
sequence
- monthly_batt_to_grid
Energy to grid from battery [kWh]
- Type:
sequence
- monthly_batt_to_load
Energy to load from battery [kWh]
- Type:
sequence
- monthly_batt_to_system_load
Energy to system loads from battery [kWh]
- Type:
sequence
- monthly_crit_load
Critical load energy [kWh]
- Type:
sequence
- monthly_crit_load_unmet
Critical load energy unmet [kWh]
- Type:
sequence
- monthly_crit_load_unmet_percentage
Critical load unmet percentage [%]
- Type:
sequence
- monthly_grid_to_batt
Energy to battery from grid [kWh]
- Type:
sequence
- monthly_grid_to_load
Energy to load from grid [kWh]
- Type:
sequence
- monthly_interconnection_loss
Energy loss due to curtailment, interconnection, or outage [kWh]
- Type:
sequence
- monthly_outage_losses_unmet
Battery and system losses unmet energy [kWh]
- Type:
sequence
- monthly_system_to_batt
Energy to battery from system [kWh]
- Type:
sequence
- monthly_system_to_grid
Energy to grid from system [kWh]
- Type:
sequence
- monthly_system_to_load
Energy to load from system [kWh]
- Type:
sequence
- num_ts_load_met_by_system_lifetime
Number of timesteps electric load met by system (lifetime)
- Type:
float
- num_ts_load_met_by_system_yr1
Number of timesteps electric load met by system (year 1)
- Type:
float
- outage_durations
Hours of autonomy during grid outage hour list from min to max [hr]
- Type:
sequence
- outage_losses_unmet
Battery and system losses unmet in this timestep [kW]
- Type:
sequence
- pdf_of_surviving
Hours of autonomy during grid outage probabilities
- Type:
sequence
- percent_ts_load_met_by_system_lifetime
Percent of timesteps electric load met by system (lifetime)
- Type:
float
- percent_ts_load_met_by_system_yr1
Percent of timesteps electric load met by system (year 1)
- Type:
float
- resilience_hrs
Hours of autonomy during grid outage at each timestep [hr]
- Type:
sequence
- resilience_hrs_avg
Hours of autonomy during grid outage average [hr]
- Type:
float
- resilience_hrs_max
Hours of autonomy during grid outage maximum [hr]
- Type:
float
- resilience_hrs_min
Hours of autonomy during grid outage minimum [hr]
- Type:
float
- survival_function
Hours of autonomy during grid outage survival function
- Type:
sequence
- system_to_batt
Electricity to battery from system AC [kW]
- Type:
sequence
- system_to_batt_dc
Electricity to battery from system DC [kW]
- Type:
sequence
- system_to_grid
Electricity to grid from system AC [kW]
- Type:
sequence
- system_to_load
Electricity to load from system AC [kW]
- Type:
sequence