主要内容

Fuel Cell (Table-Based)

R2026b

Tabulated fuel cell model

Since R2026b

  • Fuel Cell (Table-Based) block

Libraries:
Simscape / Battery / Fuel Cell

Description

The Fuel Cell (Table-Based) block models a fuel cell stack, using a voltage-current (V-I) curve that maps the stack current to the single‑cell voltage. The block calculates the stack voltage as the product of the number of cells and the interpolated single‑cell voltage from the V–I curve.

You can also model first-order voltage dynamics and fuel consumption estimation for multiple fuel types, including hydrogen, syngas, ammonia, methane, and methanol.

Voltage Determination

The block obtains the single-cell voltage by interpolating the V-I table at the instantaneous stack current. The stack voltage is:

Vstack=Ncells⋅Vcell(I),

where:

  • Ncells is the number of cells in the stack and is equal to the value of the Number of cells in stack parameter.

  • Vcell(I) is the single-cell voltage at the instantaneous stack current (I).

When you enable first-order voltage dynamics by setting the Overpotential dynamics parameter to Time constant, the block aggregates the activation and concentration overpotential transient as a single lumped time constant. The stack voltage is then:

τ⋅dVstackdt+Vstack=Ncells⋅Vcell(I),

where τ is the time constant for the dynamics and is equal to the value of the Time constant for dynamics parameter.

Reverse Current Protection

To prevent the current from flowing backward in the fuel cell stack, the block models an internal ideal diode. The diode switches from the on state to the off state when the current drops to zero. When the forward voltage becomes positive, the diode switches from the off state to the on state.

Fuel Consumption

The block computes the fuel consumption by using Faraday's law. By assuming 100% fuel utilization, the block computes the minimum fuel flow that is required to sustain the electrical output.

To specify the type of fuel that the block consumes, use the Fuel parameter. The fuel type determines the molar mass, electron count, and theoretical maximum voltage.

FuelTheoretical Maximum Cell VoltageElectrons Transferred per Molecule of Fuel
Hydrogen

1.25 V

2
Syngas

1.36 V

2
Methane

1.04 V

8
Ammonia

1.09 V

3
Methanol

1.10 V

6

Heat Generation

The block reports the difference between the theoretical no-loss power and the actual electrical power output as heat:

Qgen=Ncells⋅(Vno-loss−Vactual)⋅I,

where Vno-loss is the theoretical maximum cell voltage.

This heat represents aggregated activation, ohmic, and concentration losses.

Variables

To set the priority and initial target values for the block variables before simulation, use the Initial Targets section in the block dialog box or Property Inspector. For more information, see Set Priority and Initial Target for Block Variables.

Nominal values provide a way to specify the expected magnitude of a variable in a model. Using system scaling based on nominal values increases the simulation robustness. You can specify nominal values using different sources, including the Nominal Values section in the block dialog box or Property Inspector. For more information, see System Scaling by Nominal Values.

Ports

Conserving

expand all

Electrical conserving port associated with the positive terminal of the fuel cell.

Electrical conserving port associated with the negative terminal of the fuel cell.

Parameters

expand all

To edit block parameters interactively, use the Property Inspector. From the Simulink® Toolstrip, on the Simulation tab, in the Prepare gallery, select Property Inspector.

Stack Parameters

Number of cells in the fuel cell stack.

Programmatic Use

Parameter: NumCells
Values: positive scalar in quotes

Example: set_param(gcb,NumCells="200")

Voltage-Current Characteristics

Current breakpoints at which you specify the lookup data. The elements in this vector must be monotonically increasing. The size of this vector must be equal to the size of the Cell voltage data parameter vector.

Programmatic Use

Parameter: CurrentBreakpoints
Values: vector of nonnegative scalars in quotes

Example: set_param(gcb,CurrentBreakpoints="[0, 10, 20, 40, 60, 80, 100, 120, 140, 160]")

Lookup table data for the cell voltage at the specified current breakpoints. The size of this vector must be equal to the size of the Current breakpoints parameter vector.

Programmatic Use

Parameter: CellVoltageTable
Values: vector of nonnegative scalars in quotes

Example: set_param(gcb,CellVoltageTable="[1.03, .92, .87, .82, .78, .74, .7, .65, .58, .4]")

Current upper limit.

Programmatic Use

Parameter: MaximumCurrent
Values: positive scalar in quotes

Example: set_param(gcb,MaximumCurrent="180")

Option to include the overpotential dynamics. If you set this parameter to Time constant, you include the overpotential dynamics and the Time constant for dynamics parameter determines the time constant.

Programmatic Use

Parameter: DynamicsModel
Values: "simscape.battery.enum.fuelcell.DynamicsModel.timeConstant" | "simscape.battery.enum.fuelcell.DynamicsModel.none"

Example: set_param(gcb,DynamicsModel="simscape.battery.enum.fuelcell.DynamicsModel.timeConstant")

Time constant for the overpotential dynamics.

Dependencies

To enable this parameter, set Overpotential dynamics to Time constant.

Programmatic Use

Parameter: TimeConstant
Values: nonnegative scalar in quotes

Example: set_param(gcb,TimeConstant="100")

Energy Model

Type of fuel that the cell consumes.

Programmatic Use

Parameter: Fuel
Values: "simscape.battery.enum.fuelcell.FuelCellFuel.hydrogen" | "simscape.battery.enum.fuelcell.FuelCellFuel.syngas" | "simscape.battery.enum.fuelcell.FuelCellFuel.methane" | "simscape.battery.enum.fuelcell.FuelCellFuel.ammonia" | "simscape.battery.enum.fuelcell.FuelCellFuel.methanol"

Example: set_param(gcb,Fuel="simscape.battery.enum.fuelcell.FuelCellFuel.hydrogen")

Minimum and maximum limit for the cell voltage.

Programmatic Use

Parameter: CellVoltageRange
Values: positive scalar in quotes

Example: set_param(gcb,CellVoltageRange="[0, 1.25]")

References

[1] Dicks, Andrew L., and David A. J. Rand. "Fuel Cell Systems Explained". 3rd ed. Hoboken, NJ: Wiley, 2018. https://doi.org/10.1002/9781118706992.

Extended Capabilities

expand all

C/C++ Code Generation
Generate C and C++ code using Simulink® Coder™.

Version History

Introduced in R2026b

See Also

| (Simscape Electrical)