Battwatts
Simplified battery storage model
- PySAM.Battwatts.default(config) Battwatts
Load defaults for the configuration
config
. Available configurations are:“PVWattsBatteryCommercial”
“PVWattsBatteryHostDeveloper”
“PVWattsBatteryResidential”
“PVWattsBatteryThirdParty”
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.Battwatts.from_existing(data, optional config) Battwatts
Share data with an existing PySAM class. If
optional config
is a valid configuration name, load the module’s defaults for that configuration.
- PySAM.Battwatts.wrap(ssc_data_t) Battwatts
Load data from a PySSC object.
Warning
Do not call PySSC.data_free on the ssc_data_t provided to
wrap()
Battwatts is a wrapper for the SSC compute module cmod_battwatts.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.
None
Functions
- class PySAM.Battwatts.Battwatts
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 = { 'Lifetime': { var: val, ...}, ...}
- execute(int verbosity) None
Execute simulation with verbosity level 0 (default) or 1
- export() dict
Export attributes into nested dictionary
- get_data_ptr() Pointer
Get ssc_data_t pointer
- replace(dict) None
Replace attributes from nested dictionary, except for Outputs. Unassigns all values in each Group then assigns from the input dict.
nested_dict = { 'Lifetime': { var: val, ...}, ...}
- unassign(name) None
Unassign a value in any of the variable groups.
- value(name, optional value) None | float | dict | sequence | str
Get or set by name a value in any of the variable groups.
Lifetime Group
- class PySAM.Battwatts.Battwatts.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
- system_use_lifetime_output
Enable 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
Battery Group
- class PySAM.Battwatts.Battwatts.Battery
- assign(dict) None
Assign attributes from dictionary, overwriting but not removing values.
Battery_vals = { var: val, ...}
- export() dict
Export attributes into dictionary.
- replace(dict) None
Replace attributes from dictionary, unassigning values not present in input
dict
.Battery_vals = { var: val, ...}
- ac
AC inverter power [W]
- Type:
sequence
- batt_custom_dispatch
Battery Dispatch [kW]
Required: Required if batt_simple_dispatch=2
- Type:
sequence
- batt_simple_chemistry
Battery Chemistry [0=LeadAcid,1=Li-ion/2]
Required: False. Automatically set to 0 if not assigned explicitly or loaded from defaults.
- Type:
float
- batt_simple_dispatch
Battery Dispatch [0=PeakShavingLookAhead,1=PeakShavingLookBehind,2=Custom]
Required: False. Automatically set to 0 if not assigned explicitly or loaded from defaults.
- Type:
float
- batt_simple_enable
Enable Battery [0/1]
Constraints: BOOLEAN
Required: False. Automatically set to 0 if not assigned explicitly or loaded from defaults.
- Type:
float
- batt_simple_kw
Battery Power [kW]
Required: False. Automatically set to 0 if not assigned explicitly or loaded from defaults.
- Type:
float
- batt_simple_kwh
Battery Capacity [kWh]
Required: False. Automatically set to 0 if not assigned explicitly or loaded from defaults.
- Type:
float
- batt_simple_meter_position
Battery Meter Position [0=BehindTheMeter,1=FrontOfMeter]
Required: False. Automatically set to 0 if not assigned explicitly or loaded from defaults.
- Type:
float
- crit_load
Critical electricity load (year 1) [kW]
- Type:
sequence
- dc
DC array power [W]
- Type:
sequence
- inverter_efficiency
Inverter Efficiency [%]
Constraints: MIN=0,MAX=100
- Type:
float
- load
Electricity load (year 1) [kW]
- Type:
sequence
Load Group
- class PySAM.Battwatts.Battwatts.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, ...}
- grid_outage
Grid outage in this time step [0/1]
Options: 0=GridAvailable,1=GridUnavailable,Length=load
- Type:
sequence
- load_escalation
Annual load escalation [%/year]
Required: False. Automatically set to 0 if not assigned explicitly or loaded from defaults.
- 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
GridLimits Group
- class PySAM.Battwatts.Battwatts.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.
- Type:
sequence
- grid_interconnection_limit_kwac
Grid interconnection limit [kWac]
- Type:
float
Outputs Group
- class PySAM.Battwatts.Battwatts.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_energy_distribution_time
Annual energy production as function of time [kW]
- Type:
sequence[sequence]
- 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
- 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
System power generated [kW]
- Type:
sequence
- gen_without_battery
Power produced without the battery or curtailment [kW]
- Type:
sequence
- grid_power
Electricity to/from grid AC [kW]
- Type:
sequence
- grid_power_target
Electricity grid power target for automated dispatch [kW]
- Type:
sequence
- grid_to_batt
Electricity to battery from grid AC [kW]
- Type:
sequence
- grid_to_load
Electricity to load from grid AC [kW]
- Type:
sequence
- interconnection_loss
Electricity loss due to curtailment interconnection outage [kW]
- Type:
sequence
- market_sell_rate_series_yr1
Power price for battery dispatch [$/MWh]
- Type:
sequence
- monthly_batt_to_grid
Energy to grid from battery [kWh]
- Type:
sequence
- monthly_batt_to_load
Energy to load from battery [kWh]
- Type:
sequence
- monthly_batt_to_system_load
Energy to system loads from battery [kWh]
- Type:
sequence
- monthly_crit_load
Critical load energy [kWh]
- Type:
sequence
- monthly_crit_load_unmet
Critical load energy unmet [kWh]
- Type:
sequence
- monthly_crit_load_unmet_percentage
Critical load unmet percentage [%]
- Type:
sequence
- monthly_grid_to_batt
Energy to battery from grid [kWh]
- Type:
sequence
- monthly_grid_to_load
Energy to load from grid [kWh]
- Type:
sequence
- monthly_interconnection_loss
Energy loss due to curtailment, interconnection, or outage [kWh]
- Type:
sequence
- monthly_outage_losses_unmet
Battery and system losses unmet energy [kWh]
- Type:
sequence
- monthly_system_to_batt
Energy to battery from system [kWh]
- Type:
sequence
- monthly_system_to_grid
Energy to grid from system [kWh]
- Type:
sequence
- monthly_system_to_load
Energy to load from system [kWh]
- Type:
sequence
- num_ts_load_met_by_system_lifetime
Number of timesteps electric load met by system (lifetime)
- Type:
float
- num_ts_load_met_by_system_yr1
Number of timesteps electric load met by system (year 1)
- Type:
float
- outage_durations
Hours of autonomy during grid outage hour list from min to max [hr]
- Type:
sequence
- outage_losses_unmet
Battery and system losses unmet in this timestep [kW]
- Type:
sequence
- pdf_of_surviving
Hours of autonomy during grid outage probabilities
- Type:
sequence
- percent_ts_load_met_by_system_lifetime
Percent of timesteps electric load met by system (lifetime)
- Type:
float
- percent_ts_load_met_by_system_yr1
Percent of timesteps electric load met by system (year 1)
- Type:
float
- resilience_hrs
Hours of autonomy during grid outage at each timestep [hr]
- Type:
sequence
- resilience_hrs_avg
Hours of autonomy during grid outage average [hr]
- Type:
float
- resilience_hrs_max
Hours of autonomy during grid outage maximum [hr]
- Type:
float
- resilience_hrs_min
Hours of autonomy during grid outage minimum [hr]
- Type:
float
- survival_function
Hours of autonomy during grid outage survival function
- Type:
sequence
- system_to_batt
Electricity to battery from system AC [kW]
- Type:
sequence
- system_to_batt_dc
Electricity to battery from system DC [kW]
- Type:
sequence
- system_to_grid
Electricity to grid from system AC [kW]
- Type:
sequence
- system_to_load
Electricity to load from system AC [kW]
- Type:
sequence