GENERATE SYNTHETIC BMS DATA¶
Generates deterministic, BMS-shaped synthetic SSV files for testing and demonstration of battery workers. Select a synthetic_type (capacity_test, cell_imbalance, hppc_pulse, and future types) to emit a structured time-series file plus ground-truth expected_metrics and a generation_summary suitable for assert-against-truth validation pipelines.
When to use¶
Tagged: battery, bms, capacity_test, cell_imbalance, deterministic, fca, generation, hppc_pulse.
Inputs¶
| Label | ID | Type | Default | Required | Description |
|---|---|---|---|---|---|
| Synthetic Type | synthetic_type | select | capacity_test | ✓ | Scenario to generate; choose one of capacity_test, cell_imbalance, or hppc_pulse (active) — cycle_decay, thermal_hotspot, ocv_curve, fault_injection, and mixed_drive_cycle are defined but not yet implemented and will raise an error. |
| Number of cells | n_cells | scalar | 96 | Total number of individual battery cells in the pack (dimensionless integer); default 96 controls how many HVBatCellVlt_XX columns are emitted. | |
| Number of modules | n_modules | scalar | 16 | Number of battery modules in the pack (dimensionless integer); default 16 controls how many HVBatModT_XX temperature columns are emitted. | |
| Nominal capacity Ah | ah_nominal | scalar | 49.5 | Nominal pack capacity in ampere-hours (Ah); default 49.5 Ah — used to compute discharge current from C-rate and expected capacity in expected_metrics. | |
| Nominal pack V | voltage_nominal | scalar | 358.5 | Nominal pack voltage in volts (V); default 358.5 V — sets the mid-point of the synthetic voltage sweep across the discharge window. | |
| Sample rate (Hz) | sample_rate_hz | scalar | 1.0 | Data sampling frequency in hertz (Hz); default 1.0 Hz — determines the number of rows written and the time step between rows. | |
| Duration (s, blank=auto) | duration_s | scalar | — | Override total test duration in seconds (s); leave blank or 0 to let the worker calculate duration automatically from scenario parameters (e.g., C-rate and SoC window for capacity_test). | |
| Random seed | random_seed | scalar | 42 | Integer seed for the mt_rand pseudo-random number generator; default 42 — fixing this value guarantees identical cell-voltage noise and module temperature offsets across runs. | |
| C-rate (capacity_test) | c_rate | scalar | 1.0 | Discharge C-rate for the capacity_test scenario (dimensionless, e.g. 1.0 = 1C); ignored by other scenario types — must be > 0. | |
| SoC start % (capacity_test) | soc_start_pct | scalar | 100 | Starting state-of-charge in percent (%) for the capacity_test scenario; default 100 % — must be strictly greater than soc_end_pct. | |
| SoC end % (capacity_test) | soc_end_pct | scalar | 0 | Ending state-of-charge in percent (%) for the capacity_test scenario; default 0 % — must be strictly less than soc_start_pct. | |
| Pulse amps (hppc_pulse) | pulse_amps | scalar | 200 | Pulse current magnitude in amperes (A) for the hppc_pulse scenario; default 200 A — ignored by other scenario types. | |
| Pulse duration s (hppc_pulse) | pulse_duration_s | scalar | 10 | Duration of each HPPC current pulse in seconds (s) for the hppc_pulse scenario; default 10 s — ignored by other scenario types. | |
| Rest duration s (hppc_pulse) | rest_duration_s | scalar | 60 | Rest period between HPPC pulses in seconds (s) for the hppc_pulse scenario; default 60 s — ignored by other scenario types. | |
| SoC levels % (hppc_pulse) | soc_levels_pct | text | 20,50,80 | Comma-separated list of SoC levels in percent (%) at which HPPC pulses are applied for the hppc_pulse scenario; default ‘20,50,80’ — ignored by other scenario types. | |
| Drift cell id (cell_imbalance) | drift_cell_id | scalar | 42 | 1-based index of the cell that receives a deliberate voltage offset in the cell_imbalance scenario; default 42 — must be between 1 and n_cells; ignored by other scenario types. | |
| Drift mV (cell_imbalance) | drift_mv | scalar | 50 | Magnitude of the voltage drift applied to the drift cell in millivolts (mV) for the cell_imbalance scenario; default 50 mV — ignored by other scenario types. | |
| Output format | output_format | select | ssv | File format of the emitted synthetic data file; default ‘ssv’ produces an FCA BMS SSV file compatible with physicaltest_import_bms_data — additional formats may be available via the select list. | |
| Output filename (blank=tmp) | output_filename | text | — | Absolute path and filename for the output file; leave blank to auto-generate a temp-directory path of the form synth_{type}_{seed}.ssv. |
Outputs¶
| Label | ID | Type | Description |
|---|---|---|---|
| Synthetic file | synthetic_file | file | Generated synthetic BMS data file (SSV or selected format) containing time-series pack voltage, current, SoC, SoH, per-cell voltages, and module temperatures — ready to feed directly into physicaltest_import_bms_data. |
| Expected metrics | expected_metrics | keyvalue | Key-value map of ground-truth KPIs computed analytically during generation (e.g., capacity_ah, energy_wh, c_rate_avg) — use these values in downstream assert-against-truth test steps. |
| Generation summary | generation_summary | keyvalue | Key-value map of generation provenance metadata including rows_emitted, columns_emitted, seed_used, synthetic_type, and file_size_bytes — useful for logging and audit trails. |
Disciplines¶
- data.dataset.ingest
- data.io.file
- engineering.battery
Auto-generated from platform schema. Worker id: bms_generate_synthetic_data. Schema hash: 8e00246a29e6. Hand-curated docs in workerexamples/ override this page when present.