H↗ HelioForge

WORKED MODEL / TERMINAL

Check one synthetic noon balance by hand.

The browser Terminal uses a 24-step, one-hour, single-bus PV, battery and grid recurrence. This example checks the noon row; it does not claim to hand-validate the whole 24-hour run.

Inputs for the worked row

Set pvKw = 2, loadKw = 1, batteryKwh = 0, batteryKw = 0, and gridKw = 1. Leave the round-trip efficiency and SOC fractions at valid defaults. Set exportPrice = 0.05 EUR/kWh. These are synthetic teaching inputs.

Calculate hour 12

  1. The Terminal load shape is 0.8 + 0.2 × (0.5 + 0.5 × cos((h − 19) × 2π / 24)). At h = 12, cos(−7π/12) ≈ −0.258819, so load is approximately 0.874118 kW.
  2. The PV shape is pvKw × max(0, sin(π × (h − 6) / 12)). At hour 12 it reaches 2 kW.
  3. Direct PV serves the 0.874118 kW load. Surplus is 2 − 0.874118 = 1.125882 kW.
  4. There is no battery. The 1 kW grid limit exports 1 kW, and the remainder is curtailed: 1.125882 − 1 = 0.125882 kW.
Hour 12 arithmetic, values rounded to 6 decimal places
QuantityValueUnit
PV2.000000kW
Served load0.874118kW
Grid export1.000000kW
Curtailment0.125882kW
Unserved load, battery charge and battery discharge0kW
Bus residual2 − 0.874118 − 1 − 0.125882 = 0kW

Interpret the check carefully

This verifies one row’s arithmetic against the declared shapes and dispatch order. It is not an independent model comparison. The complete run uses all 24 synthetic hours, has no terminal-SOC target, and is not an optimizer. Do not multiply its daily cost by 365 or infer real weather, reliability, voltage, frequency, protection or operational readiness.

For the exact formulas, bounds and missing physics, read the Terminal analytical model. The implementation lives in Python source and browser source; regression cases are in test_terminal.py.

Continue with the model and evidence glossary, the delivery-mode guide, or the hybrid study registry.