Main Content

Datasheet Battery

Lithium-ion, lithium-polymer, or lead-acid battery

  • Datasheet Battery block

Libraries:
Powertrain Blockset / Energy Storage and Auxiliary Drive / Datasheet Battery

Description

The Datasheet Battery block implements a lithium-ion, lithium-polymer, or lead-acid battery that you can parameterize using manufacturer data. To create the open-circuit voltage and internal resistance parameters that you need for the block, use the manufacturer discharge characteristics by temperature data. For an example, see Generate Parameter Data for Datasheet Battery Block.

To determine the battery output voltage, the block uses lookup tables for the battery open-circuit voltage and the internal resistance. The lookup tables are functions of the state-of charge (SOC) and battery temperature, characterizing the battery performance at various operating points:

Em=f(SOC)Rint=f(T,SOC)

To calculate the voltage, the block implements these equations.

VT=EmIbattRintIbatt=IinNpVout={NsVT     unfilteredVoutτs+1          filteredSOC=SOCo1Capbatt0tIbattdtLdAmpHr=0tIbattdt

Positive current indicates battery discharge. Negative current indicates battery charge.

Power Accounting

For the power accounting, the block implements these equations.

Bus Signal DescriptionEquations

PwrInfo

PwrTrnsfrd — Power transferred between blocks

  • Positive signals indicate flow into block

  • Negative signals indicate flow out of block

PwrLdBatt

Battery network power

Vbatt=Vout   OR  Voutτs+1Pbatt=VbattIbattPLdBatt= Pbatt

PwrNotTrnsfrd — Power crossing the block boundary, but not transferred

  • Positive signals indicate an input

  • Negative signals indicate a loss

PwrLossBatt

Battery network power loss

PLossBatt=NpNsIbatt2Rint

PwrStored — Stored energy rate of change

  • Positive signals indicate an increase

  • Negative signals indicate a decrease

PwrStoredBatt

Battery network power stored

PStoredBatt=PBatt+PLossBatt

The equations use these variables.

SOC

State-of-charge

SOCo

Initial state-of-charge

Em

Battery open-circuit voltage

Ibatt

Per module battery current

PLdBatt

Battery network power

Pbatt

Battery power

PLossBatt

Battery network power loss

PStoredBatt

Battery network power stored

Iin

Combined current flowing from the battery network

Rint

Battery internal resistance

Ns

Number of cells in series

Np

Number of cells in parallel

Vout, Vbatt

Combined voltage of the battery network

VT

Per module battery voltage

Capbatt

Battery capacity

LdAmpHr

Battery energy

Examples

Ports

Inputs

expand all

Rated battery capacity at the nominal temperature, Capbatt, in Ah.

Dependencies

To create this port, select External Input for the Initial battery capacity parameter.

Combined current flowing from the battery network, Iin, in A.

Temperature measured at the battery housing, T, in K.

Output

expand all

Bus signal containing these block calculations.

SignalDescriptionVariableUnits

BattCurr

Combined current flowing from the battery network

Ibatt

A

BattAmpHr

Battery energy

LdAmpHr

A*h

BattSoc

State-of-charge capacity

SOC

NA

BattVolt

Combined voltage of the battery network

VoutV

BattPwr

Battery network power

Pbatt

W

PwrInfo

PwrTrnsfrd

PwrLdBatt

Battery network power

PLdBatt

W

PwrNotTrnsfrd

PwrLossBatt

Battery network power loss

PLossBatt

W

PwrStored

PwrStoredBatt

Battery network power stored

PStoredBatt

W

Combined voltage of the battery network, Vout, in V.

Parameters

expand all

Block Options

Initial battery capacity, Capbatt, in Ah.

Programmatic Use

To set the block parameter value programmatically, use the set_param function.

To get the block parameter value programmatically, use the get_param function.

Parameter: CapacityCtrl
Values: Parameter (default) | External Input
Data Types: character vector

Dependencies

Block Parameter Initial battery capacity Option

Creates

External Input

Input port CapInit
ParameterParameter Initial battery capacity, BattCapInit

Select Filtered to apply a first-order filter to the output batter voltage.

Programmatic Use

To set the block parameter value programmatically, use the set_param function.

To get the block parameter value programmatically, use the get_param function.

Parameter: OutputVlt
Values: Unfiltered (default) | Filtered
Data Types: character vector

Dependencies

Setting Output battery voltage parameter to Filtered creates these parameters:

  • Output battery voltage time constant, Tc

  • Output battery voltage initial value, Vinit

Rated battery capacity at the nominal temperature, in Ah.

Programmatic Use

To set the block parameter value programmatically, use the set_param function.

To get the block parameter value programmatically, use the get_param function.

Parameter: BattChargeMax
Values: 100 (default) | scalar
Data Types: double

Open-circuit voltage data curve, Em, as a function of the discharged capacity for P operating points, in V.

Programmatic Use

To set the block parameter value programmatically, use the set_param function.

To get the block parameter value programmatically, use the get_param function.

Parameter: Em
Values: 1-by-P matrix
Data Types: double

Discharge capacity breakpoints for P operating points, dimensionless.

Although this parameter is the same as the State of charge breakpoints for internal resistance, SOCRintBp parameter, the block uses unique parameters for calibration flexibility.

Programmatic Use

To set the block parameter value programmatically, use the set_param function.

To get the block parameter value programmatically, use the get_param function.

Parameter: SOCEmBp
Values: 1-by-P matrix
Data Types: double

Internal resistance map, Rint, as a function of N temperatures and M SOCs, in ohms.

Programmatic Use

To set the block parameter value programmatically, use the set_param function.

To get the block parameter value programmatically, use the get_param function.

Parameter: RInt
Values: N-by-M matrix
Data Types: double

Battery temperature breakpoints for N temperatures, in K.

Programmatic Use

To set the block parameter value programmatically, use the set_param function.

To get the block parameter value programmatically, use the get_param function.

Parameter: BattTempBp
Values: [243.1 253.1 263.1 273.1 283.1 298.1 313.1] (default) | 1-by-N matrix
Data Types: double

Battery capacity breakpoints for M SOCs, dimensionless.

Although this parameter is the same as the State of charge breakpoints for open circuit voltage, SOCEmBp parameter, the block uses unique parameters for calibration flexibility.

Programmatic Use

To set the block parameter value programmatically, use the set_param function.

To get the block parameter value programmatically, use the get_param function.

Parameter: SOCRintBp
Values: [0 0.2 0.4 0.6 0.8 1] (default) | 1-by-M matrix
Data Types: double

Number of cells in series, dimensionless, Ns.

Programmatic Use

To set the block parameter value programmatically, use the set_param function.

To get the block parameter value programmatically, use the get_param function.

Parameter: Ns
Values: 1 (default) | scalar
Data Types: double

Number of cells in parallel, dimensionless, Np.

Programmatic Use

To set the block parameter value programmatically, use the set_param function.

To get the block parameter value programmatically, use the get_param function.

Parameter: Np
Values: 1 (default) | scalar
Data Types: double

Initial battery capacity, Capbatt, in Ah.

Programmatic Use

To set the block parameter value programmatically, use the set_param function.

To get the block parameter value programmatically, use the get_param function.

Parameter: BattCapInit
Values: 100 (default) | scalar
Data Types: double

Dependencies

Block Parameter Initial battery capacity Option

Creates

External Input

Input port CapInit
ParameterParameter Initial battery capacity, BattCapInit

Output battery voltage time constant, Tc, in s. Used in a first-order voltage filter.

Programmatic Use

To set the block parameter value programmatically, use the set_param function.

To get the block parameter value programmatically, use the get_param function.

Parameter: Tc
Values: -1 (default) | scalar
Data Types: double

Dependencies

Setting Output battery voltage parameter to Filtered creates these parameters:

  • Output battery voltage time constant, Tc

  • Output battery voltage initial value, Vinit

Output battery voltage initial value, Vinit, in V. Used in a first-order voltage filter.

Programmatic Use

To set the block parameter value programmatically, use the set_param function.

To get the block parameter value programmatically, use the get_param function.

Parameter: Vinit
Values: -1 (default) | scalar
Data Types: double

Dependencies

Setting Output battery voltage parameter to Filtered creates these parameters:

  • Output battery voltage time constant, Tc

  • Output battery voltage initial value, Vinit

References

[1] Arrhenius, S.A. “Über die Dissociationswärme und den Einflusß der Temperatur auf den Dissociationsgrad der Elektrolyte.” Journal of Physical Chemistry. 4 (1889): 96–116.

[2] Connors, K. Chemical Kinetics. New York: VCH Publishers, 1990.

[3] Ji, Yan, Yancheng Zhang, and Chao-Yang Wang. Journal of the Electrochemical Society. Volume 160, Issue 4 (2013), A636-A649.

Extended Capabilities

expand all

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

Version History

Introduced in R2017a

expand all