System Engineering Research Package · Engineering Management Research · Technical Performance Monitoring · Prognostics
This repository studies how a projected requirement crossing matures as evidence accumulates. Four NASA lithium ion battery trajectories are monitored at fixed 40, 60, and 80 cycle checkpoints. At every checkpoint, the forecast uses only capacity observations available at that point in time.
- Scientific report
- Empirical study protocol
- Paper blueprint
- Research design
- Analysis plan
- Reproducibility guide
- Data provenance
- Final QA evidence
- How does projected 1.4 Ah threshold timing change at fixed 40, 60, and 80 cycle checkpoints?
- Does aggregate threshold cycle error decrease as more evidence becomes available?
- Is that improvement consistent across cells?
- Can a projected threshold crossing become an actionable looking false warning?
NASA's Li-ion Battery Aging Datasets were collected at the Ames Prognostics Center of Excellence. NASA states that the experiments used an end of life criterion of 30% capacity fade, from 2.0 Ah rated capacity to 1.4 Ah.
Cells in this release:
- B0005
- B0006
- B0007
- B0018
Total packaged discharge observations: 636.
NASA defines Technical Performance Measures as parameters monitored by comparing current achievement or best estimates with expected current and future values in order to identify risk to requirements.
This study applies that logic in a narrow laboratory setting:
capacity margin = measured discharge capacity - 1.4 Ah
Capacity is treated as a performance parameter and the projected threshold cycle as forward looking decision evidence. This is not a claim that capacity alone is a complete system level TPM.
The earlier prototype used the first 60% of each cell's eventual history. That rule required knowing the future observation horizon.
The released analysis instead uses the same fixed checkpoints for every battery:
cycle 40 → cycle 60 → cycle 80
At each checkpoint, ordinary least squares is fitted using only observations available up to that cycle:
capacity = intercept + slope × discharge_cycle
If slope is negative, the line is solved for capacity = 1.4 Ah.
| Checkpoint | MAE across crossing cells | Median absolute error | Mean forecast revision | False early warnings |
|---|---|---|---|---|
| 40 | 102.399 | 18.069 | — | 0 |
| 60 | 35.852 | 9.715 | 100.046 | 0 |
| 80 | 11.942 | 15.566 | 38.012 | 1 |
The aggregate MAE falls substantially, but the improvement is not universal. B0006 moves from only 0.346 cycles of signed error at checkpoint 40 to an early error of 15.566 cycles at checkpoint 80. B0005, by contrast, improves dramatically from 288.782 cycles of error to 20.025 cycles.
That heterogeneity is why the study treats forecast maturity as something to monitor rather than assuming that later automatically means better.
B0005 illustrates large projection movement:
413.782 → 216.817 → 145.025 cycles
Mean absolute forecast revision across all four cells falls from 100.046 cycles for 40→60 to 38.012 cycles for 60→80.
B0007 never reaches 1.4 Ah within its 168 recorded discharge cycles.
At checkpoint 80, however, the linear trend projects a threshold crossing at 158.219 cycles. Because that projection lies inside the observed horizon while no crossing occurs, the release flags it as a false early warning.
The contribution is not a new battery prognostics algorithm. It is a transparent systems engineering demonstration that monitoring should distinguish:
- current margin to a requirement boundary;
- projected timing of margin exhaustion;
- revision of that projection as evidence accumulates;
- realized forecast error or false warning behavior.
Supported: descriptive behavior of the transparent linear baseline on the four NASA cells, fixed checkpoint projections, revisions, cell level errors, aggregate errors, and the B0007 false warning.
Not supported: production BMS performance, calibrated uncertainty, cross chemistry generalization, superiority to modern prognostics, or a complete system level TPM implementation.
Offline:
python -m pip install -r requirements.txt
pytest -q
python run_demo.py
python scripts/generate_figures.pyOfficial NASA source rebuild:
python scripts/fetch_and_analyze.py --checkThe rebuild validates the release pinned NASA archive hash and reconstructs all four battery capacity series and checkpoint forecasts directly from the official archive.
REPORT.md: scientific reportEMPIRICAL_STUDY.md: released protocol and claim boundarydocs/paper_blueprint.md: manuscript structure and draft abstractdocs/analysis_plan.md: estimands and evaluation outputsdocs/research_design.md: systems engineering design and inference scopedocs/data_dictionary.md: derived data definitionsdata/source_manifest.json: canonical source and integrity policydata/derived/cycle_capacity_evidence.csv: complete 636 row capacity evidencedata/derived/checkpoint_results.csv: all 12 checkpoint forecastsdata/derived/checkpoint_aggregate.csv: aggregate forecast maturity metricsresearch/model.py: threshold projection and validation logicscripts/: NASA source rebuild and scientific figure generationtests/: scientific invariants and released result checksQA_REPORT.md: release consistency evidence
The released fixed checkpoint protocol corrects a retrospective horizon dependent prototype. The change is documented openly and the revised design is not represented as preregistered.