Fuelcell

Wrapper for SAM Simulation Core model: cmod_fuelcell.cpp

Input Consistency Warning

As described in Possible Problems, some input parameters are interdependent but the equations that enforce consistency are not available in this PySAM module. Therefore, the onus is on the PySAM user to check that interdependencies are correctly handled. The variables which may require additional logic include:

  • 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

Provided for each of these inputs is a list of other inputs that are potentially interdependent.

Creating an Instance

Refer to the Initializing a Model page for details on the different ways to create an instance of a PySAM class.

Fuelcell model description

Fuel cell model

PySAM.Fuelcell.default(config) → Fuelcell

Use default attributes config options:

  • “FuelCellCommercial”
  • “FuelCellSingleOwner”
PySAM.Fuelcell.from_existing(data, optional config) → Fuelcell

Share underlying data with an existing PySAM class. If config provided, default attributes are loaded otherwise.

PySAM.Fuelcell.new() → Fuelcell
PySAM.Fuelcell.wrap(ssc_data_t) → Fuelcell

Use existing PySSC data

Warning

Do not call PySSC.data_free on the ssc_data_t provided to wrap

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

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) → Union[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: 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

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]

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]

Info: Lifetime system generation

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_fuelcellcharge

Periods 1-6 charging allowed?

Type:sequence
dispatch_manual_fuelcelldischarge

Periods 1-6 discharging allowed?

Changes to this variable may require updating the values of the following:
  • 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

This variable may need to be updated if the values of the following have changed:
  • dispatch_manual_fuelcelldischarge
Type:sequence
dispatch_manual_sched

Dispatch schedule for weekday

Type:sequence[sequence]
dispatch_manual_sched_weekend

Dispatch schedule for weekend

Type:sequence[sequence]
dispatch_manual_units_fc_discharge

Periods 1-6 number of fuel cell units?

This variable may need to be updated if the values of the following have changed:
  • 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]

This variable may need to be updated if the values of the following have changed:
  • 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]

This variable may need to be updated if the values of the following have changed:
  • 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]

This variable may need to be updated if the values of the following have changed:
  • fuelcell_number_of_units
  • fuelcell_unit_max_power
Type:float
fuelcell_dynamic_response_up

Fuel cell ramp rate limit up [kW/h]

This variable may need to be updated if the values of the following have changed:
  • 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]

This variable may need to be updated if the values of the following have changed:
  • fuelcell_fuel_type
Type:float
fuelcell_fuel_price

Fuel cell price [$/MCf]

Type:float
fuelcell_fuel_type

Fuel cell type [0/1]

Changes to this variable may require updating the values of the following:
  • 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]

This variable may need to be updated if the values of the following have changed:
  • fuelcell_fuel_type
Type:float
fuelcell_number_of_units

Fuel cell number of units

Changes to this variable may require updating the values of the following:
  • 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]

Changes to this variable may require updating the values of the following:
  • 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]

This variable may need to be updated if the values of the following have changed:
  • 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_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
fuelcell_annual_energy_discharged

Annual energy from fuelcell [kWh]

Type:sequence
fuelcell_electrical_efficiency

Fuel cell electrical efficiency [%]

Type:sequence
fuelcell_fuel_consumption_mcf

Fuel consumption of fuel cell [MCf]

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