OverviewFilesCommitsIssuesDocsReleasesPeers

electrical-review / site.yaml

145 lines · yaml ref:
# PRSM electrical-review — single source of design inputs.
# Values below were CONFIRMED against manufacturer datasheets by the review session
# (2026-06-02) and from the owner for run-lengths + NEC cycle. Each block cites its source.
# Discipline (CLAUDE.md): no number in the final design that a script didn't compute.

site:
  name: PRSM off-grid — Northeast Kingdom, VT
  latitude: 44.560508971890144    # CONFIRMED exact array site (owner, 2026-06-03), Greensboro Bend / NEK VT
  longitude: -72.25854044101756   # CONFIRMED exact array site (owner, 2026-06-03)
  nec_cycle: "2023"       # CONFIRMED by owner — VT DPS Division of Fire Safety, NEC 2023 (Art. 690 + 706)
  # vocmax pulls NSRDB extreme temps from lat/lon; these are documented fallbacks:
  design_low_temp_C: -40  # NEK regional record low (Bloomfield VT -45.6C historic); adversarial
                          # review upgraded this from -34 to -40 for a defensible NEC 690.7
                          # "lowest expected ambient". 7S passes at -40 (428V); script takes
                          # min(this, NSRDB) so a colder NSRDB value would still bind.
  design_high_temp_C: 31  # ASHRAE 2% high — drives ampacity ambient correction

panel:                    # Waaree Elite Series N-Type BiN-08-575 (Grade B "BIN-08-575B")
                          # SOURCE: Waaree USA datasheet elite-series-bin-08.pdf; cross-checked Missouri W&S, A1SolarStore
  model: "Waaree Elite BiN-08-575 — 144 half-cut N-type TOPCon bifacial dual-glass (Grade B)"
  pmp_w: 575
  voc_v: 52.30            # CONFIRMED (front-side STC). NOT the 108-cell BiN-01 (39.91V).
  vmp_v: 43.86            # CONFIRMED
  isc_a: 13.87            # CONFIRMED
  imp_a: 13.11            # CONFIRMED
  voc_tempco_pct_per_C: -0.26    # CONFIRMED (Waaree thermal table) — CRITICAL for cold Voc
  isc_tempco_pct_per_C: 0.046    # CONFIRMED
  pmax_tempco_pct_per_C: -0.30   # CONFIRMED (used to model Vmp temp behavior w/ pvlib)
  max_system_voltage_v: 1500     # CONFIRMED (DC1500V IEC/UL) — module not the binding limit
  series_fuse_a: 30              # CONFIRMED max series fuse rating (datasheet)
  cells: 144              # 144 half-cut = 72 electrical cells in series
  cells_electrical_series: 72
  efficiency_pct: 22.26
  noct_c: 43
  bifaciality: 0.80               # 80% (datasheet)
  bifacial_rear_fraction: 0.20    # conservative rear:front irradiance for cold-Voc adder
                                  # (ground-mount albedo); raises open-circuit V — see 01

array:
  active_kw_target: 8.0   # ~8 kW now (rest of pallet = future, not wired)
  module_count: 14        # 14 x 575W = 8050 W DC — session validates final count/strings
  array_type: "fixed_open_rack"   # PVWatts array_type=0 (ground mount)
  tilt_deg: 50            # CONFIRM with owner (winter-optimized); affects production only
  azimuth_deg: 180        # true south
  gcr: 0.30               # ground-coverage ratio for bifacial rear-gain (PVWatts v8).
                          # Phase-1 = SINGLE ROW (2-high x 7-wide) -> low row-shading -> high rear gain.
                          # ASSUMPTION (layout, not datasheet): true single-row gain is >= this. See 15_tilt_sweep.

inverter:                 # EG4 6000XP — SOURCE: EG4-6000XP Manual + Spec Sheet v1.4.4 (eg4electronics.com)
  model: "EG4 6000XP"
  mppt_count: 2
  pv_max_voc_v: 500       # CONFIRMED absolute "do-not-exceed" PV Voc (warranty void above)
  pv_design_voc_ceiling_v: 480  # CONFIRMED top of recommended DC input range — cold-Voc design target
  mppt_v_min: 120         # CONFIRMED MPPT tracking low
  mppt_v_max: 385         # CONFIRMED MPPT tracking high (NOT the Voc ceiling)
  pv_startup_v: 100       # CONFIRMED (+/-10)
  pv_max_input_a_per_mppt: 17    # CONFIRMED max usable input current per MPPT
  pv_max_isc_a_per_mppt: 25      # CONFIRMED Isc rating per MPPT
  pv_max_power_w: 8000           # CONFIRMED max usable PV (4000 W per MPPT)
  pv_max_power_w_per_mppt: 4000  # CONFIRMED
  pv_rec_max_power_w: 10000      # CONFIRMED oversizing allowance
  ac_continuous_w: 6000          # CONFIRMED
  ac_surge_w: 12000              # CONFIRMED (~3.5 s; 11000 W ~5 s)
  ac_voltage: "120/240 split-phase"
  ac_cont_a_per_leg: 25          # CONFIRMED (25 A across 240V split-phase)
  ac_input_passthrough_a: 50     # CONFIRMED grid/gen bypass
  batt_max_charge_a: 125         # CONFIRMED (125 A from PV; 115 A from AC)
  batt_max_discharge_a: 140      # CONFIRMED inverter-side battery discharge limit
  discharge_eff: 0.93            # CONFIRMED battery->AC discharge efficiency (93%)
  mppt_eff: 0.99                 # CONFIRMED peak MPPT efficiency
  has_dc_disconnect: true        # CONFIRMED integrated DC switch per MPPT
  has_rapid_shutdown: true       # CONFIRMED RSD initiator built in (external E-stop not included)
  has_dc_afci: true              # CONFIRMED integrated PV AFCI
  has_dc_gfdi: true              # CONFIRMED PV ground-fault / isolation protection

