Source: https://guthlabs.ai/docs/instruments/solar-charge-controller-sizing-pwm-mppt/mechanism/

instrument mechanism / verified-clean

# Solar Charge Controller Sizing (PWM/MPPT) mechanism

The inspectable method record for Solar Charge Controller Sizing (PWM/MPPT), kept separate from implementation and qualification.

Status: **VERIFIED_CLEAN**Lifecycle: **verified-clean**

## Model scope

The existing honest label is appropriate but should explicitly state that this is not a complete MPPT-window or controller-capacity determination. To pass, define series/parallel aggregation, require cold-corrected Voc from module datasheet temperature coefficients, check both MPPT voltage limits using array Vmp and temperature conditions, and define whether current sizing is PV-input current or regulated battery-output current.

- Icontroller ≥ Isc × 1.25 is a valid NEC-style minimum-current estimate only if Isc is the total array short-circuit current in amperes and the controller rating being checked is the applicable current rating. It does not by itself verify charge-controller output-current sizing from array power and battery voltage.

- Voc_string < controller max Vin checks only the upper voltage limit. It is not a complete MPPT input-voltage-window check because the controller's minimum MPPT voltage and the array's operating Vmp are missing.

- The formula requires Voc_string at the coldest expected temperature, but no cold-temperature correction formula or required datasheet coefficient is provided. A nominal or STC Voc is insufficient for the maximum-voltage check.

- The specification does not define how Isc and Voc are aggregated for series and parallel strings. Isc normally adds across parallel strings, while Voc adds across series-connected modules.

- The strict less-than comparison is conservative at the controller maximum-voltage boundary, but the specification should explicitly state whether manufacturer-required voltage margin is also required.

## Units and conventions

- Isc is the total array short-circuit current, expressed in amperes.

- Voc_string and controller max Vin use the same voltage unit, volts, and Voc_string is the cold-corrected maximum open-circuit voltage of the complete series string.

- The 1.25 factor is dimensionless.

- The controller current rating is assumed to be compared directly with the calculated 1.25 × Isc value; actual controller output-current sizing may additionally require array power, battery voltage, and controller efficiency or manufacturer limits.

- A complete MPPT-window check would require controller minimum and maximum MPPT voltages plus array Vmp under relevant temperature conditions.

## Inspectable vector

One of 4 source-bound review vectors:

````
{
  "inputs": {
    "array_Isc_A": 10.8,
    "cold_corrected_string_Voc_V": 41.2,
    "controller_max_input_voltage_V": 60
  },
  "expected_outputs": {
    "required_controller_current_A": 13.5,
    "maximum_voltage_check": "PASS"
  },
  "working": "Required current = Isc × 1.25 = 10.8 A × 1.25 = 10.8 A + (10.8 A × 0.25) = 10.8 A + 2.7 A = 13.5 A. Voltage check: 41.2 V < 60 V, so PASS."
}
````

## Failure boundary

**BREAK_CLAIMED** · SELF_FLAGGED

An extreme but numerically valid Isc input produces Infinity in JavaScript arithmetic, and a negative signed Isc can produce an invalid negative required rating unless the instrument explicitly applies a magnitude convention. Exact voltage equality also correctly fails because the specified comparison is strict.

## Other records

[01**Overview**](<https://guthlabs.ai/docs/instruments/solar-charge-controller-sizing-pwm-mppt/>)[03**Implementation**](<https://guthlabs.ai/docs/instruments/solar-charge-controller-sizing-pwm-mppt/implementation/>)[04**Qualification**](<https://guthlabs.ai/docs/instruments/solar-charge-controller-sizing-pwm-mppt/qualification/>)

## Sources and evidence

These pointers bind the page to evidence. They do not grant authority or collapse verification into deployment.

- `VERIFIED_LEDGER.json`

- `evidence-tranche4/tranche4-results.json`

- `BOUNDARY_HAZARD_CATALOG.json`
