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.new() Fuelcell
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