Battery¶
Wrapper for SAM Simulation Core model: cmod_battery.cpp
Creating an Instance¶
There are three methods to create a new instance of a PySAM module. Using default
populates the newclass’ attributes with default values specific to a config
. Each technology-financialconfiguration corresponds to a SAM GUI configuration. Using new
creates an instance with empty attributes. The wrap
function allows compatibility with PySSC, for details, refer to PySSC.
StandAloneBattery model description
Detailed battery storage model
-
PySAM.StandAloneBattery.
default
(config) → StandAloneBattery¶ Use financial config-specific default attributes config options:
- “FuelCellCommercial”
- “FuelCellSingleOwner”
- “GenericBatteryAllEquityPartnershipFlip”
- “GenericBatteryCommercial”
- “GenericBatteryHostDeveloper”
- “GenericBatteryLeveragedPartnershipFlip”
- “GenericBatteryMerchantPlant”
- “GenericBatteryResidential”
- “GenericBatterySaleLeaseback”
- “GenericBatterySingleOwner”
- “GenericBatteryThirdParty”
-
PySAM.StandAloneBattery.
from_existing
(data, optional config) → StandAloneBattery¶ Share underlying data with an existing PySAM class. If config provided, default attributes are loaded otherwise.
-
PySAM.StandAloneBattery.
new
() → StandAloneBattery¶
-
PySAM.StandAloneBattery.
wrap
(ssc_data_t) → StandAloneBattery¶ Use existing PySSC data
Warning
Do not call PySSC.data_free on the ssc_data_t provided to
wrap
Functions¶
-
class
PySAM.StandAloneBattery.
StandAloneBattery
¶ 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
-
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¶
Lifetime Group¶
-
class
PySAM.StandAloneBattery.StandAloneBattery.
Lifetime
¶ -
assign
() → None¶ Assign attributes from dictionary
Lifetime_vals = { var: val, ...}
-
export
() → dict¶ Export attributes into dictionary
-
analysis_period
¶ Lifetime analysis period [years]
Info: The number of years in the simulation
Required: True if system_use_lifetime_output=1
Type: float
-
system_use_lifetime_output
¶ Lifetime simulation [0/1]
Options: 0=SingleYearRepeated,1=RunEveryYear
Constraints: BOOLEAN
Required: If not provided, assumed to be 0
Type: float
-
BatterySystem Group¶
-
class
PySAM.StandAloneBattery.StandAloneBattery.
BatterySystem
¶ -
assign
() → None¶ Assign attributes from dictionary
BatterySystem_vals = { var: val, ...}
-
export
() → dict¶ Export attributes into dictionary
-
batt_ac_dc_efficiency
¶ Inverter AC to battery DC efficiency
Type: float
-
batt_ac_or_dc
¶ Battery interconnection (AC or DC)
Options: 0=DC_Connected,1=AC_Connected
- Changes to this variable may require updating the values of the following:
- 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
¶ Computed bank capacity [kWh]
- Changes to this variable may require updating the values of the following:
- batt_Qexp
- batt_Qfull_flow
- batt_Qnom
- batt_mass
- batt_surface_area
- This variable may need to be updated if the values of the following have changed:
- batt_Qfull
- batt_Vnom_default
- batt_ac_or_dc
- batt_chem
- batt_current_choice
- batt_dc_ac_efficiency
- batt_dc_dc_efficiency
Type: float
-
batt_computed_series
¶ Number of cells in series
- This variable may need to be updated if the values of the following have changed:
- batt_Qfull
- batt_Vnom_default
- batt_ac_or_dc
- batt_chem
- batt_current_choice
- batt_dc_ac_efficiency
- batt_dc_dc_efficiency
Type: float
-
batt_computed_strings
¶ Number of strings of cells
- Changes to this variable may require updating the values of the following:
- LeadAcid_q10_computed
- LeadAcid_q20_computed
- LeadAcid_qn_computed
- This variable may need to be updated if the values of the following have changed:
- batt_Qfull
- batt_Vnom_default
- batt_ac_or_dc
- batt_chem
- batt_current_choice
- batt_dc_ac_efficiency
- batt_dc_dc_efficiency
Type: float
-
batt_current_charge_max
¶ Maximum charge current [A]
- This variable may need to be updated if the values of the following have changed:
- batt_Qfull
- batt_Vnom_default
- 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
- Changes to this variable may require updating the values of the following:
- 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
¶ Maximum discharge current [A]
- This variable may need to be updated if the values of the following have changed:
- batt_Qfull
- batt_Vnom_default
- batt_ac_or_dc
- batt_chem
- batt_current_choice
- batt_dc_ac_efficiency
- batt_dc_dc_efficiency
Type: float
-
batt_cycle_cost
¶ Input battery cycle costs [$/cycle-kWh]
Type: float
-
batt_cycle_cost_choice
¶ Use SAM model for cycle costs or input custom [0/1]
Options: 0=UseCostModel,1=InputCost
Type: float
-
batt_dc_ac_efficiency
¶ Battery DC to AC efficiency
- Changes to this variable may require updating the values of the following:
- 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
- Changes to this variable may require updating the values of the following:
- 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: If not provided, assumed to be 0
Type: float
-
batt_losses
¶ Battery system losses at each timestep [kW]
Required: If not provided, assumed to be 0
Type: sequence
-
batt_losses_charging
¶ Battery system losses when charging [kW]
Required: If not provided, assumed to be 0
Type: sequence
-
batt_losses_discharging
¶ Battery system losses when discharging [kW]
Required: If not provided, assumed to be 0
Type: sequence
-
batt_losses_idle
¶ Battery system losses when idle [kW]
Required: If not provided, assumed to be 0
Type: sequence
-
batt_mass
¶ Battery mass [kg]
- This variable may need to be updated if the values of the following have changed:
- batt_Qfull
- batt_Vnom_default
- 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
¶ Maximum charge power (AC) [kWac]
- This variable may need to be updated if the values of the following have changed:
- batt_Qfull
- batt_Vnom_default
- batt_ac_or_dc
- batt_chem
- batt_current_choice
- batt_dc_ac_efficiency
- batt_dc_dc_efficiency
Type: float
-
batt_power_charge_max_kwdc
¶ Maximum charge power (DC) [kWdc]
- This variable may need to be updated if the values of the following have changed:
- batt_Qfull
- batt_Vnom_default
- batt_ac_or_dc
- batt_chem
- batt_current_choice
- batt_dc_ac_efficiency
- batt_dc_dc_efficiency
Type: float
-
batt_power_discharge_max_kwac
¶ Maximum discharge power (AC) [kWac]
- This variable may need to be updated if the values of the following have changed:
- batt_Qfull
- batt_Vnom_default
- batt_ac_or_dc
- batt_chem
- batt_current_choice
- batt_dc_ac_efficiency
- batt_dc_dc_efficiency
Type: float
-
batt_power_discharge_max_kwdc
¶ Maximum discharge power (DC) [kWdc]
- This variable may need to be updated if the values of the following have changed:
- batt_Qfull
- batt_Vnom_default
- 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: If not provided, assumed to be 0
Type: float
-
batt_replacement_schedule
¶ Battery bank number of replacements in each year [number/year]
Options: length <= analysis_period
Required: True if batt_replacement_option=2
Type: sequence
-
batt_replacement_schedule_percent
¶ Percentage of battery capacity to replace in each year [%]
Options: length <= analysis_period
Required: True if batt_replacement_option=2
Type: sequence
-
batt_surface_area
¶ Battery surface area [m^2]
- This variable may need to be updated if the values of the following have changed:
- batt_Qfull
- batt_Vnom_default
- 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: If not provided, assumed to be 0
Type: float
-
om_replacement_cost1
¶ Cost to replace battery per kWh [$/kWh]
Type: sequence
-
SystemOutput Group¶
-
class
PySAM.StandAloneBattery.StandAloneBattery.
SystemOutput
¶ -
assign
() → None¶ Assign attributes from dictionary
SystemOutput_vals = { var: val, ...}
-
export
() → dict¶ Export attributes into dictionary
-
annual_energy
¶ Annual Energy [kWh]
Required: If not provided, assumed to be 0
Type: float
-
capacity_factor
¶ Capacity factor [%]
Required: If not provided, assumed to be 0
Type: float
-
gen
¶ System power generated [kW]
Type: sequence
-
Load Group¶
-
class
PySAM.StandAloneBattery.StandAloneBattery.
Load
¶ -
assign
() → None¶ Assign attributes from dictionary
Load_vals = { var: val, ...}
-
export
() → dict¶ Export attributes into dictionary
-
crit_load
¶ Critical electricity load (year 1) [kW]
Type: sequence
-
load
¶ Electricity load (year 1) [kW]
Type: sequence
-
BatteryCell Group¶
-
class
PySAM.StandAloneBattery.StandAloneBattery.
BatteryCell
¶ -
assign
() → None¶ Assign attributes from dictionary
BatteryCell_vals = { var: val, ...}
-
export
() → dict¶ Export attributes into dictionary
-
LeadAcid_q10_computed
¶ Capacity at 10-hour discharge rate [Ah]
- This variable may need to be updated if the values of the following have changed:
- batt_Qfull
- batt_Vnom_default
- 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]
- This variable may need to be updated if the values of the following have changed:
- batt_Qfull
- batt_Vnom_default
- 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]
- This variable may need to be updated if the values of the following have changed:
- batt_Qfull
- batt_Vnom_default
- 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]
- This variable may need to be updated if the values of the following have changed:
- batt_Qfull
- batt_Vnom_default
- 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]
- Changes to this variable may require updating the values of the following:
- 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]
- This variable may need to be updated if the values of the following have changed:
- batt_Qfull
- batt_Vnom_default
- 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]
- This variable may need to be updated if the values of the following have changed:
- batt_Qfull
- batt_Vnom_default
- batt_ac_or_dc
- batt_chem
- batt_computed_bank_capacity
- batt_current_choice
- batt_dc_ac_efficiency
- batt_dc_dc_efficiency
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]
- Changes to this variable may require updating the values of the following:
- 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)]
Type: float
-
batt_calendar_b
¶ Calendar life model coefficient [K]
Type: float
-
batt_calendar_c
¶ Calendar life model coefficient [K]
Type: float
-
batt_calendar_choice
¶ Calendar life degradation input option [0/1/2]
Options: 0=NoCalendarDegradation,1=LithiomIonModel,2=InputLossTable
Type: float
-
batt_calendar_lifetime_matrix
¶ Days vs capacity
Type: sequence[sequence]
-
batt_calendar_q0
¶ Calendar life model initial capacity cofficient
Type: float
-
batt_chem
¶ Battery chemistry
Options: 0=LeadAcid,1=LiIon
- Changes to this variable may require updating the values of the following:
- 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_lifetime_matrix
¶ Cycles vs capacity at different depths-of-discharge
Type: sequence[sequence]
-
batt_maximum_SOC
¶ Maximum allowed state-of-charge [%]
Type: float
-
batt_minimum_SOC
¶ Minimum allowed state-of-charge [%]
Type: float
-
batt_minimum_modetime
¶ Minimum time at charge state [min]
Type: float
-
batt_resistance
¶ Internal resistance [Ohm]
Type: float
-
batt_room_temperature_celsius
¶ Temperature of storage room [C]
Type: sequence
-
batt_voltage_choice
¶ Battery voltage input option [0/1]
Options: 0=UseVoltageModel,1=InputVoltageTable
Required: If not provided, assumed to be 0
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.StandAloneBattery.StandAloneBattery.
Inverter
¶ -
assign
() → None¶ Assign attributes from dictionary
Inverter_vals = { var: val, ...}
-
export
() → dict¶ Export attributes into dictionary
-
inv_cec_cg_eff_cec
¶ Inverter Coefficient Generator CEC Efficiency [%]
- Changes to this variable may require updating the values of the following:
- 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 [%]
- Changes to this variable may require updating the values of the following:
- 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 [%]
- Changes to this variable may require updating the values of the following:
- 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 [%]
- Changes to this variable may require updating the values of the following:
- 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: If not provided, assumed to be 4
- Changes to this variable may require updating the values of the following:
- 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¶
BatteryDispatch Group¶
-
class
PySAM.StandAloneBattery.StandAloneBattery.
BatteryDispatch
¶ -
assign
() → None¶ Assign attributes from dictionary
BatteryDispatch_vals = { var: val, ...}
-
export
() → dict¶ Export attributes into dictionary
-
batt_auto_gridcharge_max_daily
¶ Allowed grid charging percent per day for automated dispatch [kW]
Type: float
-
batt_custom_dispatch
¶ Custom battery power for every time step [kW]
Info: kWAC if AC-connected, else kWDC
Required: True if en_batt=1&batt_dispatch_choice=3
Type: sequence
-
batt_dispatch_auto_can_charge
¶ System charging allowed for automated dispatch? [kW]
Type: float
-
batt_dispatch_auto_can_clipcharge
¶ Battery can charge from clipped power for automated dispatch? [kW]
Type: float
-
batt_dispatch_auto_can_fuelcellcharge
¶ Charging from fuel cell allowed for automated dispatch? [kW]
Type: float
-
batt_dispatch_auto_can_gridcharge
¶ Grid charging allowed for automated dispatch? [kW]
Type: float
-
batt_dispatch_choice
¶ Battery dispatch algorithm [0/1/2/3/4]
Options: If behind the meter: 0=PeakShavingLookAhead,1=PeakShavingLookBehind,2=InputGridTarget,3=InputBatteryPower,4=ManualDispatch, if front of meter: 0=AutomatedLookAhead,1=AutomatedLookBehind,2=AutomatedInputForecast,3=InputBatteryPower,4=ManualDispatch
Required: True if en_batt=1
Type: float
-
batt_dispatch_update_frequency_hours
¶ Frequency to update the look-ahead dispatch [hours]
Type: float
-
batt_look_ahead_hours
¶ Hours to look ahead in automated dispatch [hours]
Type: float
-
batt_pv_clipping_forecast
¶ Power clipping forecast [kW]
Required: True if en_batt=1&batt_meter_position=1&batt_dispatch_choice=2
Type: sequence
-
batt_pv_dc_forecast
¶ DC power forecast [kW]
Required: True if en_batt=1&batt_meter_position=1&batt_dispatch_choice=2
Type: sequence
-
batt_target_choice
¶ Target power input option [0/1]
Options: 0=InputMonthlyTarget,1=InputFullTimeSeries
Required: True if en_batt=1&batt_meter_position=0&batt_dispatch_choice=2
Type: float
-
batt_target_power
¶ Grid target power for every time step [kW]
Required: True if en_batt=1&batt_meter_position=0&batt_dispatch_choice=2
Type: sequence
-
batt_target_power_monthly
¶ Grid target power on monthly basis [kW]
Required: True if en_batt=1&batt_meter_position=0&batt_dispatch_choice=2
Type: sequence
-
dispatch_manual_charge
¶ Periods 1-6 charging from system allowed?
Required: True if en_batt=1&batt_dispatch_choice=4
Type: sequence
-
dispatch_manual_discharge
¶ Periods 1-6 discharging allowed?
Required: True if en_batt=1&batt_dispatch_choice=4
- Changes to this variable may require updating the values of the following:
- 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: True if en_batt=1&batt_dispatch_choice=4
- Changes to this variable may require updating the values of the following:
- dispatch_manual_percent_gridcharge
Type: sequence
-
dispatch_manual_percent_discharge
¶ Periods 1-6 discharge percent [%]
Required: True if en_batt=1&batt_dispatch_choice=4
- This variable may need to be updated if the values of the following have changed:
- dispatch_manual_discharge
Type: sequence
-
dispatch_manual_percent_gridcharge
¶ Periods 1-6 gridcharge percent [%]
Required: True if en_batt=1&batt_dispatch_choice=4
- This variable may need to be updated if the values of the following have changed:
- dispatch_manual_gridcharge
Type: sequence
-
dispatch_manual_sched
¶ Battery dispatch schedule for weekday
Required: True if en_batt=1&batt_dispatch_choice=4
Type: sequence[sequence]
-
dispatch_manual_sched_weekend
¶ Battery dispatch schedule for weekend
Required: True if en_batt=1&batt_dispatch_choice=4
Type: sequence[sequence]
-
ElectricityRates Group¶
-
class
PySAM.StandAloneBattery.StandAloneBattery.
ElectricityRates
¶ -
assign
() → None¶ Assign attributes from dictionary
ElectricityRates_vals = { var: val, ...}
-
export
() → dict¶ Export attributes into dictionary
-
en_electricity_rates
¶ Enable Electricity Rates [0/1]
Options: 0=EnableElectricityRates,1=NoRates
Type: float
-
ur_ec_sched_weekday
¶ Energy charge weekday schedule
Info: 12 x 24 matrix
Required: True if en_batt=1&batt_meter_position=1&batt_dispatch_choice=2
Type: sequence[sequence]
-
ur_ec_sched_weekend
¶ Energy charge weekend schedule
Info: 12 x 24 matrix
Required: True if en_batt=1&batt_meter_position=1&batt_dispatch_choice=2
Type: sequence[sequence]
-
ur_ec_tou_mat
¶ Energy rates table
Required: True if en_batt=1&batt_meter_position=1&batt_dispatch_choice=2
Type: sequence[sequence]
-
ur_en_ts_sell_rate
¶ Enable time step sell rates [0/1]
Constraints: BOOLEAN
Required: True if en_batt=1&batt_meter_position=1&batt_dispatch_choice=2
Type: float
-
ur_ts_buy_rate
¶ Time step buy rates [0/1]
Required: True if en_batt=1&batt_meter_position=1&batt_dispatch_choice=2
Type: sequence
-
FuelCell Group¶
PriceSignal Group¶
-
class
PySAM.StandAloneBattery.StandAloneBattery.
PriceSignal
¶ -
assign
() → None¶ Assign attributes from dictionary
PriceSignal_vals = { var: val, ...}
-
export
() → dict¶ Export attributes into dictionary
-
dispatch_factors_ts
¶ Dispatch payment factor time step
Required: True 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: True 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: True 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: True 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: If not provided, assumed to be 0
Type: float
-
mp_ancserv1_revenue
¶ Ancillary services 1 revenue input [ [MW, $/MW]]
Required: True 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: True 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: True 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: True 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: True 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: True 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: True 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: True 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: True 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: True if en_batt=1&batt_meter_position=1&forecast_price_signal_model=1
Type: sequence[sequence]
-
ppa_multiplier_model
¶ PPA multiplier model [0/1]
Options: 0=diurnal,1=timestep
Constraints: INTEGER,MIN=0
Required: True if forecast_price_signal_model=0&en_batt=1&batt_meter_position=1
Type: float
-
ppa_price_input
¶ PPA Price Input
Required: True if forecast_price_signal_model=0&en_batt=1&batt_meter_position=1
Type: sequence
-
Outputs Group¶
-
class
PySAM.StandAloneBattery.StandAloneBattery.
Outputs
¶ -
assign
() → None¶ Assign attributes from dictionary
Outputs_vals = { var: val, ...}
-
export
() → dict¶ Export attributes into dictionary
-
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
-
average_battery_conversion_efficiency
¶ Battery average cycle conversion efficiency [%]
Type: float
-
average_battery_roundtrip_efficiency
¶ Battery average roundtrip efficiency [%]
Type: float
-
avg_critical_load
¶ Average critical load met for resilience [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_pv
¶ 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
¶ Electricity loss in battery power electronics [kW]
Type: sequence
-
batt_cost_to_cycle
¶ Battery computed cost to cycle [$/cycle]
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 [kW]
Type: sequence
-
batt_power_target
¶ Electricity battery power target for automated dispatch [kW]
Type: sequence
-
batt_pv_charge_percent
¶ Battery charge energy charged from system [%]
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_loss
¶ Electricity loss from battery ancillary equipment [kW]
Type: sequence
-
batt_temperature
¶ Battery temperature [C]
Type: sequence
-
batt_to_grid
¶ Electricity to grid from battery [kW]
Type: sequence
-
batt_to_load
¶ Electricity to load from battery [kW]
Type: sequence
-
batt_voltage
¶ Battery voltage [V]
Type: sequence
-
batt_voltage_cell
¶ Battery cell voltage [V]
Type: sequence
-
cdf_of_surviving
¶ Cumulative probabilities of autonomous hours for resilience
Type: sequence
-
fuelcell_to_batt
¶ Electricity to battery from fuel cell [kW]
Type: sequence
-
grid_power
¶ Electricity to/from grid [kW]
Type: sequence
-
grid_power_target
¶ Electricity grid power target for automated dispatch [kW]
Type: sequence
-
grid_to_batt
¶ Electricity to battery from grid [kW]
Type: sequence
-
grid_to_load
¶ Electricity to load from grid [kW]
Type: sequence
-
market_sell_rate_series_yr1
¶ Market sell rate (Year 1) [$/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_grid_to_batt
¶ Energy to battery from grid [kWh]
Type: sequence
-
monthly_grid_to_load
¶ Energy to load from grid [kWh]
Type: sequence
-
monthly_pv_to_batt
¶ Energy to battery from system [kWh]
Type: sequence
-
monthly_pv_to_grid
¶ Energy to grid from system [kWh]
Type: sequence
-
monthly_pv_to_load
¶ Energy to load from system [kWh]
Type: sequence
-
outage_durations
¶ List of autonomous hours for resilience from min to max [hr]
Type: sequence
-
pdf_of_surviving
¶ Probabilities of autonomous hours for resilience
Type: sequence
-
pv_to_batt
¶ Electricity to battery from system [kW]
Type: sequence
-
pv_to_grid
¶ Electricity to grid from system [kW]
Type: sequence
-
pv_to_load
¶ Electricity to load from system [kW]
Type: sequence
-
resilience_hrs
¶ Hours of autonomy during outage at each timestep for resilience [hr]
Type: sequence
-
resilience_hrs_avg
¶ Avg hours of autonomy for resilience [hr]
Type: float
-
resilience_hrs_max
¶ Max hours of autonomy for resilience [hr]
Type: float
-
resilience_hrs_min
¶ Min hours of autonomy for resilience [hr]
Type: float
-
survival_function
¶ Survival function of autonomous hours for resilience
Type: sequence
-