CP=500W at V=50V needs 10A on the load side — if the supply I_limit
is only 20A and the MPPT has conversion losses, this can cause the
supply to current-limit and timeout. The check now catches this upfront:
CP check: 500W / 50V = 10.0A (limit 20.0A) OK
Also raises ValueError if the worst-case current exceeds the limit.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- 2D sweep now supports CC (constant current) and CP (constant power)
load modes via --load-mode flag (CLI) and combobox (GUI)
- Supply capability check before all sweeps: validates max voltage
against supply range and prints V/I/P summary
- Renamed sweep-vi args from --i-start/stop/step to --l-start/stop/step
to reflect that the load setpoint can be current or power
- GUI labels update dynamically based on selected load mode
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Combines three instrument drivers (as git submodules) into a single
testbench for MPPT tracker efficiency testing. Features:
- Voltage sweep and load current sweep with CSV export
- Auto-range aware meter polling (waits for HIOKI to settle)
- Supply keepalive during long meter waits to prevent USB-TMC timeouts
- Live monitoring with real-time 4-panel matplotlib graphs
- Safe shutdown (load first, then supply)
- Post-sweep returns to 75V idle with supply ON
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>