Models API¶
Concrete implementations of cell, converter, degradation, and thermal models.
Cell Models¶
SonyLFP¶
simses.model.cell.sony_lfp.SonyLFP
¶
Bases: CellType
Sony / Murata US26650FTC1 cylindrical LFP cell.
Lithium iron phosphate cell with 3 Ah nominal capacity and 3.2 V
nominal voltage. OCV, hysteresis voltage, and entropic coefficient
are 1-D lookups in SOC; internal resistance is a 2-D lookup in
(SOC, T) with separate charge and discharge tables. Ships a
default degradation model
(:class:~simses.model.degradation.sony_lfp_calendar.SonyLFPCalendarDegradation
+ :class:~simses.model.degradation.sony_lfp_cyclic.SonyLFPCyclicDegradation)
that :class:~simses.battery.battery.Battery picks up when
constructed with degradation=True.
Sources: SONY_US26650FTC1 Product Specification; and Naumann, Maik. Techno-economic evaluation of stationary lithium-ion energy storage systems with special consideration of aging. PhD Thesis, Technical University Munich, 2018.
Source code in src/simses/model/cell/sony_lfp.py
Samsung94AhNMC¶
simses.model.cell.samsung94Ah_nmc.Samsung94AhNMC
¶
Bases: CellType
Samsung 94 Ah prismatic NMC cell.
High-energy lithium nickel-manganese-cobalt-oxide cell typical of
stationary and automotive applications. Analytical OCV(SOC) as a
sum of sigmoids and a linear term; constant internal resistance
(SoC- and temperature-independent).
Source: Collath et al., "Suitability of late-life lithium-ion cells for battery energy storage systems", Journal of Energy Storage 87 (2024) 111508, doi:10.1016/j.est.2024.111508.
Source code in src/simses/model/cell/samsung94Ah_nmc.py
Converter Loss Models¶
FixedEfficiency¶
simses.model.converter.fix_efficiency.FixedEfficiency
¶
Constant-efficiency converter loss model.
Applies a fixed efficiency factor in each direction. Pass a single
float for a symmetric model (same efficiency for charging and
discharging), or a (charge, discharge) tuple for distinct
efficiencies per direction.
Examples:
>>> FixedEfficiency(0.95) # symmetric 95% round-trip factor
>>> FixedEfficiency((0.96, 0.94)) # 96% charging, 94% discharging
Source code in src/simses/model/converter/fix_efficiency.py
__init__(eff)
¶
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
eff
|
float | tuple[float, float]
|
Either a single efficiency in p.u. ( |
required |
Source code in src/simses/model/converter/fix_efficiency.py
Notton¶
simses.model.converter.notton.Notton
¶
Generic parametric PV-inverter loss family — symmetric form.
Efficiency curve of the form η(p) = p / (p + P0 + K·p²) where
p is the magnitude of normalised power (p.u. of the converter's
rated max power). Same coefficients apply to charge and discharge.
For the three published inverter presets see :class:NottonType1,
:class:NottonType2, :class:NottonType3. For Notton-form fits
with per-direction coefficients see :class:AsymmetricNotton.
Source: Notton, G.; Lazarov, V.; Stoyanov, L. (2010). Optimal sizing of a grid-connected PV system for various PV module technologies and inclinations, inverter efficiency characteristics and locations. Renewable Energy 35(2) 541–554, doi:10.1016/j.renene.2009.07.013.
Source code in src/simses/model/converter/notton.py
__init__(P0, K)
¶
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
P0
|
float
|
No-load loss coefficient (p.u.). |
required |
K
|
float
|
Quadratic-loss coefficient (p.u.). |
required |
AsymmetricNotton¶
simses.model.converter.notton.AsymmetricNotton
¶
Notton-form loss family with per-direction coefficients.
Same efficiency law as :class:Notton but with independent charge
and discharge parameter sets — each a (P0, K) pair. Used by
manufacturer product models whose measured efficiency differs
between charging and discharging (e.g. :class:BonfiglioliTL4QFieldData,
:class:SungrowSC1000TL).
Source code in src/simses/model/converter/notton.py
__init__(charge, discharge)
¶
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
charge
|
tuple[float, float]
|
|
required |
discharge
|
tuple[float, float]
|
|
required |
Source code in src/simses/model/converter/notton.py
NottonType1¶
simses.model.converter.notton.NottonType1
¶
Bases: Notton
Notton Type-1 inverter preset (P0 = 0.0145, K = 0.0437).
Source: Notton et al. 2010, Renewable Energy 35(2) 541–554.
Source code in src/simses/model/converter/notton.py
NottonType2¶
simses.model.converter.notton.NottonType2
¶
Bases: Notton
Notton Type-2 inverter preset (P0 = 0.0072, K = 0.0345).
Source: Notton et al. 2010, Renewable Energy 35(2) 541–554.
Source code in src/simses/model/converter/notton.py
NottonType3¶
simses.model.converter.notton.NottonType3
¶
Bases: Notton
Notton Type-3 inverter preset (P0 = 0.0088, K = 0.1149).
Source: Notton et al. 2010, Renewable Energy 35(2) 541–554.
Source code in src/simses/model/converter/notton.py
Rampinelli¶
simses.model.converter.rampinelli.Rampinelli
¶
Generic parametric PV-inverter loss family.
Efficiency curve of the form
η(p) = p / (p + K0 + K1·p + K2·p²)
where p is the magnitude of normalised power (p.u. of the
converter's rated max power). Three-parameter extension of the
Notton form — the extra linear term lets the fit capture a wider
range of measured efficiency curves. Symmetric about zero. The fit
is sampled at 201 points (101 per direction, mirrored about zero)
at construction and interpolated at runtime, so ac_to_dc and
dc_to_ac remain numerical inverses of each other.
Source: Rampinelli, G. A.; Krenzinger, A.; Chenlo Romero, F. (2014). Mathematical models for efficiency of inverters used in grid connected photovoltaic systems. Renewable and Sustainable Energy Reviews 34, 578–587, doi:10.1016/j.rser.2014.03.047.
Source code in src/simses/model/converter/rampinelli.py
__init__(K0, K1, K2)
¶
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
K0
|
float
|
No-load loss coefficient (p.u.). |
required |
K1
|
float
|
Linear loss coefficient (p.u.). |
required |
K2
|
float
|
Quadratic loss coefficient (p.u.). |
required |
Source code in src/simses/model/converter/rampinelli.py
BonfiglioliTL4Q¶
simses.model.converter.bonfiglioli.BonfiglioliTL4Q
¶
Bases: Notton
Bonfiglioli RPS TL-4Q converter — datasheet parameterisation.
Symmetric Notton-form fit with P0 = 0.0072, K = 0.034 measured
under manufacturer datasheet conditions.
See :class:BonfiglioliTL4QFieldData for the asymmetric variant
parameterised from FCR field data.
Source: F. Müller (M.Sc. thesis, TUM) — Notton fit of the
Bonfiglioli RPS TL-4Q datasheet
<http://www.docsbonfiglioli.com/pdf_documents/catalogue/VE_CAT_RTL-4Q_STD_ENG-ITA_R00_5_WEB.pdf>_.
Source code in src/simses/model/converter/bonfiglioli.py
BonfiglioliTL4QFieldData¶
simses.model.converter.bonfiglioli.BonfiglioliTL4QFieldData
¶
Bases: AsymmetricNotton
Bonfiglioli RPS TL-4Q converter — FCR field-data parameterisation.
Asymmetric Notton-form fit measured on frequency containment reserve
(FCR) battery systems; reflects real deployment losses including
auxiliary consumption. Charge: P0 = 0.00195, K = 0.01349.
Discharge: P0 = 0.00292, K = 0.03609.
See :class:BonfiglioliTL4Q for the symmetric datasheet variant.
Source: F. Müller (M.Sc. thesis, TUM) — field fit on FCR BESS deployments of the Bonfiglioli RPS TL-4Q.
Source code in src/simses/model/converter/bonfiglioli.py
SungrowSC1000TL¶
simses.model.converter.sungrow.SungrowSC1000TL
¶
Bases: AsymmetricNotton
Sungrow SC1000TL converter — FCR field-data parameterisation.
Asymmetric Notton-form fit, backed by field data from a frequency
containment reserve storage system. Charge: P0 = 0.007701864,
K = 0.017290859. Discharge: P0 = 0.005511580, K = 0.018772838.
Source: field fit by F. Müller (M.Sc. thesis, TUM) on a Sungrow SC1000TL inverter deployed in an FCR BESS. The thesis also provides Rampinelli and rational-form fits of the same dataset; the Notton fit was the configured default in the legacy simses implementation and is the one reproduced here.
Source code in src/simses/model/converter/sungrow.py
SinamicsS120¶
simses.model.converter.sinamics.SinamicsS120
¶
Siemens Sinamics S120 converter loss model from measured efficiency curves.
Lookup-table model built from a CSV of measured efficiency values for charging (AC→DC) and discharging (DC→AC) at 101 normalised power points. All power arguments are in per-unit of the converter's rated max power.
The CSV carries separate Charging and Discharging curves; in the
bundled measurement data they differ by a mean of 0.23% and a maximum of
0.40% (the discharging curve is systematically ~0.2 efficiency-points
higher).
Source: Schimpe et al., "Energy efficiency evaluation of grid connection scenarios for stationary battery energy storage systems", Energy Procedia 155 (2018) 77–101, doi:10.1016/j.egypro.2018.11.065.
Source code in src/simses/model/converter/sinamics.py
__init__(use_discharging_curve=False)
¶
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
use_discharging_curve
|
bool
|
If |
False
|
Source code in src/simses/model/converter/sinamics.py
SinamicsS120Fit¶
simses.model.converter.sinamics.SinamicsS120Fit
¶
Siemens Sinamics S120 converter loss model from a parametric fit.
Symmetric loss model of the form
loss(p) = k0 × (1 − exp(−m0·|p|)) + k1·|p| + k2·|p|²
where p is normalised power (p.u. of the converter's rated max
power). The coefficients are a least-squares fit to the same
measurement data used by :class:SinamicsS120. At construction the
fit is sampled at 101 points and interpolated at runtime — so the
evaluation cost matches :class:SinamicsS120; the two variants
differ only in how their interpolation points are generated
(parametric fit vs measured CSV).
Source: Schimpe et al., "Energy efficiency evaluation of grid connection scenarios for stationary battery energy storage systems", Energy Procedia 155 (2018) 77–101, doi:10.1016/j.egypro.2018.11.065.
Source code in src/simses/model/converter/sinamics.py
Degradation Models¶
SonyLFP Calendar Degradation¶
simses.model.degradation.sony_lfp_calendar.SonyLFPCalendarDegradation
¶
Bases: CalendarDegradation
Calendar aging for Sony/Murata LFP cells (Naumann 2018).
Capacity loss follows a sqrt(t) model with virtual time continuation. Resistance increase is linear in time.
This model is stateless: accumulated values are owned by the
:class:~simses.degradation.degradation.DegradationModel and passed in
on every call.
Source code in src/simses/model/degradation/sony_lfp_calendar.py
SonyLFP Cyclic Degradation¶
simses.model.degradation.sony_lfp_cyclic.SonyLFPCyclicDegradation
¶
Bases: CyclicDegradation
Cyclic aging for Sony/Murata LFP cells (Naumann 2020).
Capacity loss follows a sqrt(FEC) model with virtual FEC continuation. Resistance increase is linear in FEC.
This model is stateless: accumulated values are owned by the
:class:~simses.degradation.degradation.DegradationModel and passed in
on every call.
Source code in src/simses/model/degradation/sony_lfp_cyclic.py
Thermal Container Presets¶
simses.model.thermal.containers
¶
Predefined ContainerProperties instances for common shipping container sizes.