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”
- “MEwaveBatterySingleOwner”
- “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.
new
() → Battery¶
-
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.
-
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
-
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) → Union[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 [%]
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]
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
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
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]
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]
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]
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]
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]
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]
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]
Required: False. Automatically set to 0 if not assigned explicitly or loaded from defaults.
Type: float
-
capacity_factor
¶ Capacity factor [%]
Type: float
-
energy_hourly_kW
¶ Power output of array [kW]
Info: Lifetime system generation
Required: Required if en_wave_batt=1
Type: sequence
-
gen
¶ System power generated [kW]
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]
Options: If behind the meter: 0=PeakShaving,1=InputGridTarget,2=InputBatteryPower,3=ManualDispatch,4=PriceSignalForecast 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]
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
-
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
-
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
-
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
-
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
-