Per user: each stage's energy source is now a bank of real capacitors, n_series x n_parallel, not a single cap. - components/schema.py CapacitorBank.from_spec: series multiplies voltage and ESR and divides capacitance; parallel multiplies capacitance and max current and divides ESR; price and count scale with total cap count. Duck-typed as a drop-in for CapacitorSpec in StageConfig. - search_space: cap_series (1-6) and cap_parallel (1-8) per stage gene, sampled/mutated/repaired; decode builds the bank; charge voltage capped by min(bank voltage, switch rating) - objective.build_detail records the full bank composition (base part, series/parallel, count, totals) and current-capability diagnostics: bank_current_over_limit / switch_current_over_limit vs peak discharge current (a warning, not a hard reject -- DB holds datasheet not pulse ratings; parallel caps already help for real via lower ESR) - BOM shows "N шт (Sпосл × Pпар)" with per-unit and total price Already supported and confirmed present (also user-requested): per-coil independent wire gauge (wire_idx per stage) and computed wire length (winding_geometry.total_wire_length_m, drives resistance/cost/DB detail). 83 tests pass. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
3.5 KiB
3.5 KiB