battery:                  # Docan S3 16 kWh — SOURCE: Docan listing + JK-PB2A16S20P datasheet + EVE MB31 cell datasheet
  model: "Docan S3 16 kWh (51.2V 314Ah, 16S1P EVE MB31, JK-PB2A16S20P 'V19' BMS)"
  nominal_v: 51.2
  charge_cutoff_v: 58.4   # CONFIRMED (16 x 3.65V)
  discharge_cutoff_v: 40  # CONFIRMED (16 x 2.5V) — vendor pack cutoff
  capacity_ah: 314        # CONFIRMED (EVE MB31 nominal)
  usable_kwh: 16.08       # CONFIRMED (51.2 x 314 / 1000)
  config: "16S1P"
  cell_type: "EVE MB31 314Ah Grade A LiFePO4"
  dod_design: 0.80        # LiFePO4 design depth-of-discharge for runtime
  bms_continuous_a: 200       # marketed/JK config max — SOFT (see cell_continuous_a)
  bms_recommended_a: 150      # vendor recommended continuous
  bms_discharge_ocp_a: 150    # CONFIRMED JK datasheet discharge over-current trip (300 s delay)
  bms_ocp_delay_s: 300        # CONFIRMED
  bms_short_circuit_a: 300    # CONFIRMED JK short-circuit trip (20 us)
  cell_continuous_a: 157      # CONFIRMED EVE MB31 0.5P continuous ceiling (16S1P => pack ceiling)
  bms_continuous_charge_a: 150
  bms_low_temp_charge_cutoff_c: -20   # CONFIRMED BMS; EVE cell only rated charge >=0C
  heating: true          # CONFIRMED by owner (2026-06-02): battery heating is PROPANE-based, on a
                         # separate (non-electrical) budget. Warms cells into the >=0C charge window
                         # -> pack charges through NEK winter. NO parasitic electrical load on the
                         # array/battery. Discharge/fuse/cable sizing unaffected. Heating itself out of
                         # electrical scope (like structure/mounting).
  comms: "RS485 x2 + CAN(250k) + RS232 + BT; EG4 closed-loop via JK CAN=Pylontech, 6000XP 'Pylontech 2'"
  jk_firmware: "V19 (JK-PB2A16S20P / 16S200A2B)"

# One-way conductor run lengths in FEET — CONFIRMED by owner (2026-06-02).
runs_ft:
  array_to_combiner: 0        # No combiner box: EG4 takes one string per MPPT direct (mfr "no combiner needed")
  combiner_to_inverter: 200   # owner: 150-250 ft trench; DESIGN at 200, script sweeps 150/200/250
  inverter_to_battery: 10     # owner: 5-10 ft; design at 10 (conservative for Vdrop at ~126 A)
  inverter_to_loads: 10       # owner: <10 ft AC to subfed main panel (Swarm §17)
dc_run_sweep_ft: [150, 200, 250]   # report DC Vdrop across the owner's stated range

targets:
  vdrop_dc_pct_max: 2.0
  vdrop_battery_pct_max: 1.0
  vdrop_ac_pct_max: 2.0

# ============================================================================
# PHASE 2 — THE BUILD (Path A: 2x EG4 6000XP, 28 panels 4x7S + 3 spares, 2-pack bank)
# ----------------------------------------------------------------------------
# Owner decisions (CONFIRMED 2026-06-03):
#   - SELECTED BUILD = add a 2nd EG4 6000XP (keep the existing one), 28 panels (4x7S),
#     3 panels held as spares. Computed by scripts/11_pathA.py; deliverables in
#     artifacts/phase2/. (Picked for spares + N+1 redundancy + lower cost.)
#   - 2x Docan S3 packs (Swarm §6 minimum; 25.7 kWh usable).
#   - Battery adjacent to inverter (~10 ft, as Phase-1); 200 ft trench reused.
#
# This phase2: block holds Phase-2-only inputs read directly via dotted keys
# (phase2.array.gcr for the multi-row bifacial rear-gain, phase2.runs_ft for the
# build's run lengths). The Phase-2 inverters are 2x the BASE inverter: block (6000XP).
# ============================================================================
phase2:
  array:
    module_count: 31        # full Waaree pallet (28 wired 4x7S + 3 spares)
    active_kw_target: 16.1  # 28 x 575 W wired
    gcr: 0.40               # MULTI-ROW Phase-2 ground-coverage ratio for bifacial rear-gain.
                            # ASSUMPTION (layout, not datasheet): higher than Phase-1's single-row 0.30
                            # (rows shade each other's rear) -> LOWER per-panel rear gain; conservative.
                            # Re-run 09/11 with the confirmed row pitch once the Phase-2 layout is set.

  # One-way run lengths in FEET — CONFIRMED by owner (2026-06-03). Read by 11/12/14.
  runs_ft:
    array_to_combiner: 0          # no combiner: each 6000XP takes strings direct to its MPPT inputs
    combiner_to_inverter: 200     # remaining panels co-located w/ Phase-1 array; reuse the 150-250 ft trench (design 200)
    pack_to_busbar: 5             # each pack -> bank busbar, short
    inverter_to_battery: 10       # busbar/bank -> inverters, adjacent (~10 ft, as Phase-1); design at 10
    inverter_to_loads: 10         # inverter AC -> subfed main panel, <10 ft (Swarm §17)