Fuelcell
Fuel cell model
- PySAM.Fuelcell.default(config) Fuelcell
Load defaults for the configuration
config
. Available configurations are:“FuelCellCommercial”
“FuelCellSingleOwner”
“GenericPVWattsWindFuelCellBatteryHybridHostDeveloper”
“GenericPVWattsWindFuelCellBatteryHybridSingleOwner”
“PVWattsWindFuelCellBatteryHybridHostDeveloper”
“PVWattsWindFuelCellBatteryHybridSingleOwner”
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.Fuelcell.from_existing(data, optional config) Fuelcell
Share data with an existing PySAM class. If
optional config
is a valid configuration name, load the module’s defaults for that configuration.
- PySAM.Fuelcell.wrap(ssc_data_t) Fuelcell
Load data from a PySSC object.
Warning
Do not call PySSC.data_free on the ssc_data_t provided to
wrap()
Fuelcell is a wrapper for the SSC compute module cmod_fuelcell.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.
dispatch_manual_fuelcelldischarge
dispatch_manual_percent_fc_discharge
dispatch_manual_units_fc_discharge
fuelcell_degradation
fuelcell_dispatch
fuelcell_dynamic_response_down
fuelcell_dynamic_response_up
fuelcell_fuel_available
fuelcell_fuel_type
fuelcell_lhv
fuelcell_number_of_units
fuelcell_unit_max_power
fuelcell_unit_min_power
Functions
- class PySAM.Fuelcell.Fuelcell
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.Fuelcell.Fuelcell.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
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
Common Group
- class PySAM.Fuelcell.Fuelcell.Common
- assign(dict) None
Assign attributes from dictionary, overwriting but not removing values.
Common_vals = { var: val, ...}
- export() dict
Export attributes into dictionary.
- replace(dict) None
Replace attributes from dictionary, unassigning values not present in input
dict
.Common_vals = { var: val, ...}
- annual_energy
Annual Energy [kWh]
INOUT: This variable is both an input and an output to the compute module.
Required: False. Automatically set to 0 if not assigned explicitly or loaded from defaults.
- Type:
float
- capacity_factor
Capacity factor [%]
INOUT: This variable is both an input and an output to the compute module.
Required: False. Automatically set to 0 if not assigned explicitly or loaded from defaults.
- Type:
float
- gen
System power generated [kW]
Info: Lifetime system generation
INOUT: This variable is both an input and an output to the compute module.
- Type:
sequence
Load Group
- class PySAM.Fuelcell.Fuelcell.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, ...}
- load
Electricity load (year 1) [kW]
- Type:
sequence
FuelCell Group
- class PySAM.Fuelcell.Fuelcell.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, ...}
- dispatch_manual_fuelcell_sched
Dispatch schedule for weekday
- Type:
sequence[sequence]
- dispatch_manual_fuelcell_sched_weekend
Dispatch schedule for weekend
- Type:
sequence[sequence]
- dispatch_manual_fuelcellcharge
Periods 1-6 charging allowed?
- Type:
sequence
- dispatch_manual_fuelcelldischarge
Periods 1-6 discharging allowed?
The value of the following variables depends on
dispatch_manual_fuelcelldischarge
:dispatch_manual_percent_fc_discharge
dispatch_manual_units_fc_discharge
- Type:
sequence
- dispatch_manual_percent_fc_discharge
Periods 1-6 percent of max fuelcell output
The value of
dispatch_manual_percent_fc_discharge
depends on the following variables:dispatch_manual_fuelcelldischarge
- Type:
sequence
- dispatch_manual_units_fc_discharge
Periods 1-6 number of fuel cell units?
The value of
dispatch_manual_units_fc_discharge
depends on the following variables:dispatch_manual_fuelcelldischarge
- Type:
sequence
- fuelcell_availability_schedule
Hour of year start shutdown/Column 2: Hours duration of shutdown ]
- Type:
sequence[sequence]
- Type:
Fuel cell availability schedule [Column 1
- fuelcell_degradation
Fuel cell degradation per hour [kW/h]
The value of
fuelcell_degradation
depends on the following variables:fuelcell_unit_max_power
- Type:
float
- fuelcell_degradation_restart
Fuel cell degradation at restart [kW]
- Type:
float
- fuelcell_degradation_restart_schedule
Fuel cell enable scheduled restarts [0/1]
- Type:
float
- fuelcell_degradation_restarts_per_year
Fuel cell scheduled restarts per year
- Type:
float
- fuelcell_dispatch
Fuel cell dispatch input per unit [kW]
The value of
fuelcell_dispatch
depends on the following variables:fuelcell_unit_max_power
- Type:
sequence
- fuelcell_dispatch_choice
Fuel cell dispatch choice [0/1/2]
- Type:
float
- fuelcell_dynamic_response_down
Fuel cell ramp rate limit down [kW/h]
The value of
fuelcell_dynamic_response_down
depends on the following variables:fuelcell_number_of_units
fuelcell_unit_max_power
- Type:
float
- fuelcell_dynamic_response_up
Fuel cell ramp rate limit up [kW/h]
The value of
fuelcell_dynamic_response_up
depends on the following variables:fuelcell_number_of_units
fuelcell_unit_max_power
- Type:
float
- fuelcell_efficiency
Fuel cell efficiency table
- Type:
sequence[sequence]
- fuelcell_efficiency_choice
Fuel cell efficiency definition choice [0/1]
Options: 0=OriginalNameplate,1=DegradedNameplate
- Type:
float
- fuelcell_fixed_pct
Fuel cell fixed operation percent [%]
- Type:
float
- fuelcell_fuel_available
Fuel cell available fuel quantity [MCf]
The value of
fuelcell_fuel_available
depends on the following variables:fuelcell_fuel_type
- Type:
float
- fuelcell_fuel_price
Fuel cell price [$/MCf]
- Type:
float
- fuelcell_fuel_type
Fuel cell type [0/1]
The value of the following variables depends on
fuelcell_fuel_type
:fuelcell_fuel_available
fuelcell_lhv
- Type:
float
- fuelcell_is_started
Fuel cell is started [0/1]
- Type:
float
- fuelcell_lhv
Fuel cell lower heating value [Btu/ft3]
The value of
fuelcell_lhv
depends on the following variables:fuelcell_fuel_type
- Type:
float
- fuelcell_number_of_units
Fuel cell number of units
The value of the following variables depends on
fuelcell_number_of_units
:fuelcell_dynamic_response_down
fuelcell_dynamic_response_up
- Type:
float
- fuelcell_operation_options
Fuel cell turn off options [0/1]
- Type:
float
- fuelcell_replacement_option
Fuel cell replacement option [0/1/2]
- Type:
float
- fuelcell_replacement_percent
Fuel cell replace at percentage
- Type:
float
- fuelcell_replacement_schedule
Fuel cell replace on schedule
- Type:
sequence
- fuelcell_shutdown_time
Fuel cell shutdown hours [hours]
- Type:
float
- fuelcell_startup_time
Fuel cell startup hours [hours]
- Type:
float
- fuelcell_type
Fuel cell type [0/1/2]
- Type:
float
- fuelcell_unit_max_power
Fuel cell max power per unit [kW]
The value of the following variables depends on
fuelcell_unit_max_power
:fuelcell_degradation
fuelcell_dispatch
fuelcell_dynamic_response_down
fuelcell_dynamic_response_up
fuelcell_unit_min_power
- Type:
float
- fuelcell_unit_min_power
Fuel cell min power per unit [kW]
The value of
fuelcell_unit_min_power
depends on the following variables:fuelcell_unit_max_power
- Type:
float
HybridCosts Group
- class PySAM.Fuelcell.Fuelcell.HybridCosts
- assign(dict) None
Assign attributes from dictionary, overwriting but not removing values.
HybridCosts_vals = { var: val, ...}
- export() dict
Export attributes into dictionary.
- replace(dict) None
Replace attributes from dictionary, unassigning values not present in input
dict
.HybridCosts_vals = { var: val, ...}
- add_om_num_types
Number of O and M types
Info: battery,fuelcell
Constraints: INTEGER,MIN=0,MAX=2
Required: False. Automatically set to 0 if not assigned explicitly or loaded from defaults.
- Type:
float
- degradation
Annual AC degradation [%]
Required: False. Automatically set to 0.0 if not assigned explicitly or loaded from defaults.
- Type:
sequence
- land_area
Total land area [acres]
Required: False. Automatically set to 0 if not assigned explicitly or loaded from defaults.
- Type:
float
- om_capacity_escal
Capacity-based O&M escalation [%/year]
Required: False. Automatically set to 0.0 if not assigned explicitly or loaded from defaults.
- Type:
float
- om_fixed_escal
Fixed O&M escalation [%/year]
Required: False. Automatically set to 0.0 if not assigned explicitly or loaded from defaults.
- Type:
float
- om_fuel_cost
Fuel cost [$/MMBtu]
Info: generic_system,fuelcell,tcslinearfresnel,tcstroughempirical,tcsgenericsolar,fresnelphysical
Required: False. Automatically set to 0.0 if not assigned explicitly or loaded from defaults.
- Type:
sequence
- om_fuel_cost_escal
Fuel cost escalation [%/year]
Info: generic_system,fuelcell,tcslinearfresnel,tcstroughempirical,tcsgenericsolar,fresnelphysical
Required: False. Automatically set to 0.0 if not assigned explicitly or loaded from defaults.
- Type:
float
- om_fuelcell_capacity_cost
Fuel cell capacity-based System Costs amount [$/kWcap]
Info: fuelcell
Required: False. Automatically set to 0.0 if not assigned explicitly or loaded from defaults.
- Type:
sequence
- om_fuelcell_fixed_cost
Fuel cell fixed System Costs annual amount [$/year]
Info: fuelcell
Required: False. Automatically set to 0.0 if not assigned explicitly or loaded from defaults.
- Type:
sequence
- om_fuelcell_nameplate
Fuel cell capacity for System Costs values [kW]
Info: fuelcell
Required: False. Automatically set to 0 if not assigned explicitly or loaded from defaults.
- Type:
float
- om_fuelcell_replacement_cost
Replacement cost 2 [$/kW]
Info: fuelcell
Required: False. Automatically set to 0.0 if not assigned explicitly or loaded from defaults.
- Type:
sequence
- om_fuelcell_variable_cost
Fuel cell production-based System Costs amount [$/MWh]
Info: fuelcell
Required: False. Automatically set to 0.0 if not assigned explicitly or loaded from defaults.
- Type:
sequence
- om_land_lease
Land lease cost [$/acre]
Required: False. Automatically set to 0 if not assigned explicitly or loaded from defaults.
- Type:
sequence
- om_land_lease_escal
Land lease cost escalation [%/yr]
Required: False. Automatically set to 0 if not assigned explicitly or loaded from defaults.
- Type:
float
- om_production2_values
Fuel cell production for System Costs values [kWh]
Info: fuelcell
Required: False. Automatically set to 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]
Info: battery,fuelcell
Required: False. Automatically set to 0.0 if not assigned explicitly or loaded from defaults.
- Type:
float
- total_installed_cost
Total installed cost [$]
Required: True
The value of
total_installed_cost
depends on the following variables:fuelcell_number_of_units
fuelcell_unit_max_power
- Type:
float
Outputs Group
- class PySAM.Fuelcell.Fuelcell.Outputs
- assign(dict) None
Assign attributes from dictionary, overwriting but not removing values.
Outputs_vals = { var: val, ...}
- export() dict
Export attributes into dictionary.
- replace(dict) None
Replace attributes from dictionary, unassigning values not present in input
dict
.Outputs_vals = { var: val, ...}
- annual_energy_discharged
Annual energy discharged [kWh]
- Type:
float
- annual_energy_distribution_time
Annual energy production as function of time [kW]
- Type:
sequence[sequence]
- annual_energy_distribution_time_fc
Annual energy production (PV + battery + fuel cell) as function of Time
- Type:
sequence[sequence]
- annual_fuel_usage
Annual Fuel Usage [kWht]
- Type:
float
- annual_fuel_usage_lifetime
Annual Fuel Usage (lifetime) [kWht]
- Type:
sequence
- cf_battery_replacement_cost_schedule
replacement O&M costs [$]
- Type:
sequence
- cf_energy_net
annual energy [kWh]
- Type:
sequence
- cf_fuelcell_replacement_cost_schedule
replacement O&M costs [$]
- Type:
sequence
- cf_land_lease_expense
Land lease expense [$]
- Type:
sequence
- cf_om_capacity
capacity O&M costs [$]
- Type:
sequence
- cf_om_fixed
fixed O&M costs [$]
- Type:
sequence
- cf_om_fuel_cost
fossil fuel O&M costs [$]
- Type:
sequence
- cf_om_land_lease
land lease O&M costs [$]
- Type:
sequence
- cf_om_production
production O&M costs [$]
- Type:
sequence
- fuelcell_annual_energy_discharged
Fuel cell annual energy discharged [kWh]
- Type:
sequence
- fuelcell_electrical_efficiency
Fuel cell electrical efficiency [%]
- Type:
sequence
- fuelcell_fuel_consumption_mcf
Fuel cell fuel consumption [MCf]
- Type:
sequence
- fuelcell_monthly_energy_discharged
Fuel cell monthly energy discharged Year 1 [kWh]
- Type:
sequence
- fuelcell_percent_load
Fuel cell percent load [%]
- Type:
sequence
- fuelcell_power
Electricity from fuel cell [kW]
- Type:
sequence
- fuelcell_power_max_percent
Fuel cell max power percent available [%]
- Type:
sequence
- fuelcell_power_thermal
Heat from fuel cell [kWt]
- Type:
sequence
- fuelcell_replacement
Fuel cell replacements per year [number/year]
- Type:
sequence
- fuelcell_to_grid
Electricity to grid from fuel cell [kW]
- Type:
sequence
- fuelcell_to_load
Electricity to load from fuel cell [kW]
- Type:
sequence
- gen
System power generated [kW]
- Type:
sequence
- system_heat_rate
Heat rate conversion factor (MMBTUs/MWhe) [MMBTUs/MWhe]
- Type:
float