Repository navigation
Add Notton family converter loss models - #4
Merged
Merged
Conversation
Port MolicelNMC cell from legacy simses: 18650 NMC, 1.9 Ah, analytical OCV (sum-of-sigmoids + linear), 1-D Rint LUT in SOC. Legacy ships a temperature- and direction-dependent Rint CSV but every column is identical in the source data, so only the single SOC-keyed curve is bundled. Source: Schuster et al., J. Energy Storage 1 (2015) 44-53. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Port PanasonicNCA cell from legacy simses: 18650 NCA, 2.73 Ah, conservative 0.5 C charge / 3.5 C discharge, analytical OCV (sum-of-sigmoids + linear), 1-D Rint LUT in SOC with separate charge and discharge curves. Ships without a default degradation model (no matching cyclic model available in legacy). Source: Keil et al., J. Electrochem. Soc. 163(9) (2016) A1872-A1880. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Extend CalendarDegradation and CyclicDegradation protocols so update_resistance receives the accumulated resistance rise, symmetric with the existing accumulated_qloss argument on update_capacity. Unlocks aging models with non-linear R rise (e.g. sqrt-time calendar, power-law cyclic) that need virtual-time continuation. Behaviour-preserving: the NoOp stubs and SonyLFP models (linear in time / FEC) simply ignore the new argument. Tests, the extending- degradation example, and the concept + guide docs are updated for the new signature. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Port Molicel NMC calendar + cyclic aging from legacy simses: - Calendar: t^0.75 capacity fade and sqrt(t) resistance rise with virtual-time continuation. Stress factors are 2-D lookups over (SOC, T) valid in T ∈ [10, 50] °C. - Cyclic: Q^0.5562 power law in charge throughput with virtual- throughput continuation for both capacity fade and resistance rise. Stress factors are 1-D lookups over DoD. The legacy model's asymmetric C-rate branching (separate coefficients above 0.5 C for charge vs discharge) is omitted — it requires charge/discharge direction on the HalfCycle, which the detector does not expose. DoD is the dominant stress factor and is preserved. Wired up as MolicelNMC.default_degradation_model so `Battery(MolicelNMC(), ..., degradation=True)` picks it up. Source: Ni Chuanqin (EES, TUM); Schmalstieg et al. 2014. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Port Notton generic parametric PV-inverter loss model: η(p) = p / (p + P0 + K·p²), with three coefficient presets (Type 1, 2, 3) from the reference paper and support for user-supplied coefficients. Follows the SinamicsS120Fit pattern — sample the fit at 201 points (101 per direction, mirrored about zero) at construction, interpolate at runtime so ac_to_dc and dc_to_ac stay numerically invertible. Source: Notton et al., Renewable Energy 35(2) (2010) 541-554. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Port Bonfiglioli RPS TL-4Q converter: Notton-form fit with asymmetric charge/discharge coefficients and a minimum-efficiency floor. Two published coefficient sets are provided: - DATASHEET (default): manufacturer datasheet, symmetric ch/dch. - FIELD_DATA: measured on FCR battery systems, asymmetric; reflects real deployment losses including auxiliary consumption. Source: F. Müller (M.Sc. thesis, TUM); Bonfiglioli RPS TL-4Q datasheet. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Port Sungrow SC1000TL manufacturer-specific fit with asymmetric ch/dch coefficients backed by field data from an FCR BESS. Three fit families selectable via the ``fit`` constructor argument: - notton (default): classic Notton form, with a 0.2092 minimum efficiency floor on the discharge branch. - rampinelli: three-parameter loss polynomial, same discharge floor. - rational: direct rational efficiency curve, no floor needed. Source: field fit by F. Müller (M.Sc. thesis, TUM). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Update the cell-models, converter-models, and API-reference pages for the ported models (MolicelNMC, PanasonicNCA, Notton, Bonfiglioli, Sungrow, and the MolicelNMC degradation pair). Existing chooser-table structure preserved — one row per instance, per-instance description and usage merged into a single section. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Refactor the Notton-form converter family so generic fit classes and specific product classes are cleanly separated: - Notton(P0, K): generic symmetric Notton fit. - AsymmetricNotton(charge, discharge): per-direction (P0, K) pairs. - NottonType1, NottonType2, NottonType3: published inverter presets from Notton et al. 2010 as no-arg Notton subclasses. - Rampinelli(K0, K1, K2): three-parameter generic fit family. - BonfiglioliTL4Q, BonfiglioliTL4QFieldData: datasheet (Notton subclass) and FCR field-data (AsymmetricNotton subclass) variants of the Bonfiglioli RPS TL-4Q. - SungrowSC1000TL: AsymmetricNotton subclass for the Sungrow SC1000TL, reproducing the Notton fit that was the legacy default. Drops the minimum-efficiency floor: the Notton curve is monotonic, well-behaved at low p, and round-trips cleanly through the LUT without it. Drops the internal fit-family selector on Sungrow (Rampinelli and rational-form variants from the thesis are not ported; the original Notton default is). Model names now carry the manufacturer model designation — mirrors SinamicsS120 and makes call sites self-explanatory (``BonfiglioliTL4Q()``, ``SungrowSC1000TL()``). Extract a shared ``_notton_lut`` helper so Notton and AsymmetricNotton deduplicate the sample-and-invert logic. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This reverts commit 63b43d2.
This reverts commit c0147fe.
This reverts commit 0829697.
Follow-up to the MolicelNMC + PanasonicNCA cell reverts: remove the associated sections and registry entries from the cell-models guide, API reference, and extending-cells guide. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Collaborator
Author
|
Only the converter models will be ported (for now) |
This reverts commit 8ccdfc3.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #3