Help

UPS Selection & Battery Sizing

Jump to section

Overview

Sizes uninterruptible power supply (UPS) systems and battery banks for backup power applications per IEC 62040, IEEE 446, and IEEE 485. The calculator determines the required UPS kVA rating (with safety and growth factors), selects the next standard frame size, configures the battery string (series × parallel), computes the Peukert discharge time at the actual battery current, applies derating factors (depth of discharge, end-of-life, temperature, aging), and computes backup runtime at full and partial loads. Supports seven battery technologies (VRLA-AGM, VRLA-Gel, Li-ion LiFePO4, Li-ion NMC, NiCd) and four redundancy configurations (N, N+1, 2N, Distributed Redundant).

Key capabilities:

  • Equipment-list or simple total-load input modes
  • Automatic selection of next larger standard UPS rating (single-phase or three-phase)
  • Battery capacity derating per IEEE 485 (DoD, EOL, temperature, aging, Peukert)
  • Runtime vs. load curve generation at 25%, 50%, 75%, and 100% load
  • Physical estimates: battery weight, UPS weight, total system weight
  • System availability estimates based on redundancy configuration
  • SVG system diagram and runtime chart generation

Input Parameters

Load Input Mode

Parameter Type Default Range Description
use_simple_load Boolean false — Use total load values instead of equipment list
equipment_list JSON string 1 × Server — JSON array of equipment objects (name, quantity, power_w, power_va, power_factor, category, load_profile, inrush_factor). Hidden when use_simple_load is true.
total_load_kw Number 10.0 0.1 – 10,000 kW Total active power load. Hidden when use_simple_load is false.
total_load_kva Number 12.5 0.1 – 10,000 kVA Total apparent power load. Hidden when use_simple_load is false.

UPS Configuration

Parameter Type Default Range Description
ups_topology Enum Online/Double-Conversion (VFI) — Offline/Standby (VFD), Line-Interactive, Online/Double-Conversion (VFI), Delta Conversion
input_voltage Enum 400 V 120 / 208 / 230 / 240 / 400 / 415 / 480 Nominal input voltage (L-L for 3-phase systems)
output_voltage Enum 400 V 120 / 208 / 230 / 240 / 400 / 415 / 480 Nominal output voltage (L-L for 3-phase systems). Must suit output_phases.
output_phases Enum 3 1 / 3 Single-phase (120 / 208 / 230 / 240 V) or three-phase line-to-line (208 / 400 / 415 / 480 V) output; selects the rating list
frequency Enum 50 Hz 50 / 60 System frequency
redundancy_config Enum N N / N+1 / 2N / Distributed Redundant UPS redundancy level

Runtime Requirements

Parameter Type Default Range Description
target_runtime_minutes Number 15 1 – 1440 min Required backup time at full load

Battery Configuration

Parameter Type Default Range Description
battery_technology Enum VRLA-AGM (5–10 year) — VRLA-AGM (3–5 yr), VRLA-AGM (5–10 yr), VRLA-Gel (5–10 yr), VRLA-Gel (10–15 yr), Li-ion LiFePO4, Li-ion NMC, NiCd
dc_bus_voltage Enum 384 V 12 / 24 / 48 / 60 / 120 / 240 / 384 / 480 Battery system nominal DC voltage
battery_selection_mode Enum Custom Custom / Total Capacity Custom: give the parallel strings. Total Capacity: give the installed kWh and the strings are selected
battery_voltage_v Enum 12 V 2 / 6 / 12 Nominal voltage per individual battery
battery_capacity_ah Number 100 7 – 3000 Ah Capacity at C10 rate (10-hour discharge)
parallel_strings Integer 1 1 – 10 Number of parallel battery strings
total_capacity_kwh Number 10.0 0.1 – 10,000 kWh Total Capacity mode only: installed energy required (C10 at nominal voltage); strings \( N_p = \lceil 1000\,E / (V_{\text{DC,bus}}\,C_{10}) \rceil \) of the selected blocks

Derating Factors

Parameter Type Default Range Description
depth_of_discharge_percent Number 80 10 – 100% Maximum battery discharge depth
end_of_life_factor Number 0.8 0.5 – 1.0 Battery capacity at end of design life (IEEE 485 recommends 0.8)
ambient_temperature_c Number 25 −10 – 50 °C Battery room temperature. Reference is 25°C; lead-acid capacity falls ~1%/°C below it, no credit is taken above it.
aging_factor Number 0.9 0.5 – 1.0 Accounts for battery aging effects over service life

UPS Sizing Factors

Parameter Type Default Range Description
safety_margin Number 1.25 1.0 – 2.0 UPS oversizing factor (IEEE 446 recommends 1.25)
growth_factor Number 1.20 1.0 – 2.0 Future load growth allowance
ups_efficiency Number 0.95 0.7 – 0.99 UPS efficiency in battery operation: sets the battery discharge power \( P_{\text{load}}/\eta \). It does not change the output rating.

Output Results

Output Unit Description
total_load_kw kW Total active power load (from equipment list or simple input)
total_load_kva kVA Total apparent power load
avg_power_factor — Average power factor \( \text{PF} = P / S \)
sizing_load_kva kVA \( \max(S_{\text{load}}, P_{\text{load}}/0.9) \)
sizing_basis — kVA or kW: which UPS rating limits the load
required_ups_kva_calculated kVA Sizing load × safety margin × growth factor, before standard size selection
recommended_ups_kva kVA Next larger standard UPS frame size
recommended_ups_kw kW UPS active power at 0.9 power factor
ups_utilization_percent % Load kVA as a percentage of the selected kVA rating
ups_kw_utilization_percent % Load kW as a percentage of the kW rating (0.9 × kVA)
batteries_in_series — Number of batteries in series per string
parallel_strings — Number of parallel battery strings
total_batteries — Total battery count (series × parallel)
total_capacity_kwh kWh Installed (nameplate) battery capacity
usable_capacity_kwh kWh Energy delivered to the load in the full-load discharge: \( P_{\text{load}} \times t / 60 \)
battery_power_kw kW Battery discharge power \( P_{\text{load}}/\eta \)
string_current_a A Discharge current per string at full load
peukert_exponent — Peukert exponent of the battery technology
peukert_runtime_new_minutes min Peukert time to end voltage of a new battery at the full-load current
derating_factor — DoD × end-of-life × temperature × aging
temperature_correction_factor — Capacity multiplier for ambient temperature deviation from 25°C
runtime_minutes_full_load min Backup runtime at 100% load
runtime_minutes_50_load min Backup runtime at 50% load (\( t \times 2^{n} \))
parallel_strings_required — Fewest parallel strings meeting the target runtime
runtime_curve — List of {load_percent, runtime_minutes} at 25%, 50%, 75%, 100%
system_availability_percent % Estimated availability based on redundancy (N=99%, N+1=99.99%, 2N=99.999%)
estimated_battery_weight_kg kg Estimated total battery weight
estimated_ups_weight_kg kg Estimated UPS unit weight
estimated_total_weight_kg kg Combined UPS + battery weight
battery_design_life_years years Design life for the selected battery technology
estimated_cycle_life cycles Typical cycle life at the design DoD (per-chemistry curve, indicative)
output_phases / rating_adequate — Phases used for the rating list; whether the selected rating is ≥ the required rating (false only for single-phase requirements above 40 kVA)
compliant Boolean True if the rating is adequate, the UPS is not overloaded and runtime ≥ 5 minutes

Formulas

Required UPS Rating

\[ S_{\text{size}} = \max\left(S_{\text{load}},\ \frac{P_{\text{load}}}{0.9}\right) \] \[ S_{\text{UPS,req}} = S_{\text{size}} \times k_{\text{safety}} \times k_{\text{growth}} \]

A UPS is rated in both kVA and kW (IEC 62040-3 rated output apparent and active power); the calculator takes the kW rating as \( 0.9 \times \) the kVA rating, so a load with a power factor above 0.9 is limited by kW and is sized on \( P_{\text{load}} / 0.9 \). \( k_{\text{safety}} \) is the safety margin (default 1.25) and \( k_{\text{growth}} \) the future growth factor (default 1.20). The rating is the UPS output: the UPS efficiency does not enter it (it sets the input demand and the battery discharge power, below).

The selected rating is the next standard size ≥ \( S_{\text{UPS,req}} \) from the list for the output_phases input: single-phase 1–40 kVA (1:1 units to about 20 kVA, 3:1 units — three-phase in, single-phase out — to 40 kVA) or three-phase 10–2000 kVA. Above 2000 kVA the three-phase rating rounds up to the next 100 kVA (paralleled frames). A single-phase requirement above 40 kVA has no adequate standard rating: the rating check fails and a three-phase UPS should be used.

UPS Utilization

\[ U_S = \frac{S_{\text{load}}}{S_{\text{UPS}}} \times 100\%, \qquad U_P = \frac{P_{\text{load}}}{0.9\,S_{\text{UPS}}} \times 100\% \]

Both must be ≤ 100%. Optimal utilization is 60–80% for efficiency and headroom.

Battery String Configuration

\[ N_{\text{series}} = \frac{V_{\text{DC,bus}}}{V_{\text{battery}}} \] \[ N_{\text{total}} = N_{\text{series}} \times N_{\text{parallel}} \]

Where \( V_{\text{DC,bus}} \) is the DC bus voltage and \( V_{\text{battery}} \) is the individual battery voltage (2, 6, or 12 V).

Installed Battery Capacity

\[ E_{\text{inst}} = \frac{C_{10} \times V_{\text{DC,bus}} \times N_{\text{parallel}}}{1000} \quad (\text{kWh}) \]

Where \( C_{10} \) is the rated capacity per battery in Ah at the 10-hour rate.

Battery Discharge Current

\[ P_{\text{batt}} = \frac{P_{\text{load}}}{\eta}, \qquad I = \frac{1000\,P_{\text{batt}}}{k_v \, V_{\text{DC,bus}} \, N_{\text{parallel}}} \]

\( \eta \) is the UPS efficiency in battery operation and \( k_v \) the average discharge voltage as a fraction of nominal (0.98 for Li-ion, 0.95 for lead-acid and NiCd). \( I \) is the current in each string.

Peukert Discharge Time

\[ t_{\text{new}} = 10\,\text{h} \times \left( \frac{I_{10}}{I} \right)^{n}, \qquad I_{10} = \frac{C_{10}}{10\,\text{h}} \]

Peukert’s law \( I^{n} t = \text{const} \), anchored at the 10-hour rating, gives the time to the end-of-discharge voltage of a new battery at the actual current. Equivalently the capacity available at current \( I \) is \( C_{10} (I_{10}/I)^{n-1} \) — in terms of the discharge time \( C_{10} (t/10\,\text{h})^{(n-1)/n} \). The exponent \( n \) is 1.3 for VRLA-AGM, 1.25 for VRLA-Gel, 1.05 for Li-ion and 1.15 for NiCd. The runtime is computed at the current the load actually draws; the target runtime is only the pass/fail limit.

Temperature Correction Factor

\[ k_T = \begin{cases} \max\left(0.7,\ 1 - 0.01\,(25 - T)\right) & T < 25\,^\circ\text{C} \\ 1.0 & T \ge 25\,^\circ\text{C} \end{cases} \quad \text{(lead-acid)} \]

Lead-acid capacity falls about 1% per °C below 25°C (close to IEEE 485 Table 1: 0.90 at 15.6°C, 0.77 at 4.4°C). No credit is taken for the higher capacity of a warm battery (IEEE 485 cl. 6.2.2, IEEE 1184): it is offset by the shorter life — about half for every 10°C above 25°C. Li-ion and NiCd: 1.0 within 15–35°C, 0.95 below 15°C, 0.98 above 35°C.

Backup Runtime

\[ k = \text{DoD} \times k_{\text{EOL}} \times k_T \times k_{\text{aging}}, \qquad t = t_{\text{new}} \times k \]

At a constant current the time scales with the available ampere-hours, so the capacity derating multiplies the Peukert time. DoD is the usable depth of discharge (technology default 80% lead-acid and NiCd, 90% Li-ion), \( k_{\text{EOL}} \) the end-of-life capacity (default 0.80, IEEE 485 ageing factor 1.25 = 1/0.80) and \( k_{\text{aging}} \) an additional ageing / design margin (default 0.90).

\[ t_{50\%} = t \times 2^{n}, \qquad E_{\text{use}} = \frac{P_{\text{load}} \, t}{60} \quad (\text{kWh}) \]

At half load the current halves, so Peukert gives \( 2^{n} \) times the full-load runtime. The runtime curve evaluates each point (25–100% of the UPS rating at the load power factor) the same way. \( E_{\text{use}} \) is the energy delivered to the load in the full-load discharge.

Strings for the Target Runtime

\[ N_{\text{req}} = \left\lceil N_{\text{parallel}} \left( \frac{t_{\text{target}}}{t} \right)^{1/n} \right\rceil \]

With \( N \) strings each carries \( 1/N \) of the current, so \( t \propto N^{n} \). The MCP tool reports \( N_{\text{req}} \) up to 10 strings.

Battery Cycle Life

\[ N_{\text{cyc}}(D) = N_1 \left( \frac{D}{D_1} \right)^{\ln(N_2/N_1) / \ln(D_2/D_1)}, \quad D_1 \le D \le D_2 \]

Typical cycle life to end of life against depth of discharge \( D \), interpolated as a power law between tabulated points and held at the end values outside them (indicative, from manufacturers’ published curves; IEEE 1188 / IEEE 1184 treat cycle life as DoD dependent — use the selected product’s curve for design):

Chemistry100% DoD80%50%30%
VRLA-AGM2003005001200
VRLA-Gel45060010001800
Li-ion LiFePO4250040007000—
Li-ion NMC100015003000—
NiCd150020003500—

Equipment List Load

\[ P = \sum n_i P_i, \qquad S = \sum n_i S_i, \qquad \cos\varphi = P / S \]

If only W or only VA is provided for an equipment item, the other is derived using the item’s power factor.

Typical UPS Topology Efficiencies

Topology Typical Efficiency
Offline/Standby (VFD)95%
Line-Interactive96%
Online/Double-Conversion (VFI)94%
Delta Conversion97%

Worked Examples

The 29 examples below are the validation cases for this calculation. Each one was produced by the calculation engine from the inputs shown, every figure was checked against the independent reference quoted at the end of the example, and the same cases are run against every engine build (see validation scorecard, tool fe_calc_ups; worked examples for every calculation).

#CaseLoad (kW / kVA)UPS (kVA)BatteryRuntime (min)Target (min)Strings neededResult
150 kW data centre, one VRLA string50 / 58.8100VRLA-AGM (5-10 year), 32 × 110.76152FAIL
2Same load on two VRLA strings50 / 58.8100VRLA-AGM (5-10 year), 32 × 226.48152PASS
320 kW on LiFePO4, large margins20 / 22.240Li-ion LiFePO4, 32 × 163.77101PASS
4Small office, 230 V single-phase, 48 V LiFePO45 / 5.5610Li-ion LiFePO4, 4 × 2118.66301PASS
5Industrial 200 kW, VRLA-Gel cells at 35 °C200 / 222400VRLA-Gel (10-15 year), 240 × 121.19101PASS
6Unity power factor IT load, kW rating governs55 / 5680VRLA-AGM (5-10 year), 32 × 457.61102PASS
79 kW unity-pf single-phase load9 / 915VRLA-AGM (5-10 year), 20 × 154.25151PASS
8VRLA battery room at 10 °C30 / 3560VRLA-AGM (5-10 year), 32 × 243.73151PASS
9VRLA battery room at 40 °C (no credit)30 / 3560VRLA-AGM (5-10 year), 32 × 251.45151PASS
10VRLA at −10 °C, factor floored30 / 3560VRLA-AGM (5-10 year), 32 × 236.01152PASS
11Li-ion NMC at 40 °C40 / 4480Li-ion NMC, 32 × 114.58101PASS
12LiFePO4 at 5 °C40 / 4480Li-ion LiFePO4, 32 × 114.13101PASS
13NiCd battery on a 240 V bus10 / 1220NiCd, 20 × 194.86201PASS
14Short 5 minute ride-through, VRLA-AGM 3-5 year80 / 90160VRLA-AGM (3-5 year), 32 × 15.8451PASS
1560 minutes on one VRLA-Gel string20 / 2440VRLA-Gel (5-10 year), 32 × 138.64602FAIL
16Two hour runtime on LiFePO415 / 16.730Li-ion LiFePO4, 32 × 3566.021201PASS
17Target needs more than ten strings200 / 220400VRLA-AGM (5-10 year), 40 × 12.3760> 10FAIL
18Over-provisioned battery, fewer strings suffice20 / 2340VRLA-AGM (5-10 year), 32 × 4214.60101PASS
19New LiFePO4 battery, no derating30 / 3260Li-ion LiFePO4, 32 × 164.29151PASS
201.5 MW beyond the standard list1,500 / 1,7002,600VRLA-AGM (5-10 year), 240 × 487.15101PASS
21480 V 60 Hz with 2N redundancy100 / 111200VRLA-AGM (5-10 year), 40 × 224.35102PASS
22Small 120 V UPS on a 24 V bank0.8 / 11.5VRLA-AGM (5-10 year), 2 × 12.58103FAIL
23Delta conversion, N+1, 97 % efficiency150 / 170300VRLA-AGM (5-10 year), 40 × 221.4781PASS
24Runtime curve at 25-100 % of rating40 / 5080VRLA-AGM (5-10 year), 32 × 235.40152PASS
25208 V three-phase (US line-to-line)25 / 2860VRLA-AGM (5-10 year), 32 × 265.21101PASS
26Single-phase 30 kVA (3:1 range)18 / 2030VRLA-AGM (5-10 year), 32 × 299.95101PASS
27Single-phase requirement above 40 kVA30 / 3340VRLA-AGM (5-10 year), 32 × 251.45101FAIL
28VRLA at 100 % depth of discharge30 / 3560VRLA-AGM (5-10 year), 32 × 126.12151PASS
29VRLA-Gel at 60 % depth of discharge30 / 3560VRLA-Gel (10-15 year), 32 × 241.52151PASS

Example 1 — 50 kW data centre, one VRLA string

The 50 kW / 58.8 kVA server room on 32 × 12 V 100 Ah VRLA blocks: kVA governs the 100 kVA rating, the Peukert runtime falls short of 15 min and two strings are needed.

Given: Critical load 50 kW / 58.8 kVA, target runtime 15 min; online double-conversion UPS, 400 V three-phase 50 Hz, efficiency 0.95, N redundancy; safety margin 1.25, growth 1.2. Battery: VRLA-AGM (5-10 year), 384 V DC bus of 12 V 100 Ah (C10) blocks, 1 string; DoD 80 % (technology default), end-of-life 0.8, ageing 0.9, 25 °C.

Sizing loadcos φ = 50 / 58.8 = 0.850; Ssize = max(S, P / 0.9) = max(58.8, 50 / 0.9 = 55.56) = 58.80 kVA (kVA rating governs)
UPS ratingSreq = 58.80 × 1.25 × 1.2 = 88.20 kVA → next standard three-phase rating = 100 kVA; PUPS = 0.9 × 100 = 90.0 kW
kVA checkSreq ≤ SUPS; load US = 58.8 / 100 = 58.8 % → 88.20 vs limit 100.00 kVA PASS
kW checkUP = 50 / 90.0 = 55.6 % → 50.00 vs limit 90.00 kW PASS
Battery stringNs = 384 / 12 = 32; 32 × 1 = 32 blocks; installed E = 100 × 384 × 1 / 1000 = 38.40 kWh (C10)
String currentPbatt = 50 / 0.95 = 52.63 kW; I = 1000 × 52.63 / (0.95 × 384 × 1) = 144.3 A per string
Peukert timeI10 = 100 / 10 = 10.0 A; tnew = 600 × (10.0 / 144.3)1.3 = 18.67 min (new battery to end voltage)
DeratingkT = 1.000 (lead-acid at 25 °C: no credit above 25 °C); k = 0.8 × 0.8 × 1.000 × 0.9 = 0.5760
Runtimet = 18.67 × 0.5760 = 10.76 min → 10.76 vs limit 15.00 min FAIL
Part load and energyt50 = 10.76 × 21.3 = 26.48 min; E = 50 × 10.76 / 60 = 8.963 kWh delivered
Strings for targetN = ⌈1 × (15 / 10.76)1/1.3⌉ = ⌈1.292⌉ → 2 strings
Cycle lifeTypical VRLA-AGM (5-10 year) curve at 80 % DoD → about 300 cycles (log-log interpolation between tabulated DoD points; indicative)
Result2/3 checks pass → FAIL; 100 kVA UPS, 10.76 min at full load against 15 min; governing: runtime. Runtime at full load (10.8 min) is less than target (15.0 min). Additional battery capacity required. Consider N+1 redundancy for critical loads >20 kVA to improve availability.
ReferenceHand calculation: S_size = max(58.8, 50/0.9 = 55.56) = 58.80 kVA (kVA governs); S_req = 58.80 × 1.25 × 1.2 = 88.20 kVA → 100 kVA (3-ph list, phases = 3); P_UPS = 0.9 × 100 = 90.0 kW; I = 50 kW / 0.95 / (0.95 × 384 V × 1) = 144.3 A; Peukert t_new = 600 × (10.0/144.3)^1.3 = 18.67 min; k = 0.8 × 0.8 × 1.000 × 0.9 = 0.5760; t = 18.67 × 0.5760 = 10.76 min vs 15 min target; t_50 = t × 2^1.3 = 26.48 min; E = 50 × 10.76/60 = 8.963 kWh; N_req = ceil(1 × (15/10.76)^(1/1.3)) = 2; cycle life at 80 % DoD (typical curve) = 300 (validation case c0021-50kw-vrla-384v-15min)

Example 2 — Same load on two VRLA strings

Doubling the strings halves the string current, so Peukert gives 2^1.3 = 2.46 times the runtime and the 15 min target is met.

Given: Critical load 50 kW / 58.8 kVA, target runtime 15 min; online double-conversion UPS, 400 V three-phase 50 Hz, efficiency 0.95, N redundancy; safety margin 1.25, growth 1.2. Battery: VRLA-AGM (5-10 year), 384 V DC bus of 12 V 100 Ah (C10) blocks, 2 strings; DoD 80 % (technology default), end-of-life 0.8, ageing 0.9, 25 °C.

Sizing loadcos φ = 50 / 58.8 = 0.850; Ssize = max(S, P / 0.9) = max(58.8, 50 / 0.9 = 55.56) = 58.80 kVA (kVA rating governs)
UPS ratingSreq = 58.80 × 1.25 × 1.2 = 88.20 kVA → next standard three-phase rating = 100 kVA; PUPS = 0.9 × 100 = 90.0 kW
kVA checkSreq ≤ SUPS; load US = 58.8 / 100 = 58.8 % → 88.20 vs limit 100.00 kVA PASS
kW checkUP = 50 / 90.0 = 55.6 % → 50.00 vs limit 90.00 kW PASS
Battery stringNs = 384 / 12 = 32; 32 × 2 = 64 blocks; installed E = 100 × 384 × 2 / 1000 = 76.80 kWh (C10)
String currentPbatt = 50 / 0.95 = 52.63 kW; I = 1000 × 52.63 / (0.95 × 384 × 2) = 72.1 A per string
Peukert timeI10 = 100 / 10 = 10.0 A; tnew = 600 × (10.0 / 72.1)1.3 = 45.98 min (new battery to end voltage)
DeratingkT = 1.000 (lead-acid at 25 °C: no credit above 25 °C); k = 0.8 × 0.8 × 1.000 × 0.9 = 0.5760
Runtimet = 45.98 × 0.5760 = 26.48 min → 26.48 vs limit 15.00 min PASS
Part load and energyt50 = 26.48 × 21.3 = 65.21 min; E = 50 × 26.48 / 60 = 22.069 kWh delivered
Strings for targetN = ⌈2 × (15 / 26.48)1/1.3⌉ = ⌈1.292⌉ → 2 strings
Cycle lifeTypical VRLA-AGM (5-10 year) curve at 80 % DoD → about 300 cycles (log-log interpolation between tabulated DoD points; indicative)
Result3/3 checks pass → PASS; 100 kVA UPS, 26.48 min at full load against 15 min; governing: ups rating. Consider N+1 redundancy for critical loads >20 kVA to improve availability. Runtime at full load (26.5 min) significantly exceeds target (15.0 min). Consider reducing battery capacity to optimize cost.
ReferenceHand calculation: S_size = max(58.8, 50/0.9 = 55.56) = 58.80 kVA (kVA governs); S_req = 58.80 × 1.25 × 1.2 = 88.20 kVA → 100 kVA (3-ph list, phases = 3); P_UPS = 0.9 × 100 = 90.0 kW; I = 50 kW / 0.95 / (0.95 × 384 V × 2) = 72.1 A; Peukert t_new = 600 × (10.0/72.1)^1.3 = 45.98 min; k = 0.8 × 0.8 × 1.000 × 0.9 = 0.5760; t = 45.98 × 0.5760 = 26.48 min vs 15 min target; t_50 = t × 2^1.3 = 65.21 min; E = 50 × 26.48/60 = 22.069 kWh; N_req = ceil(2 × (15/26.48)^(1/1.3)) = 2; cycle life at 80 % DoD (typical curve) = 300 (validation case c0021-50kw-vrla-two-strings-15min)

Example 3 — 20 kW on LiFePO4, large margins

Li-ion LiFePO4 with its 90 % default DoD and n = 1.05: the runtime far exceeds the 10 min target and a single string is enough.

Given: Critical load 20 kW / 22.2 kVA, target runtime 10 min; online double-conversion UPS, 400 V three-phase 50 Hz, efficiency 0.95, N redundancy; safety margin 1.25, growth 1.2. Battery: Li-ion LiFePO4, 384 V DC bus of 12 V 100 Ah (C10) blocks, 1 string; DoD 90 % (technology default), end-of-life 0.8, ageing 0.9, 25 °C.

Sizing loadcos φ = 20 / 22.2 = 0.901; Ssize = max(S, P / 0.9) = max(22.2, 20 / 0.9 = 22.22) = 22.22 kVA (kW rating governs)
UPS ratingSreq = 22.22 × 1.25 × 1.2 = 33.33 kVA → next standard three-phase rating = 40 kVA; PUPS = 0.9 × 40 = 36.0 kW
kVA checkSreq ≤ SUPS; load US = 22.2 / 40 = 55.5 % → 33.33 vs limit 40.00 kVA PASS
kW checkUP = 20 / 36.0 = 55.6 % → 20.00 vs limit 36.00 kW PASS
Battery stringNs = 384 / 12 = 32; 32 × 1 = 32 blocks; installed E = 100 × 384 × 1 / 1000 = 38.40 kWh (C10)
String currentPbatt = 20 / 0.95 = 21.05 kW; I = 1000 × 21.05 / (0.98 × 384 × 1) = 55.9 A per string
Peukert timeI10 = 100 / 10 = 10.0 A; tnew = 600 × (10.0 / 55.9)1.05 = 98.40 min (new battery to end voltage)
DeratingkT = 1.000 (Li-ion/NiCd, 25 °C is 15–35 °C band); k = 0.9 × 0.8 × 1.000 × 0.9 = 0.6480
Runtimet = 98.40 × 0.6480 = 63.77 min → 63.77 vs limit 10.00 min PASS
Part load and energyt50 = 63.77 × 21.05 = 132.03 min; E = 20 × 63.77 / 60 = 21.255 kWh delivered
Strings for targetN = ⌈1 × (10 / 63.77)1/1.05⌉ = ⌈0.171⌉ → 1 string
Cycle lifeTypical Li-ion LiFePO4 curve at 90 % DoD → about 3,121 cycles (log-log interpolation between tabulated DoD points; indicative)
Result3/3 checks pass → PASS; 40 kVA UPS, 63.77 min at full load against 10 min; governing: ups active power. Consider N+1 redundancy for critical loads >20 kVA to improve availability. Runtime at full load (63.8 min) significantly exceeds target (10.0 min). Consider reducing battery capacity to optimize cost.
ReferenceHand calculation: S_size = max(22.2, 20/0.9 = 22.22) = 22.22 kVA (kW governs); S_req = 22.22 × 1.25 × 1.2 = 33.33 kVA → 40 kVA (3-ph list, phases = 3); P_UPS = 0.9 × 40 = 36.0 kW; I = 20 kW / 0.95 / (0.98 × 384 V × 1) = 55.9 A; Peukert t_new = 600 × (10.0/55.9)^1.05 = 98.40 min; k = 0.9 × 0.8 × 1.000 × 0.9 = 0.6480; t = 98.40 × 0.6480 = 63.77 min vs 10 min target; t_50 = t × 2^1.05 = 132.03 min; E = 20 × 63.77/60 = 21.255 kWh; N_req = ceil(1 × (10/63.77)^(1/1.05)) = 1; cycle life at 90 % DoD (typical curve) = 3121 (validation case c0021-20kw-lifepo4-10min)

Example 4 — Small office, 230 V single-phase, 48 V LiFePO4

A line-interactive single-phase UPS on a 48 V Li-ion bank (two strings of 4 × 12 V 200 Ah) at 80 % DoD: selection from the single-phase list.

Given: Critical load 5 kW / 5.56 kVA, target runtime 30 min; line-interactive UPS, 230 V single-phase 50 Hz, efficiency 0.96, N redundancy; safety margin 1.25, growth 1.2. Battery: Li-ion LiFePO4, 48 V DC bus of 12 V 200 Ah (C10) blocks, 2 strings; DoD 80 %, end-of-life 0.8, ageing 0.9, 25 °C.

Sizing loadcos φ = 5 / 5.56 = 0.899; Ssize = max(S, P / 0.9) = max(5.56, 5 / 0.9 = 5.56) = 5.56 kVA (kVA rating governs)
UPS ratingSreq = 5.56 × 1.25 × 1.2 = 8.34 kVA → next standard single-phase rating = 10 kVA; PUPS = 0.9 × 10 = 9.0 kW
kVA checkSreq ≤ SUPS; load US = 5.56 / 10 = 55.6 % → 8.34 vs limit 10.00 kVA PASS
kW checkUP = 5 / 9.0 = 55.6 % → 5.00 vs limit 9.00 kW PASS
Battery stringNs = 48 / 12 = 4; 4 × 2 = 8 blocks; installed E = 200 × 48 × 2 / 1000 = 19.20 kWh (C10)
String currentPbatt = 5 / 0.96 = 5.21 kW; I = 1000 × 5.21 / (0.98 × 48 × 2) = 55.4 A per string
Peukert timeI10 = 200 / 10 = 20.0 A; tnew = 600 × (20.0 / 55.4)1.05 = 206.00 min (new battery to end voltage)
DeratingkT = 1.000 (Li-ion/NiCd, 25 °C is 15–35 °C band); k = 0.8 × 0.8 × 1.000 × 0.9 = 0.5760
Runtimet = 206.00 × 0.5760 = 118.66 min → 118.66 vs limit 30.00 min PASS
Part load and energyt50 = 118.66 × 21.05 = 245.68 min; E = 5 × 118.66 / 60 = 9.888 kWh delivered
Strings for targetN = ⌈2 × (30 / 118.66)1/1.05⌉ = ⌈0.540⌉ → 1 string
Cycle lifeTypical Li-ion LiFePO4 curve at 80 % DoD → about 4,000 cycles (log-log interpolation between tabulated DoD points; indicative)
Result3/3 checks pass → PASS; 10 kVA UPS, 118.66 min at full load against 30 min; governing: ups rating. Runtime at full load (118.7 min) significantly exceeds target (30.0 min). Consider reducing battery capacity to optimize cost.
ReferenceHand calculation: S_size = max(5.56, 5/0.9 = 5.56) = 5.56 kVA (kVA governs); S_req = 5.56 × 1.25 × 1.2 = 8.34 kVA → 10 kVA (1-ph list, phases = 1); P_UPS = 0.9 × 10 = 9.0 kW; I = 5 kW / 0.96 / (0.98 × 48 V × 2) = 55.4 A; Peukert t_new = 600 × (20.0/55.4)^1.05 = 206.00 min; k = 0.8 × 0.8 × 1.000 × 0.9 = 0.5760; t = 206.00 × 0.5760 = 118.66 min vs 30 min target; t_50 = t × 2^1.05 = 245.68 min; E = 5 × 118.66/60 = 9.888 kWh; N_req = ceil(2 × (30/118.66)^(1/1.05)) = 1; cycle life at 80 % DoD (typical curve) = 4000 (validation case c0021-office-5kw-lifepo4-1ph-48v)

Example 5 — Industrial 200 kW, VRLA-Gel cells at 35 °C

240 × 2 V 500 Ah gel cells in a 35 °C room: no capacity credit is taken above 25 °C, so k_T = 1.0.

Given: Critical load 200 kW / 222 kVA, target runtime 10 min; online double-conversion UPS, 415 V three-phase 50 Hz, efficiency 0.94, N redundancy; safety margin 1.25, growth 1.2. Battery: VRLA-Gel (10-15 year), 480 V DC bus of 2 V 500 Ah (C10) blocks, 1 string; DoD 80 % (technology default), end-of-life 0.8, ageing 0.9, 35 °C.

Sizing loadcos φ = 200 / 222 = 0.901; Ssize = max(S, P / 0.9) = max(222, 200 / 0.9 = 222.22) = 222.22 kVA (kW rating governs)
UPS ratingSreq = 222.22 × 1.25 × 1.2 = 333.33 kVA → next standard three-phase rating = 400 kVA; PUPS = 0.9 × 400 = 360.0 kW
kVA checkSreq ≤ SUPS; load US = 222 / 400 = 55.5 % → 333.33 vs limit 400.00 kVA PASS
kW checkUP = 200 / 360.0 = 55.6 % → 200.00 vs limit 360.00 kW PASS
Battery stringNs = 480 / 2 = 240; 240 × 1 = 240 blocks; installed E = 500 × 480 × 1 / 1000 = 240.00 kWh (C10)
String currentPbatt = 200 / 0.94 = 212.77 kW; I = 1000 × 212.77 / (0.95 × 480 × 1) = 466.6 A per string
Peukert timeI10 = 500 / 10 = 50.0 A; tnew = 600 × (50.0 / 466.6)1.25 = 36.79 min (new battery to end voltage)
DeratingkT = 1.000 (lead-acid at 35 °C: no credit above 25 °C); k = 0.8 × 0.8 × 1.000 × 0.9 = 0.5760
Runtimet = 36.79 × 0.5760 = 21.19 min → 21.19 vs limit 10.00 min PASS
Part load and energyt50 = 21.19 × 21.25 = 50.40 min; E = 200 × 21.19 / 60 = 70.631 kWh delivered
Strings for targetN = ⌈1 × (10 / 21.19)1/1.25⌉ = ⌈0.548⌉ → 1 string
Cycle lifeTypical VRLA-Gel (10-15 year) curve at 80 % DoD → about 600 cycles (log-log interpolation between tabulated DoD points; indicative)
Result3/3 checks pass → PASS; 400 kVA UPS, 21.19 min at full load against 10 min; governing: ups active power. Consider N+1 redundancy for critical loads >20 kVA to improve availability. Runtime at full load (21.2 min) significantly exceeds target (10.0 min). Consider reducing battery capacity to optimize cost.
ReferenceHand calculation: S_size = max(222, 200/0.9 = 222.22) = 222.22 kVA (kW governs); S_req = 222.22 × 1.25 × 1.2 = 333.33 kVA → 400 kVA (3-ph list, phases = 3); P_UPS = 0.9 × 400 = 360.0 kW; I = 200 kW / 0.94 / (0.95 × 480 V × 1) = 466.6 A; Peukert t_new = 600 × (50.0/466.6)^1.25 = 36.79 min; k = 0.8 × 0.8 × 1.000 × 0.9 = 0.5760; t = 36.79 × 0.5760 = 21.19 min vs 10 min target; t_50 = t × 2^1.25 = 50.40 min; E = 200 × 21.19/60 = 70.631 kWh; N_req = ceil(1 × (10/21.19)^(1/1.25)) = 1; cycle life at 80 % DoD (typical curve) = 600 (validation case c0021-industrial-200kw-gel-35c)

Example 6 — Unity power factor IT load, kW rating governs

55 kW / 56 kVA with no margins: 56 kVA alone would pick 60 kVA (54 kW), so the kW rating governs and an 80 kVA UPS is selected.

Given: Critical load 55 kW / 56 kVA, target runtime 10 min; online double-conversion UPS, 400 V three-phase 50 Hz, efficiency 0.95, N redundancy; safety margin 1, growth 1. Battery: VRLA-AGM (5-10 year), 384 V DC bus of 12 V 100 Ah (C10) blocks, 4 strings; DoD 80 % (technology default), end-of-life 0.8, ageing 0.9, 25 °C.

Sizing loadcos φ = 55 / 56 = 0.982; Ssize = max(S, P / 0.9) = max(56, 55 / 0.9 = 61.11) = 61.11 kVA (kW rating governs)
UPS ratingSreq = 61.11 × 1 × 1 = 61.11 kVA → next standard three-phase rating = 80 kVA; PUPS = 0.9 × 80 = 72.0 kW
kVA checkSreq ≤ SUPS; load US = 56 / 80 = 70.0 % → 61.11 vs limit 80.00 kVA PASS
kW checkUP = 55 / 72.0 = 76.4 % → 55.00 vs limit 72.00 kW PASS
Battery stringNs = 384 / 12 = 32; 32 × 4 = 128 blocks; installed E = 100 × 384 × 4 / 1000 = 153.60 kWh (C10)
String currentPbatt = 55 / 0.95 = 57.89 kW; I = 1000 × 57.89 / (0.95 × 384 × 4) = 39.7 A per string
Peukert timeI10 = 100 / 10 = 10.0 A; tnew = 600 × (10.0 / 39.7)1.3 = 100.02 min (new battery to end voltage)
DeratingkT = 1.000 (lead-acid at 25 °C: no credit above 25 °C); k = 0.8 × 0.8 × 1.000 × 0.9 = 0.5760
Runtimet = 100.02 × 0.5760 = 57.61 min → 57.61 vs limit 10.00 min PASS
Part load and energyt50 = 57.61 × 21.3 = 141.85 min; E = 55 × 57.61 / 60 = 52.808 kWh delivered
Strings for targetN = ⌈4 × (10 / 57.61)1/1.3⌉ = ⌈1.040⌉ → 2 strings
Cycle lifeTypical VRLA-AGM (5-10 year) curve at 80 % DoD → about 300 cycles (log-log interpolation between tabulated DoD points; indicative)
Result3/3 checks pass → PASS; 80 kVA UPS, 57.61 min at full load against 10 min; governing: ups active power. Consider N+1 redundancy for critical loads >20 kVA to improve availability. Runtime at full load (57.6 min) significantly exceeds target (10.0 min). Consider reducing battery capacity to optimize cost.
ReferenceHand calculation: S_size = max(56, 55/0.9 = 61.11) = 61.11 kVA (kW governs); S_req = 61.11 × 1 × 1 = 61.11 kVA → 80 kVA (3-ph list, phases = 3); P_UPS = 0.9 × 80 = 72.0 kW; I = 55 kW / 0.95 / (0.95 × 384 V × 4) = 39.7 A; Peukert t_new = 600 × (10.0/39.7)^1.3 = 100.02 min; k = 0.8 × 0.8 × 1.000 × 0.9 = 0.5760; t = 100.02 × 0.5760 = 57.61 min vs 10 min target; t_50 = t × 2^1.3 = 141.85 min; E = 55 × 57.61/60 = 52.808 kWh; N_req = ceil(4 × (10/57.61)^(1/1.3)) = 2; cycle life at 80 % DoD (typical curve) = 300 (validation case c0021-unity-pf-kw-governs)

Example 7 — 9 kW unity-pf single-phase load

A 9 kW / 9 kVA load on 240 V: sizing on kW / 0.9 = 10 kVA gives 15 kVA from the single-phase list.

Given: Critical load 9 kW / 9 kVA, target runtime 15 min; online double-conversion UPS, 240 V single-phase 50 Hz, efficiency 0.95, N redundancy; safety margin 1.25, growth 1.2. Battery: VRLA-AGM (5-10 year), 240 V DC bus of 12 V 100 Ah (C10) blocks, 1 string; DoD 80 % (technology default), end-of-life 0.8, ageing 0.9, 25 °C.

Sizing loadcos φ = 9 / 9 = 1.000; Ssize = max(S, P / 0.9) = max(9, 9 / 0.9 = 10.00) = 10.00 kVA (kW rating governs)
UPS ratingSreq = 10.00 × 1.25 × 1.2 = 15.00 kVA → next standard single-phase rating = 15 kVA; PUPS = 0.9 × 15 = 13.5 kW
kVA checkSreq ≤ SUPS; load US = 9 / 15 = 60.0 % → 15.00 vs limit 15.00 kVA PASS
kW checkUP = 9 / 13.5 = 66.7 % → 9.00 vs limit 13.50 kW PASS
Battery stringNs = 240 / 12 = 20; 20 × 1 = 20 blocks; installed E = 100 × 240 × 1 / 1000 = 24.00 kWh (C10)
String currentPbatt = 9 / 0.95 = 9.47 kW; I = 1000 × 9.47 / (0.95 × 240 × 1) = 41.6 A per string
Peukert timeI10 = 100 / 10 = 10.0 A; tnew = 600 × (10.0 / 41.6)1.3 = 94.19 min (new battery to end voltage)
DeratingkT = 1.000 (lead-acid at 25 °C: no credit above 25 °C); k = 0.8 × 0.8 × 1.000 × 0.9 = 0.5760
Runtimet = 94.19 × 0.5760 = 54.25 min → 54.25 vs limit 15.00 min PASS
Part load and energyt50 = 54.25 × 21.3 = 133.58 min; E = 9 × 54.25 / 60 = 8.138 kWh delivered
Strings for targetN = ⌈1 × (15 / 54.25)1/1.3⌉ = ⌈0.372⌉ → 1 string
Cycle lifeTypical VRLA-AGM (5-10 year) curve at 80 % DoD → about 300 cycles (log-log interpolation between tabulated DoD points; indicative)
Result3/3 checks pass → PASS; 15 kVA UPS, 54.25 min at full load against 15 min; governing: ups active power. Runtime at full load (54.3 min) significantly exceeds target (15.0 min). Consider reducing battery capacity to optimize cost.
ReferenceHand calculation: S_size = max(9, 9/0.9 = 10.00) = 10.00 kVA (kW governs); S_req = 10.00 × 1.25 × 1.2 = 15.00 kVA → 15 kVA (1-ph list, phases = 1); P_UPS = 0.9 × 15 = 13.5 kW; I = 9 kW / 0.95 / (0.95 × 240 V × 1) = 41.6 A; Peukert t_new = 600 × (10.0/41.6)^1.3 = 94.19 min; k = 0.8 × 0.8 × 1.000 × 0.9 = 0.5760; t = 94.19 × 0.5760 = 54.25 min vs 15 min target; t_50 = t × 2^1.3 = 133.58 min; E = 9 × 54.25/60 = 8.138 kWh; N_req = ceil(1 × (15/54.25)^(1/1.3)) = 1; cycle life at 80 % DoD (typical curve) = 300 (validation case c0021-1ph-9kw-unity-pf)

Example 8 — VRLA battery room at 10 °C

Lead-acid capacity falls about 1 %/°C below 25 °C: k_T = 0.85 at 10 °C shortens the runtime.

Given: Critical load 30 kW / 35 kVA, target runtime 15 min; online double-conversion UPS, 400 V three-phase 50 Hz, efficiency 0.95, N redundancy; safety margin 1.25, growth 1.2. Battery: VRLA-AGM (5-10 year), 384 V DC bus of 12 V 100 Ah (C10) blocks, 2 strings; DoD 80 % (technology default), end-of-life 0.8, ageing 0.9, 10 °C.

Sizing loadcos φ = 30 / 35 = 0.857; Ssize = max(S, P / 0.9) = max(35, 30 / 0.9 = 33.33) = 35.00 kVA (kVA rating governs)
UPS ratingSreq = 35.00 × 1.25 × 1.2 = 52.50 kVA → next standard three-phase rating = 60 kVA; PUPS = 0.9 × 60 = 54.0 kW
kVA checkSreq ≤ SUPS; load US = 35 / 60 = 58.3 % → 52.50 vs limit 60.00 kVA PASS
kW checkUP = 30 / 54.0 = 55.6 % → 30.00 vs limit 54.00 kW PASS
Battery stringNs = 384 / 12 = 32; 32 × 2 = 64 blocks; installed E = 100 × 384 × 2 / 1000 = 76.80 kWh (C10)
String currentPbatt = 30 / 0.95 = 31.58 kW; I = 1000 × 31.58 / (0.95 × 384 × 2) = 43.3 A per string
Peukert timeI10 = 100 / 10 = 10.0 A; tnew = 600 × (10.0 / 43.3)1.3 = 89.32 min (new battery to end voltage)
DeratingkT = 1 − 0.01 × (25 − 10) = 0.850 → 0.850; k = 0.8 × 0.8 × 0.850 × 0.9 = 0.4896
Runtimet = 89.32 × 0.4896 = 43.73 min → 43.73 vs limit 15.00 min PASS
Part load and energyt50 = 43.73 × 21.3 = 107.68 min; E = 30 × 43.73 / 60 = 21.865 kWh delivered
Strings for targetN = ⌈2 × (15 / 43.73)1/1.3⌉ = ⌈0.878⌉ → 1 string
Cycle lifeTypical VRLA-AGM (5-10 year) curve at 80 % DoD → about 300 cycles (log-log interpolation between tabulated DoD points; indicative)
Result3/3 checks pass → PASS; 60 kVA UPS, 43.73 min at full load against 15 min; governing: ups rating. Consider N+1 redundancy for critical loads >20 kVA to improve availability. Runtime at full load (43.7 min) significantly exceeds target (15.0 min). Consider reducing battery capacity to optimize cost.
ReferenceHand calculation: S_size = max(35, 30/0.9 = 33.33) = 35.00 kVA (kVA governs); S_req = 35.00 × 1.25 × 1.2 = 52.50 kVA → 60 kVA (3-ph list, phases = 3); P_UPS = 0.9 × 60 = 54.0 kW; I = 30 kW / 0.95 / (0.95 × 384 V × 2) = 43.3 A; Peukert t_new = 600 × (10.0/43.3)^1.3 = 89.32 min; k = 0.8 × 0.8 × 0.850 × 0.9 = 0.4896; t = 89.32 × 0.4896 = 43.73 min vs 15 min target; t_50 = t × 2^1.3 = 107.68 min; E = 30 × 43.73/60 = 21.865 kWh; N_req = ceil(2 × (15/43.73)^(1/1.3)) = 1; cycle life at 80 % DoD (typical curve) = 300 (validation case c0021-vrla-cold-room-10c)

Example 9 — VRLA battery room at 40 °C (no credit)

At 40 °C the lead-acid temperature factor stays 1.0 (IEEE 485 / IEEE 1184 take no credit above 25 °C); the same runtime as at 25 °C.

Given: Critical load 30 kW / 35 kVA, target runtime 15 min; online double-conversion UPS, 400 V three-phase 50 Hz, efficiency 0.95, N redundancy; safety margin 1.25, growth 1.2. Battery: VRLA-AGM (5-10 year), 384 V DC bus of 12 V 100 Ah (C10) blocks, 2 strings; DoD 80 % (technology default), end-of-life 0.8, ageing 0.9, 40 °C.

Sizing loadcos φ = 30 / 35 = 0.857; Ssize = max(S, P / 0.9) = max(35, 30 / 0.9 = 33.33) = 35.00 kVA (kVA rating governs)
UPS ratingSreq = 35.00 × 1.25 × 1.2 = 52.50 kVA → next standard three-phase rating = 60 kVA; PUPS = 0.9 × 60 = 54.0 kW
kVA checkSreq ≤ SUPS; load US = 35 / 60 = 58.3 % → 52.50 vs limit 60.00 kVA PASS
kW checkUP = 30 / 54.0 = 55.6 % → 30.00 vs limit 54.00 kW PASS
Battery stringNs = 384 / 12 = 32; 32 × 2 = 64 blocks; installed E = 100 × 384 × 2 / 1000 = 76.80 kWh (C10)
String currentPbatt = 30 / 0.95 = 31.58 kW; I = 1000 × 31.58 / (0.95 × 384 × 2) = 43.3 A per string
Peukert timeI10 = 100 / 10 = 10.0 A; tnew = 600 × (10.0 / 43.3)1.3 = 89.32 min (new battery to end voltage)
DeratingkT = 1.000 (lead-acid at 40 °C: no credit above 25 °C); k = 0.8 × 0.8 × 1.000 × 0.9 = 0.5760
Runtimet = 89.32 × 0.5760 = 51.45 min → 51.45 vs limit 15.00 min PASS
Part load and energyt50 = 51.45 × 21.3 = 126.68 min; E = 30 × 51.45 / 60 = 25.724 kWh delivered
Strings for targetN = ⌈2 × (15 / 51.45)1/1.3⌉ = ⌈0.775⌉ → 1 string
Cycle lifeTypical VRLA-AGM (5-10 year) curve at 80 % DoD → about 300 cycles (log-log interpolation between tabulated DoD points; indicative)
Result3/3 checks pass → PASS; 60 kVA UPS, 51.45 min at full load against 15 min; governing: ups rating. Consider N+1 redundancy for critical loads >20 kVA to improve availability. Runtime at full load (51.4 min) significantly exceeds target (15.0 min). Consider reducing battery capacity to optimize cost.
ReferenceHand calculation: S_size = max(35, 30/0.9 = 33.33) = 35.00 kVA (kVA governs); S_req = 35.00 × 1.25 × 1.2 = 52.50 kVA → 60 kVA (3-ph list, phases = 3); P_UPS = 0.9 × 60 = 54.0 kW; I = 30 kW / 0.95 / (0.95 × 384 V × 2) = 43.3 A; Peukert t_new = 600 × (10.0/43.3)^1.3 = 89.32 min; k = 0.8 × 0.8 × 1.000 × 0.9 = 0.5760; t = 89.32 × 0.5760 = 51.45 min vs 15 min target; t_50 = t × 2^1.3 = 126.68 min; E = 30 × 51.45/60 = 25.724 kWh; N_req = ceil(2 × (15/51.45)^(1/1.3)) = 1; cycle life at 80 % DoD (typical curve) = 300 (validation case c0021-vrla-hot-room-40c-no-credit)

Example 10 — VRLA at −10 °C, factor floored

1 − 0.01 × 35 = 0.65 is floored at 0.7, the lowest temperature factor the model applies.

Given: Critical load 30 kW / 35 kVA, target runtime 15 min; online double-conversion UPS, 400 V three-phase 50 Hz, efficiency 0.95, N redundancy; safety margin 1.25, growth 1.2. Battery: VRLA-AGM (5-10 year), 384 V DC bus of 12 V 100 Ah (C10) blocks, 2 strings; DoD 80 % (technology default), end-of-life 0.8, ageing 0.9, -10 °C.

Sizing loadcos φ = 30 / 35 = 0.857; Ssize = max(S, P / 0.9) = max(35, 30 / 0.9 = 33.33) = 35.00 kVA (kVA rating governs)
UPS ratingSreq = 35.00 × 1.25 × 1.2 = 52.50 kVA → next standard three-phase rating = 60 kVA; PUPS = 0.9 × 60 = 54.0 kW
kVA checkSreq ≤ SUPS; load US = 35 / 60 = 58.3 % → 52.50 vs limit 60.00 kVA PASS
kW checkUP = 30 / 54.0 = 55.6 % → 30.00 vs limit 54.00 kW PASS
Battery stringNs = 384 / 12 = 32; 32 × 2 = 64 blocks; installed E = 100 × 384 × 2 / 1000 = 76.80 kWh (C10)
String currentPbatt = 30 / 0.95 = 31.58 kW; I = 1000 × 31.58 / (0.95 × 384 × 2) = 43.3 A per string
Peukert timeI10 = 100 / 10 = 10.0 A; tnew = 600 × (10.0 / 43.3)1.3 = 89.32 min (new battery to end voltage)
DeratingkT = 1 − 0.01 × (25 − -10) = 0.650 → floored at 0.7 → 0.700; k = 0.8 × 0.8 × 0.700 × 0.9 = 0.4032
Runtimet = 89.32 × 0.4032 = 36.01 min → 36.01 vs limit 15.00 min PASS
Part load and energyt50 = 36.01 × 21.3 = 88.68 min; E = 30 × 36.01 / 60 = 18.007 kWh delivered
Strings for targetN = ⌈2 × (15 / 36.01)1/1.3⌉ = ⌈1.020⌉ → 2 strings
Cycle lifeTypical VRLA-AGM (5-10 year) curve at 80 % DoD → about 300 cycles (log-log interpolation between tabulated DoD points; indicative)
Result3/3 checks pass → PASS; 60 kVA UPS, 36.01 min at full load against 15 min; governing: ups rating. Consider N+1 redundancy for critical loads >20 kVA to improve availability. Runtime at full load (36.0 min) significantly exceeds target (15.0 min). Consider reducing battery capacity to optimize cost.
ReferenceHand calculation: S_size = max(35, 30/0.9 = 33.33) = 35.00 kVA (kVA governs); S_req = 35.00 × 1.25 × 1.2 = 52.50 kVA → 60 kVA (3-ph list, phases = 3); P_UPS = 0.9 × 60 = 54.0 kW; I = 30 kW / 0.95 / (0.95 × 384 V × 2) = 43.3 A; Peukert t_new = 600 × (10.0/43.3)^1.3 = 89.32 min; k = 0.8 × 0.8 × 0.700 × 0.9 = 0.4032; t = 89.32 × 0.4032 = 36.01 min vs 15 min target; t_50 = t × 2^1.3 = 88.68 min; E = 30 × 36.01/60 = 18.007 kWh; N_req = ceil(2 × (15/36.01)^(1/1.3)) = 2; cycle life at 80 % DoD (typical curve) = 300 (validation case c0021-vrla-minus-10c-floor)

Example 11 — Li-ion NMC at 40 °C

Above the 15-35 °C Li-ion band the temperature factor is 0.98.

Given: Critical load 40 kW / 44 kVA, target runtime 10 min; online double-conversion UPS, 400 V three-phase 50 Hz, efficiency 0.95, N redundancy; safety margin 1.25, growth 1.2. Battery: Li-ion NMC, 384 V DC bus of 12 V 50 Ah (C10) blocks, 1 string; DoD 90 % (technology default), end-of-life 0.8, ageing 0.9, 40 °C.

Sizing loadcos φ = 40 / 44 = 0.909; Ssize = max(S, P / 0.9) = max(44, 40 / 0.9 = 44.44) = 44.44 kVA (kW rating governs)
UPS ratingSreq = 44.44 × 1.25 × 1.2 = 66.67 kVA → next standard three-phase rating = 80 kVA; PUPS = 0.9 × 80 = 72.0 kW
kVA checkSreq ≤ SUPS; load US = 44 / 80 = 55.0 % → 66.67 vs limit 80.00 kVA PASS
kW checkUP = 40 / 72.0 = 55.6 % → 40.00 vs limit 72.00 kW PASS
Battery stringNs = 384 / 12 = 32; 32 × 1 = 32 blocks; installed E = 50 × 384 × 1 / 1000 = 19.20 kWh (C10)
String currentPbatt = 40 / 0.95 = 42.11 kW; I = 1000 × 42.11 / (0.98 × 384 × 1) = 111.9 A per string
Peukert timeI10 = 50 / 10 = 5.00 A; tnew = 600 × (5.00 / 111.9)1.05 = 22.95 min (new battery to end voltage)
DeratingkT = 0.980 (Li-ion/NiCd, 40 °C is above 35 °C); k = 0.9 × 0.8 × 0.980 × 0.9 = 0.6350
Runtimet = 22.95 × 0.6350 = 14.58 min → 14.58 vs limit 10.00 min PASS
Part load and energyt50 = 14.58 × 21.05 = 30.18 min; E = 40 × 14.58 / 60 = 9.718 kWh delivered
Strings for targetN = ⌈1 × (10 / 14.58)1/1.05⌉ = ⌈0.698⌉ → 1 string
Cycle lifeTypical Li-ion NMC curve at 90 % DoD → about 1,211 cycles (log-log interpolation between tabulated DoD points; indicative)
Result3/3 checks pass → PASS; 80 kVA UPS, 14.58 min at full load against 10 min; governing: runtime. Consider N+1 redundancy for critical loads >20 kVA to improve availability.
ReferenceHand calculation: S_size = max(44, 40/0.9 = 44.44) = 44.44 kVA (kW governs); S_req = 44.44 × 1.25 × 1.2 = 66.67 kVA → 80 kVA (3-ph list, phases = 3); P_UPS = 0.9 × 80 = 72.0 kW; I = 40 kW / 0.95 / (0.98 × 384 V × 1) = 111.9 A; Peukert t_new = 600 × (5.0/111.9)^1.05 = 22.95 min; k = 0.9 × 0.8 × 0.980 × 0.9 = 0.6350; t = 22.95 × 0.6350 = 14.58 min vs 10 min target; t_50 = t × 2^1.05 = 30.18 min; E = 40 × 14.58/60 = 9.718 kWh; N_req = ceil(1 × (10/14.58)^(1/1.05)) = 1; cycle life at 90 % DoD (typical curve) = 1211 (validation case c0021-nmc-hot-40c)

Example 12 — LiFePO4 at 5 °C

Below 15 °C the Li-ion temperature factor is 0.95.

Given: Critical load 40 kW / 44 kVA, target runtime 10 min; online double-conversion UPS, 400 V three-phase 50 Hz, efficiency 0.95, N redundancy; safety margin 1.25, growth 1.2. Battery: Li-ion LiFePO4, 384 V DC bus of 12 V 50 Ah (C10) blocks, 1 string; DoD 90 % (technology default), end-of-life 0.8, ageing 0.9, 5 °C.

Sizing loadcos φ = 40 / 44 = 0.909; Ssize = max(S, P / 0.9) = max(44, 40 / 0.9 = 44.44) = 44.44 kVA (kW rating governs)
UPS ratingSreq = 44.44 × 1.25 × 1.2 = 66.67 kVA → next standard three-phase rating = 80 kVA; PUPS = 0.9 × 80 = 72.0 kW
kVA checkSreq ≤ SUPS; load US = 44 / 80 = 55.0 % → 66.67 vs limit 80.00 kVA PASS
kW checkUP = 40 / 72.0 = 55.6 % → 40.00 vs limit 72.00 kW PASS
Battery stringNs = 384 / 12 = 32; 32 × 1 = 32 blocks; installed E = 50 × 384 × 1 / 1000 = 19.20 kWh (C10)
String currentPbatt = 40 / 0.95 = 42.11 kW; I = 1000 × 42.11 / (0.98 × 384 × 1) = 111.9 A per string
Peukert timeI10 = 50 / 10 = 5.00 A; tnew = 600 × (5.00 / 111.9)1.05 = 22.95 min (new battery to end voltage)
DeratingkT = 0.950 (Li-ion/NiCd, 5 °C is below 15 °C); k = 0.9 × 0.8 × 0.950 × 0.9 = 0.6156
Runtimet = 22.95 × 0.6156 = 14.13 min → 14.13 vs limit 10.00 min PASS
Part load and energyt50 = 14.13 × 21.05 = 29.26 min; E = 40 × 14.13 / 60 = 9.420 kWh delivered
Strings for targetN = ⌈1 × (10 / 14.13)1/1.05⌉ = ⌈0.719⌉ → 1 string
Cycle lifeTypical Li-ion LiFePO4 curve at 90 % DoD → about 3,121 cycles (log-log interpolation between tabulated DoD points; indicative)
Result3/3 checks pass → PASS; 80 kVA UPS, 14.13 min at full load against 10 min; governing: runtime. Consider N+1 redundancy for critical loads >20 kVA to improve availability.
ReferenceHand calculation: S_size = max(44, 40/0.9 = 44.44) = 44.44 kVA (kW governs); S_req = 44.44 × 1.25 × 1.2 = 66.67 kVA → 80 kVA (3-ph list, phases = 3); P_UPS = 0.9 × 80 = 72.0 kW; I = 40 kW / 0.95 / (0.98 × 384 V × 1) = 111.9 A; Peukert t_new = 600 × (5.0/111.9)^1.05 = 22.95 min; k = 0.9 × 0.8 × 0.950 × 0.9 = 0.6156; t = 22.95 × 0.6156 = 14.13 min vs 10 min target; t_50 = t × 2^1.05 = 29.26 min; E = 40 × 14.13/60 = 9.420 kWh; N_req = ceil(1 × (10/14.13)^(1/1.05)) = 1; cycle life at 90 % DoD (typical curve) = 3121 (validation case c0021-lfp-cold-5c)

Example 13 — NiCd battery on a 240 V bus

NiCd (n = 1.15, average voltage 0.95 of nominal, 80 % DoD) for a 10 kW load over 20 minutes.

Given: Critical load 10 kW / 12 kVA, target runtime 20 min; online double-conversion UPS, 400 V three-phase 50 Hz, efficiency 0.95, N redundancy; safety margin 1.25, growth 1.2. Battery: NiCd, 240 V DC bus of 12 V 150 Ah (C10) blocks, 1 string; DoD 80 % (technology default), end-of-life 0.8, ageing 0.9, 25 °C.

Sizing loadcos φ = 10 / 12 = 0.833; Ssize = max(S, P / 0.9) = max(12, 10 / 0.9 = 11.11) = 12.00 kVA (kVA rating governs)
UPS ratingSreq = 12.00 × 1.25 × 1.2 = 18.00 kVA → next standard three-phase rating = 20 kVA; PUPS = 0.9 × 20 = 18.0 kW
kVA checkSreq ≤ SUPS; load US = 12 / 20 = 60.0 % → 18.00 vs limit 20.00 kVA PASS
kW checkUP = 10 / 18.0 = 55.6 % → 10.00 vs limit 18.00 kW PASS
Battery stringNs = 240 / 12 = 20; 20 × 1 = 20 blocks; installed E = 150 × 240 × 1 / 1000 = 36.00 kWh (C10)
String currentPbatt = 10 / 0.95 = 10.53 kW; I = 1000 × 10.53 / (0.95 × 240 × 1) = 46.2 A per string
Peukert timeI10 = 150 / 10 = 15.0 A; tnew = 600 × (15.0 / 46.2)1.15 = 164.69 min (new battery to end voltage)
DeratingkT = 1.000 (Li-ion/NiCd, 25 °C is 15–35 °C band); k = 0.8 × 0.8 × 1.000 × 0.9 = 0.5760
Runtimet = 164.69 × 0.5760 = 94.86 min → 94.86 vs limit 20.00 min PASS
Part load and energyt50 = 94.86 × 21.15 = 210.51 min; E = 10 × 94.86 / 60 = 15.810 kWh delivered
Strings for targetN = ⌈1 × (20 / 94.86)1/1.15⌉ = ⌈0.258⌉ → 1 string
Cycle lifeTypical NiCd curve at 80 % DoD → about 2,000 cycles (log-log interpolation between tabulated DoD points; indicative)
Result3/3 checks pass → PASS; 20 kVA UPS, 94.86 min at full load against 20 min; governing: ups rating. Runtime at full load (94.9 min) significantly exceeds target (20.0 min). Consider reducing battery capacity to optimize cost.
ReferenceHand calculation: S_size = max(12, 10/0.9 = 11.11) = 12.00 kVA (kVA governs); S_req = 12.00 × 1.25 × 1.2 = 18.00 kVA → 20 kVA (3-ph list, phases = 3); P_UPS = 0.9 × 20 = 18.0 kW; I = 10 kW / 0.95 / (0.95 × 240 V × 1) = 46.2 A; Peukert t_new = 600 × (15.0/46.2)^1.15 = 164.69 min; k = 0.8 × 0.8 × 1.000 × 0.9 = 0.5760; t = 164.69 × 0.5760 = 94.86 min vs 20 min target; t_50 = t × 2^1.15 = 210.51 min; E = 10 × 94.86/60 = 15.810 kWh; N_req = ceil(1 × (20/94.86)^(1/1.15)) = 1; cycle life at 80 % DoD (typical curve) = 2000 (validation case c0021-nicd-240v-20min)

Example 14 — Short 5 minute ride-through, VRLA-AGM 3-5 year

A 5 minute bridge to generator start with 3-5 year AGM blocks: high current, strong Peukert penalty.

Given: Critical load 80 kW / 90 kVA, target runtime 5 min; online double-conversion UPS, 400 V three-phase 50 Hz, efficiency 0.95, N redundancy; safety margin 1.25, growth 1.2. Battery: VRLA-AGM (3-5 year), 384 V DC bus of 12 V 100 Ah (C10) blocks, 1 string; DoD 80 % (technology default), end-of-life 0.8, ageing 0.9, 25 °C.

Sizing loadcos φ = 80 / 90 = 0.889; Ssize = max(S, P / 0.9) = max(90, 80 / 0.9 = 88.89) = 90.00 kVA (kVA rating governs)
UPS ratingSreq = 90.00 × 1.25 × 1.2 = 135.00 kVA → next standard three-phase rating = 160 kVA; PUPS = 0.9 × 160 = 144.0 kW
kVA checkSreq ≤ SUPS; load US = 90 / 160 = 56.2 % → 135.00 vs limit 160.00 kVA PASS
kW checkUP = 80 / 144.0 = 55.6 % → 80.00 vs limit 144.00 kW PASS
Battery stringNs = 384 / 12 = 32; 32 × 1 = 32 blocks; installed E = 100 × 384 × 1 / 1000 = 38.40 kWh (C10)
String currentPbatt = 80 / 0.95 = 84.21 kW; I = 1000 × 84.21 / (0.95 × 384 × 1) = 230.8 A per string
Peukert timeI10 = 100 / 10 = 10.0 A; tnew = 600 × (10.0 / 230.8)1.3 = 10.14 min (new battery to end voltage)
DeratingkT = 1.000 (lead-acid at 25 °C: no credit above 25 °C); k = 0.8 × 0.8 × 1.000 × 0.9 = 0.5760
Runtimet = 10.14 × 0.5760 = 5.84 min → 5.84 vs limit 5.00 min PASS
Part load and energyt50 = 5.84 × 21.3 = 14.37 min; E = 80 × 5.84 / 60 = 7.784 kWh delivered
Strings for targetN = ⌈1 × (5 / 5.84)1/1.3⌉ = ⌈0.888⌉ → 1 string
Cycle lifeTypical VRLA-AGM (3-5 year) curve at 80 % DoD → about 300 cycles (log-log interpolation between tabulated DoD points; indicative)
Result3/3 checks pass → PASS; 160 kVA UPS, 5.84 min at full load against 5 min; governing: runtime. Consider N+1 redundancy for critical loads >20 kVA to improve availability.
ReferenceHand calculation: S_size = max(90, 80/0.9 = 88.89) = 90.00 kVA (kVA governs); S_req = 90.00 × 1.25 × 1.2 = 135.00 kVA → 160 kVA (3-ph list, phases = 3); P_UPS = 0.9 × 160 = 144.0 kW; I = 80 kW / 0.95 / (0.95 × 384 V × 1) = 230.8 A; Peukert t_new = 600 × (10.0/230.8)^1.3 = 10.14 min; k = 0.8 × 0.8 × 1.000 × 0.9 = 0.5760; t = 10.14 × 0.5760 = 5.84 min vs 5 min target; t_50 = t × 2^1.3 = 14.37 min; E = 80 × 5.84/60 = 7.784 kWh; N_req = ceil(1 × (5/5.84)^(1/1.3)) = 1; cycle life at 80 % DoD (typical curve) = 300 (validation case c0021-agm-short-5min)

Example 15 — 60 minutes on one VRLA-Gel string

A one-hour target at 20 kW with one string of 12 V 100 Ah gel blocks: the target is not met and two strings (2^1.25 = 2.38 times the runtime) are needed.

Given: Critical load 20 kW / 24 kVA, target runtime 60 min; online double-conversion UPS, 400 V three-phase 50 Hz, efficiency 0.95, N redundancy; safety margin 1.25, growth 1.2. Battery: VRLA-Gel (5-10 year), 384 V DC bus of 12 V 100 Ah (C10) blocks, 1 string; DoD 80 % (technology default), end-of-life 0.8, ageing 0.9, 25 °C.

Sizing loadcos φ = 20 / 24 = 0.833; Ssize = max(S, P / 0.9) = max(24, 20 / 0.9 = 22.22) = 24.00 kVA (kVA rating governs)
UPS ratingSreq = 24.00 × 1.25 × 1.2 = 36.00 kVA → next standard three-phase rating = 40 kVA; PUPS = 0.9 × 40 = 36.0 kW
kVA checkSreq ≤ SUPS; load US = 24 / 40 = 60.0 % → 36.00 vs limit 40.00 kVA PASS
kW checkUP = 20 / 36.0 = 55.6 % → 20.00 vs limit 36.00 kW PASS
Battery stringNs = 384 / 12 = 32; 32 × 1 = 32 blocks; installed E = 100 × 384 × 1 / 1000 = 38.40 kWh (C10)
String currentPbatt = 20 / 0.95 = 21.05 kW; I = 1000 × 21.05 / (0.95 × 384 × 1) = 57.7 A per string
Peukert timeI10 = 100 / 10 = 10.0 A; tnew = 600 × (10.0 / 57.7)1.25 = 67.08 min (new battery to end voltage)
DeratingkT = 1.000 (lead-acid at 25 °C: no credit above 25 °C); k = 0.8 × 0.8 × 1.000 × 0.9 = 0.5760
Runtimet = 67.08 × 0.5760 = 38.64 min → 38.64 vs limit 60.00 min FAIL
Part load and energyt50 = 38.64 × 21.25 = 91.90 min; E = 20 × 38.64 / 60 = 12.879 kWh delivered
Strings for targetN = ⌈1 × (60 / 38.64)1/1.25⌉ = ⌈1.422⌉ → 2 strings
Cycle lifeTypical VRLA-Gel (5-10 year) curve at 80 % DoD → about 600 cycles (log-log interpolation between tabulated DoD points; indicative)
Result2/3 checks pass → FAIL; 40 kVA UPS, 38.64 min at full load against 60 min; governing: runtime. Runtime at full load (38.6 min) is less than target (60.0 min). Additional battery capacity required. Consider N+1 redundancy for critical loads >20 kVA to improve availability.
ReferenceHand calculation: S_size = max(24, 20/0.9 = 22.22) = 24.00 kVA (kVA governs); S_req = 24.00 × 1.25 × 1.2 = 36.00 kVA → 40 kVA (3-ph list, phases = 3); P_UPS = 0.9 × 40 = 36.0 kW; I = 20 kW / 0.95 / (0.95 × 384 V × 1) = 57.7 A; Peukert t_new = 600 × (10.0/57.7)^1.25 = 67.08 min; k = 0.8 × 0.8 × 1.000 × 0.9 = 0.5760; t = 67.08 × 0.5760 = 38.64 min vs 60 min target; t_50 = t × 2^1.25 = 91.90 min; E = 20 × 38.64/60 = 12.879 kWh; N_req = ceil(1 × (60/38.64)^(1/1.25)) = 2; cycle life at 80 % DoD (typical curve) = 600 (validation case c0021-gel-60min-one-string)

Example 16 — Two hour runtime on LiFePO4

An extended 120 min target with 200 Ah LiFePO4 blocks on 3 strings: low current, little Peukert loss.

Given: Critical load 15 kW / 16.7 kVA, target runtime 120 min; online double-conversion UPS, 400 V three-phase 50 Hz, efficiency 0.95, N redundancy; safety margin 1.25, growth 1.2. Battery: Li-ion LiFePO4, 384 V DC bus of 12 V 200 Ah (C10) blocks, 3 strings; DoD 90 % (technology default), end-of-life 0.8, ageing 0.9, 25 °C.

Sizing loadcos φ = 15 / 16.7 = 0.898; Ssize = max(S, P / 0.9) = max(16.7, 15 / 0.9 = 16.67) = 16.70 kVA (kVA rating governs)
UPS ratingSreq = 16.70 × 1.25 × 1.2 = 25.05 kVA → next standard three-phase rating = 30 kVA; PUPS = 0.9 × 30 = 27.0 kW
kVA checkSreq ≤ SUPS; load US = 16.7 / 30 = 55.7 % → 25.05 vs limit 30.00 kVA PASS
kW checkUP = 15 / 27.0 = 55.6 % → 15.00 vs limit 27.00 kW PASS
Battery stringNs = 384 / 12 = 32; 32 × 3 = 96 blocks; installed E = 200 × 384 × 3 / 1000 = 230.40 kWh (C10)
String currentPbatt = 15 / 0.95 = 15.79 kW; I = 1000 × 15.79 / (0.98 × 384 × 3) = 14.0 A per string
Peukert timeI10 = 200 / 10 = 20.0 A; tnew = 600 × (20.0 / 14.0)1.05 = 873.49 min (new battery to end voltage)
DeratingkT = 1.000 (Li-ion/NiCd, 25 °C is 15–35 °C band); k = 0.9 × 0.8 × 1.000 × 0.9 = 0.6480
Runtimet = 873.49 × 0.6480 = 566.02 min → 566.02 vs limit 120.00 min PASS
Part load and energyt50 = 566.02 × 21.05 = 1,171.97 min; E = 15 × 566.02 / 60 = 141.506 kWh delivered
Strings for targetN = ⌈3 × (120 / 566.02)1/1.05⌉ = ⌈0.685⌉ → 1 string
Cycle lifeTypical Li-ion LiFePO4 curve at 90 % DoD → about 3,121 cycles (log-log interpolation between tabulated DoD points; indicative)
Result3/3 checks pass → PASS; 30 kVA UPS, 566.02 min at full load against 120 min; governing: ups rating. Runtime at full load (566.0 min) significantly exceeds target (120.0 min). Consider reducing battery capacity to optimize cost.
ReferenceHand calculation: S_size = max(16.7, 15/0.9 = 16.67) = 16.70 kVA (kVA governs); S_req = 16.70 × 1.25 × 1.2 = 25.05 kVA → 30 kVA (3-ph list, phases = 3); P_UPS = 0.9 × 30 = 27.0 kW; I = 15 kW / 0.95 / (0.98 × 384 V × 3) = 14.0 A; Peukert t_new = 600 × (20.0/14.0)^1.05 = 873.49 min; k = 0.9 × 0.8 × 1.000 × 0.9 = 0.6480; t = 873.49 × 0.6480 = 566.02 min vs 120 min target; t_50 = t × 2^1.05 = 1171.97 min; E = 15 × 566.02/60 = 141.506 kWh; N_req = ceil(3 × (120/566.02)^(1/1.05)) = 1; cycle life at 90 % DoD (typical curve) = 3121 (validation case c0021-lfp-2h-long-runtime)

Example 17 — Target needs more than ten strings

200 kW for 60 min from 12 V 100 Ah blocks would need more than ten strings: strings_for_target is null and the tool suggests larger blocks.

Given: Critical load 200 kW / 220 kVA, target runtime 60 min; online double-conversion UPS, 400 V three-phase 50 Hz, efficiency 0.95, N redundancy; safety margin 1.25, growth 1.2. Battery: VRLA-AGM (5-10 year), 480 V DC bus of 12 V 100 Ah (C10) blocks, 1 string; DoD 80 % (technology default), end-of-life 0.8, ageing 0.9, 25 °C.

Sizing loadcos φ = 200 / 220 = 0.909; Ssize = max(S, P / 0.9) = max(220, 200 / 0.9 = 222.22) = 222.22 kVA (kW rating governs)
UPS ratingSreq = 222.22 × 1.25 × 1.2 = 333.33 kVA → next standard three-phase rating = 400 kVA; PUPS = 0.9 × 400 = 360.0 kW
kVA checkSreq ≤ SUPS; load US = 220 / 400 = 55.0 % → 333.33 vs limit 400.00 kVA PASS
kW checkUP = 200 / 360.0 = 55.6 % → 200.00 vs limit 360.00 kW PASS
Battery stringNs = 480 / 12 = 40; 40 × 1 = 40 blocks; installed E = 100 × 480 × 1 / 1000 = 48.00 kWh (C10)
String currentPbatt = 200 / 0.95 = 210.53 kW; I = 1000 × 210.53 / (0.95 × 480 × 1) = 461.7 A per string
Peukert timeI10 = 100 / 10 = 10.0 A; tnew = 600 × (10.0 / 461.7)1.3 = 4.12 min (new battery to end voltage)
DeratingkT = 1.000 (lead-acid at 25 °C: no credit above 25 °C); k = 0.8 × 0.8 × 1.000 × 0.9 = 0.5760
Runtimet = 4.12 × 0.5760 = 2.37 min → 2.37 vs limit 60.00 min FAIL
Part load and energyt50 = 2.37 × 21.3 = 5.84 min; E = 200 × 2.37 / 60 = 7.903 kWh delivered
Strings for targetN = ⌈1 × (60 / 2.37)1/1.3⌉ = ⌈12.006⌉ → 13 > 10 strings → not reachable (strings_for_target null)
Cycle lifeTypical VRLA-AGM (5-10 year) curve at 80 % DoD → about 300 cycles (log-log interpolation between tabulated DoD points; indicative)
Result2/3 checks pass → FAIL; 400 kVA UPS, 2.37 min at full load against 60 min; governing: runtime. Runtime at full load (2.4 min) is less than target (60.0 min). Additional battery capacity required. Runtime less than 5 minutes is insufficient for most applications. Consider N+1 redundancy for critical loads >20 kVA to improve availability.
ReferenceHand calculation: S_size = max(220, 200/0.9 = 222.22) = 222.22 kVA (kW governs); S_req = 222.22 × 1.25 × 1.2 = 333.33 kVA → 400 kVA (3-ph list, phases = 3); P_UPS = 0.9 × 400 = 360.0 kW; I = 200 kW / 0.95 / (0.95 × 480 V × 1) = 461.7 A; Peukert t_new = 600 × (10.0/461.7)^1.3 = 4.12 min; k = 0.8 × 0.8 × 1.000 × 0.9 = 0.5760; t = 4.12 × 0.5760 = 2.37 min vs 60 min target; t_50 = t × 2^1.3 = 5.84 min; E = 200 × 2.37/60 = 7.903 kWh; N_req = ceil(1 × (60/2.37)^(1/1.3)) = 13; cycle life at 80 % DoD (typical curve) = 300 (validation case c0021-target-beyond-ten-strings)

Example 18 — Over-provisioned battery, fewer strings suffice

Four strings comfortably exceed a 10 minute target at 20 kW; the fewest strings that still meet it are reported.

Given: Critical load 20 kW / 23 kVA, target runtime 10 min; online double-conversion UPS, 400 V three-phase 50 Hz, efficiency 0.95, N redundancy; safety margin 1.25, growth 1.2. Battery: VRLA-AGM (5-10 year), 384 V DC bus of 12 V 100 Ah (C10) blocks, 4 strings; DoD 80 % (technology default), end-of-life 0.8, ageing 0.9, 25 °C.

Sizing loadcos φ = 20 / 23 = 0.870; Ssize = max(S, P / 0.9) = max(23, 20 / 0.9 = 22.22) = 23.00 kVA (kVA rating governs)
UPS ratingSreq = 23.00 × 1.25 × 1.2 = 34.50 kVA → next standard three-phase rating = 40 kVA; PUPS = 0.9 × 40 = 36.0 kW
kVA checkSreq ≤ SUPS; load US = 23 / 40 = 57.5 % → 34.50 vs limit 40.00 kVA PASS
kW checkUP = 20 / 36.0 = 55.6 % → 20.00 vs limit 36.00 kW PASS
Battery stringNs = 384 / 12 = 32; 32 × 4 = 128 blocks; installed E = 100 × 384 × 4 / 1000 = 153.60 kWh (C10)
String currentPbatt = 20 / 0.95 = 21.05 kW; I = 1000 × 21.05 / (0.95 × 384 × 4) = 14.4 A per string
Peukert timeI10 = 100 / 10 = 10.0 A; tnew = 600 × (10.0 / 14.4)1.3 = 372.57 min (new battery to end voltage)
DeratingkT = 1.000 (lead-acid at 25 °C: no credit above 25 °C); k = 0.8 × 0.8 × 1.000 × 0.9 = 0.5760
Runtimet = 372.57 × 0.5760 = 214.60 min → 214.60 vs limit 10.00 min PASS
Part load and energyt50 = 214.60 × 21.3 = 528.40 min; E = 20 × 214.60 / 60 = 71.533 kWh delivered
Strings for targetN = ⌈4 × (10 / 214.60)1/1.3⌉ = ⌈0.378⌉ → 1 string
Cycle lifeTypical VRLA-AGM (5-10 year) curve at 80 % DoD → about 300 cycles (log-log interpolation between tabulated DoD points; indicative)
Result3/3 checks pass → PASS; 40 kVA UPS, 214.60 min at full load against 10 min; governing: ups rating. Consider N+1 redundancy for critical loads >20 kVA to improve availability. Runtime at full load (214.6 min) significantly exceeds target (10.0 min). Consider reducing battery capacity to optimize cost.
ReferenceHand calculation: S_size = max(23, 20/0.9 = 22.22) = 23.00 kVA (kVA governs); S_req = 23.00 × 1.25 × 1.2 = 34.50 kVA → 40 kVA (3-ph list, phases = 3); P_UPS = 0.9 × 40 = 36.0 kW; I = 20 kW / 0.95 / (0.95 × 384 V × 4) = 14.4 A; Peukert t_new = 600 × (10.0/14.4)^1.3 = 372.57 min; k = 0.8 × 0.8 × 1.000 × 0.9 = 0.5760; t = 372.57 × 0.5760 = 214.60 min vs 10 min target; t_50 = t × 2^1.3 = 528.40 min; E = 20 × 214.60/60 = 71.533 kWh; N_req = ceil(4 × (10/214.60)^(1/1.3)) = 1; cycle life at 80 % DoD (typical curve) = 300 (validation case c0021-overprovisioned-four-strings)

Example 19 — New LiFePO4 battery, no derating

DoD 100 %, end-of-life 1.0 and ageing 1.0 at 25 °C: the runtime equals the Peukert time of a new battery.

Given: Critical load 30 kW / 32 kVA, target runtime 15 min; online double-conversion UPS, 400 V three-phase 50 Hz, efficiency 0.95, N redundancy; safety margin 1.25, growth 1.2. Battery: Li-ion LiFePO4, 384 V DC bus of 12 V 100 Ah (C10) blocks, 1 string; DoD 100 %, end-of-life 1, ageing 1, 25 °C.

Sizing loadcos φ = 30 / 32 = 0.938; Ssize = max(S, P / 0.9) = max(32, 30 / 0.9 = 33.33) = 33.33 kVA (kW rating governs)
UPS ratingSreq = 33.33 × 1.25 × 1.2 = 50.00 kVA → next standard three-phase rating = 60 kVA; PUPS = 0.9 × 60 = 54.0 kW
kVA checkSreq ≤ SUPS; load US = 32 / 60 = 53.3 % → 50.00 vs limit 60.00 kVA PASS
kW checkUP = 30 / 54.0 = 55.6 % → 30.00 vs limit 54.00 kW PASS
Battery stringNs = 384 / 12 = 32; 32 × 1 = 32 blocks; installed E = 100 × 384 × 1 / 1000 = 38.40 kWh (C10)
String currentPbatt = 30 / 0.95 = 31.58 kW; I = 1000 × 31.58 / (0.98 × 384 × 1) = 83.9 A per string
Peukert timeI10 = 100 / 10 = 10.0 A; tnew = 600 × (10.0 / 83.9)1.05 = 64.29 min (new battery to end voltage)
DeratingkT = 1.000 (Li-ion/NiCd, 25 °C is 15–35 °C band); k = 1 × 1 × 1.000 × 1 = 1.0000
Runtimet = 64.29 × 1.0000 = 64.29 min → 64.29 vs limit 15.00 min PASS
Part load and energyt50 = 64.29 × 21.05 = 133.11 min; E = 30 × 64.29 / 60 = 32.143 kWh delivered
Strings for targetN = ⌈1 × (15 / 64.29)1/1.05⌉ = ⌈0.250⌉ → 1 string
Cycle lifeTypical Li-ion LiFePO4 curve at 100 % DoD → about 2,500 cycles (log-log interpolation between tabulated DoD points; indicative)
Result3/3 checks pass → PASS; 60 kVA UPS, 64.29 min at full load against 15 min; governing: ups active power. Consider N+1 redundancy for critical loads >20 kVA to improve availability. Runtime at full load (64.3 min) significantly exceeds target (15.0 min). Consider reducing battery capacity to optimize cost.
ReferenceHand calculation: S_size = max(32, 30/0.9 = 33.33) = 33.33 kVA (kW governs); S_req = 33.33 × 1.25 × 1.2 = 50.00 kVA → 60 kVA (3-ph list, phases = 3); P_UPS = 0.9 × 60 = 54.0 kW; I = 30 kW / 0.95 / (0.98 × 384 V × 1) = 83.9 A; Peukert t_new = 600 × (10.0/83.9)^1.05 = 64.29 min; k = 1 × 1 × 1.000 × 1 = 1.0000; t = 64.29 × 1.0000 = 64.29 min vs 15 min target; t_50 = t × 2^1.05 = 133.11 min; E = 30 × 64.29/60 = 32.143 kWh; N_req = ceil(1 × (15/64.29)^(1/1.05)) = 1; cycle life at 100 % DoD (typical curve) = 2500 (validation case c0021-new-battery-no-derating)

Example 20 — 1.5 MW beyond the standard list

2550 kVA is above the largest 2000 kVA standard rating, so the rating rounds up to the next 100 kVA; four strings of 2 V 3000 Ah cells.

Given: Critical load 1,500 kW / 1,700 kVA, target runtime 10 min; online double-conversion UPS, 400 V three-phase 50 Hz, efficiency 0.95, N redundancy; safety margin 1.25, growth 1.2. Battery: VRLA-AGM (5-10 year), 480 V DC bus of 2 V 3,000 Ah (C10) blocks, 4 strings; DoD 80 % (technology default), end-of-life 0.8, ageing 0.9, 25 °C.

Sizing loadcos φ = 1,500 / 1,700 = 0.882; Ssize = max(S, P / 0.9) = max(1,700, 1,500 / 0.9 = 1,666.67) = 1,700.00 kVA (kVA rating governs)
UPS ratingSreq = 1,700.00 × 1.25 × 1.2 = 2,550.00 kVA → beyond the 2000 kVA list: next 100 kVA = 2,600 kVA; PUPS = 0.9 × 2,600 = 2,340.0 kW
kVA checkSreq ≤ SUPS; load US = 1,700 / 2,600 = 65.4 % → 2,550.00 vs limit 2,600.00 kVA PASS
kW checkUP = 1,500 / 2,340.0 = 64.1 % → 1,500.00 vs limit 2,340.00 kW PASS
Battery stringNs = 480 / 2 = 240; 240 × 4 = 960 blocks; installed E = 3,000 × 480 × 4 / 1000 = 5,760.00 kWh (C10)
String currentPbatt = 1,500 / 0.95 = 1,578.95 kW; I = 1000 × 1,578.95 / (0.95 × 480 × 4) = 865.7 A per string
Peukert timeI10 = 3,000 / 10 = 300 A; tnew = 600 × (300 / 865.7)1.3 = 151.31 min (new battery to end voltage)
DeratingkT = 1.000 (lead-acid at 25 °C: no credit above 25 °C); k = 0.8 × 0.8 × 1.000 × 0.9 = 0.5760
Runtimet = 151.31 × 0.5760 = 87.15 min → 87.15 vs limit 10.00 min PASS
Part load and energyt50 = 87.15 × 21.3 = 214.60 min; E = 1,500 × 87.15 / 60 = 2,178.842 kWh delivered
Strings for targetN = ⌈4 × (10 / 87.15)1/1.3⌉ = ⌈0.756⌉ → 1 string
Cycle lifeTypical VRLA-AGM (5-10 year) curve at 80 % DoD → about 300 cycles (log-log interpolation between tabulated DoD points; indicative)
Result3/3 checks pass → PASS; 2,600 kVA UPS, 87.15 min at full load against 10 min; governing: ups rating. Consider N+1 redundancy for critical loads >20 kVA to improve availability. Runtime at full load (87.2 min) significantly exceeds target (10.0 min). Consider reducing battery capacity to optimize cost.
ReferenceHand calculation: S_size = max(1700, 1500/0.9 = 1666.67) = 1700.00 kVA (kVA governs); S_req = 1700.00 × 1.25 × 1.2 = 2550.00 kVA → 2600 kVA (3-ph list, phases = 3); P_UPS = 0.9 × 2600 = 2340.0 kW; I = 1500 kW / 0.95 / (0.95 × 480 V × 4) = 865.7 A; Peukert t_new = 600 × (300.0/865.7)^1.3 = 151.31 min; k = 0.8 × 0.8 × 1.000 × 0.9 = 0.5760; t = 151.31 × 0.5760 = 87.15 min vs 10 min target; t_50 = t × 2^1.3 = 214.60 min; E = 1500 × 87.15/60 = 2178.842 kWh; N_req = ceil(4 × (10/87.15)^(1/1.3)) = 1; cycle life at 80 % DoD (typical curve) = 300 (validation case c0021-1500kw-beyond-standard-list)

Example 21 — 480 V 60 Hz with 2N redundancy

A North American 100 kW / 111 kVA load at 480 V 60 Hz; 2N redundancy only changes the reported availability (99.999 %).

Given: Critical load 100 kW / 111 kVA, target runtime 10 min; online double-conversion UPS, 480 V three-phase 60 Hz, efficiency 0.95, 2N redundancy; safety margin 1.25, growth 1.2. Battery: VRLA-AGM (5-10 year), 480 V DC bus of 12 V 150 Ah (C10) blocks, 2 strings; DoD 80 % (technology default), end-of-life 0.8, ageing 0.9, 25 °C.

Sizing loadcos φ = 100 / 111 = 0.901; Ssize = max(S, P / 0.9) = max(111, 100 / 0.9 = 111.11) = 111.11 kVA (kW rating governs)
UPS ratingSreq = 111.11 × 1.25 × 1.2 = 166.67 kVA → next standard three-phase rating = 200 kVA; PUPS = 0.9 × 200 = 180.0 kW
kVA checkSreq ≤ SUPS; load US = 111 / 200 = 55.5 % → 166.67 vs limit 200.00 kVA PASS
kW checkUP = 100 / 180.0 = 55.6 % → 100.00 vs limit 180.00 kW PASS
Battery stringNs = 480 / 12 = 40; 40 × 2 = 80 blocks; installed E = 150 × 480 × 2 / 1000 = 144.00 kWh (C10)
String currentPbatt = 100 / 0.95 = 105.26 kW; I = 1000 × 105.26 / (0.95 × 480 × 2) = 115.4 A per string
Peukert timeI10 = 150 / 10 = 15.0 A; tnew = 600 × (15.0 / 115.4)1.3 = 42.28 min (new battery to end voltage)
DeratingkT = 1.000 (lead-acid at 25 °C: no credit above 25 °C); k = 0.8 × 0.8 × 1.000 × 0.9 = 0.5760
Runtimet = 42.28 × 0.5760 = 24.35 min → 24.35 vs limit 10.00 min PASS
Part load and energyt50 = 24.35 × 21.3 = 59.96 min; E = 100 × 24.35 / 60 = 40.586 kWh delivered
Strings for targetN = ⌈2 × (10 / 24.35)1/1.3⌉ = ⌈1.009⌉ → 2 strings
Cycle lifeTypical VRLA-AGM (5-10 year) curve at 80 % DoD → about 300 cycles (log-log interpolation between tabulated DoD points; indicative)
Availability2N → 99.999 % (indicative)
Result3/3 checks pass → PASS; 200 kVA UPS, 24.35 min at full load against 10 min; governing: ups active power. Runtime at full load (24.4 min) significantly exceeds target (10.0 min). Consider reducing battery capacity to optimize cost.
ReferenceHand calculation: S_size = max(111, 100/0.9 = 111.11) = 111.11 kVA (kW governs); S_req = 111.11 × 1.25 × 1.2 = 166.67 kVA → 200 kVA (3-ph list, phases = 3); P_UPS = 0.9 × 200 = 180.0 kW; I = 100 kW / 0.95 / (0.95 × 480 V × 2) = 115.4 A; Peukert t_new = 600 × (15.0/115.4)^1.3 = 42.28 min; k = 0.8 × 0.8 × 1.000 × 0.9 = 0.5760; t = 42.28 × 0.5760 = 24.35 min vs 10 min target; t_50 = t × 2^1.3 = 59.96 min; E = 100 × 24.35/60 = 40.586 kWh; N_req = ceil(2 × (10/24.35)^(1/1.3)) = 2; cycle life at 80 % DoD (typical curve) = 300 (validation case c0021-480v-60hz-2n)

Example 22 — Small 120 V UPS on a 24 V bank

A 0.8 kW / 1 kVA desktop load with two 12 V 9 Ah blocks: 1.5 kVA from the single-phase list, but the runtime is under 5 minutes and three strings are needed for 10 minutes.

Given: Critical load 0.8 kW / 1 kVA, target runtime 10 min; offline/standby UPS, 120 V single-phase 50 Hz, efficiency 0.9, N redundancy; safety margin 1.25, growth 1.2. Battery: VRLA-AGM (5-10 year), 24 V DC bus of 12 V 9 Ah (C10) blocks, 1 string; DoD 80 % (technology default), end-of-life 0.8, ageing 0.9, 25 °C.

Sizing loadcos φ = 0.8 / 1 = 0.800; Ssize = max(S, P / 0.9) = max(1, 0.8 / 0.9 = 0.89) = 1.00 kVA (kVA rating governs)
UPS ratingSreq = 1.00 × 1.25 × 1.2 = 1.50 kVA → next standard single-phase rating = 1.5 kVA; PUPS = 0.9 × 1.5 = 1.4 kW
kVA checkSreq ≤ SUPS; load US = 1 / 1.5 = 66.7 % → 1.50 vs limit 1.50 kVA PASS
kW checkUP = 0.8 / 1.4 = 59.3 % → 0.80 vs limit 1.35 kW PASS
Battery stringNs = 24 / 12 = 2; 2 × 1 = 2 blocks; installed E = 9 × 24 × 1 / 1000 = 0.22 kWh (C10)
String currentPbatt = 0.8 / 0.9 = 0.89 kW; I = 1000 × 0.89 / (0.95 × 24 × 1) = 39.0 A per string
Peukert timeI10 = 9 / 10 = 0.900 A; tnew = 600 × (0.900 / 39.0)1.3 = 4.47 min (new battery to end voltage)
DeratingkT = 1.000 (lead-acid at 25 °C: no credit above 25 °C); k = 0.8 × 0.8 × 1.000 × 0.9 = 0.5760
Runtimet = 4.47 × 0.5760 = 2.58 min → 2.58 vs limit 10.00 min FAIL
Part load and energyt50 = 2.58 × 21.3 = 6.34 min; E = 0.8 × 2.58 / 60 = 0.034 kWh delivered
Strings for targetN = ⌈1 × (10 / 2.58)1/1.3⌉ = ⌈2.839⌉ → 3 strings
Cycle lifeTypical VRLA-AGM (5-10 year) curve at 80 % DoD → about 300 cycles (log-log interpolation between tabulated DoD points; indicative)
Result2/3 checks pass → FAIL; 1.5 kVA UPS, 2.58 min at full load against 10 min; governing: runtime. Runtime at full load (2.6 min) is less than target (10.0 min). Additional battery capacity required. Runtime less than 5 minutes is insufficient for most applications.
ReferenceHand calculation: S_size = max(1, 0.8/0.9 = 0.89) = 1.00 kVA (kVA governs); S_req = 1.00 × 1.25 × 1.2 = 1.50 kVA → 1.5 kVA (1-ph list, phases = 1); P_UPS = 0.9 × 1.5 = 1.4 kW; I = 0.8 kW / 0.9 / (0.95 × 24 V × 1) = 39.0 A; Peukert t_new = 600 × (0.9/39.0)^1.3 = 4.47 min; k = 0.8 × 0.8 × 1.000 × 0.9 = 0.5760; t = 4.47 × 0.5760 = 2.58 min vs 10 min target; t_50 = t × 2^1.3 = 6.34 min; E = 0.8 × 2.58/60 = 0.034 kWh; N_req = ceil(1 × (10/2.58)^(1/1.3)) = 3; cycle life at 80 % DoD (typical curve) = 300 (validation case c0021-small-120v-24v-bank)

Example 23 — Delta conversion, N+1, 97 % efficiency

A higher-efficiency delta-conversion UPS draws less battery power for the same load; N+1 reports 99.99 % availability.

Given: Critical load 150 kW / 170 kVA, target runtime 8 min; delta-conversion UPS, 400 V three-phase 50 Hz, efficiency 0.97, N+1 redundancy; safety margin 1.25, growth 1.2. Battery: VRLA-AGM (5-10 year), 480 V DC bus of 12 V 200 Ah (C10) blocks, 2 strings; DoD 80 % (technology default), end-of-life 0.8, ageing 0.9, 25 °C.

Sizing loadcos φ = 150 / 170 = 0.882; Ssize = max(S, P / 0.9) = max(170, 150 / 0.9 = 166.67) = 170.00 kVA (kVA rating governs)
UPS ratingSreq = 170.00 × 1.25 × 1.2 = 255.00 kVA → next standard three-phase rating = 300 kVA; PUPS = 0.9 × 300 = 270.0 kW
kVA checkSreq ≤ SUPS; load US = 170 / 300 = 56.7 % → 255.00 vs limit 300.00 kVA PASS
kW checkUP = 150 / 270.0 = 55.6 % → 150.00 vs limit 270.00 kW PASS
Battery stringNs = 480 / 12 = 40; 40 × 2 = 80 blocks; installed E = 200 × 480 × 2 / 1000 = 192.00 kWh (C10)
String currentPbatt = 150 / 0.97 = 154.64 kW; I = 1000 × 154.64 / (0.95 × 480 × 2) = 169.6 A per string
Peukert timeI10 = 200 / 10 = 20.0 A; tnew = 600 × (20.0 / 169.6)1.3 = 37.27 min (new battery to end voltage)
DeratingkT = 1.000 (lead-acid at 25 °C: no credit above 25 °C); k = 0.8 × 0.8 × 1.000 × 0.9 = 0.5760
Runtimet = 37.27 × 0.5760 = 21.47 min → 21.47 vs limit 8.00 min PASS
Part load and energyt50 = 21.47 × 21.3 = 52.86 min; E = 150 × 21.47 / 60 = 53.670 kWh delivered
Strings for targetN = ⌈2 × (8 / 21.47)1/1.3⌉ = ⌈0.936⌉ → 1 string
Cycle lifeTypical VRLA-AGM (5-10 year) curve at 80 % DoD → about 300 cycles (log-log interpolation between tabulated DoD points; indicative)
AvailabilityN+1 → 99.99 % (indicative)
Result3/3 checks pass → PASS; 300 kVA UPS, 21.47 min at full load against 8 min; governing: ups rating. Runtime at full load (21.5 min) significantly exceeds target (8.0 min). Consider reducing battery capacity to optimize cost.
ReferenceHand calculation: S_size = max(170, 150/0.9 = 166.67) = 170.00 kVA (kVA governs); S_req = 170.00 × 1.25 × 1.2 = 255.00 kVA → 300 kVA (3-ph list, phases = 3); P_UPS = 0.9 × 300 = 270.0 kW; I = 150 kW / 0.97 / (0.95 × 480 V × 2) = 169.6 A; Peukert t_new = 600 × (20.0/169.6)^1.3 = 37.27 min; k = 0.8 × 0.8 × 1.000 × 0.9 = 0.5760; t = 37.27 × 0.5760 = 21.47 min vs 8 min target; t_50 = t × 2^1.3 = 52.86 min; E = 150 × 21.47/60 = 53.670 kWh; N_req = ceil(2 × (8/21.47)^(1/1.3)) = 1; cycle life at 80 % DoD (typical curve) = 300 (validation case c0021-delta-conversion-n-plus-1)

Example 24 — Runtime curve at 25-100 % of rating

The detailed response adds runtime at 25, 50, 75 and 100 % of the UPS rating at the load power factor; each point is a separate Peukert discharge.

Given: Critical load 40 kW / 50 kVA, target runtime 15 min; online double-conversion UPS, 400 V three-phase 50 Hz, efficiency 0.95, N redundancy; safety margin 1.25, growth 1.2. Battery: VRLA-AGM (5-10 year), 384 V DC bus of 12 V 100 Ah (C10) blocks, 2 strings; DoD 80 % (technology default), end-of-life 0.8, ageing 0.9, 25 °C.

Sizing loadcos φ = 40 / 50 = 0.800; Ssize = max(S, P / 0.9) = max(50, 40 / 0.9 = 44.44) = 50.00 kVA (kVA rating governs)
UPS ratingSreq = 50.00 × 1.25 × 1.2 = 75.00 kVA → next standard three-phase rating = 80 kVA; PUPS = 0.9 × 80 = 72.0 kW
kVA checkSreq ≤ SUPS; load US = 50 / 80 = 62.5 % → 75.00 vs limit 80.00 kVA PASS
kW checkUP = 40 / 72.0 = 55.6 % → 40.00 vs limit 72.00 kW PASS
Battery stringNs = 384 / 12 = 32; 32 × 2 = 64 blocks; installed E = 100 × 384 × 2 / 1000 = 76.80 kWh (C10)
String currentPbatt = 40 / 0.95 = 42.11 kW; I = 1000 × 42.11 / (0.95 × 384 × 2) = 57.7 A per string
Peukert timeI10 = 100 / 10 = 10.0 A; tnew = 600 × (10.0 / 57.7)1.3 = 61.45 min (new battery to end voltage)
DeratingkT = 1.000 (lead-acid at 25 °C: no credit above 25 °C); k = 0.8 × 0.8 × 1.000 × 0.9 = 0.5760
Runtimet = 61.45 × 0.5760 = 35.40 min → 35.40 vs limit 15.00 min PASS
Part load and energyt50 = 35.40 × 21.3 = 87.15 min; E = 40 × 35.40 / 60 = 23.597 kWh delivered
Strings for targetN = ⌈2 × (15 / 35.40)1/1.3⌉ = ⌈1.033⌉ → 2 strings
Runtime curveP = 80 kVA × % × 0.800, each a Peukert discharge: 25 % → 16.00 kW, 116.48 min; 50 % → 32.00 kW, 47.31 min; 75 % → 48.00 kW, 27.93 min; 100 % → 64.00 kW, 19.21 min
Cycle lifeTypical VRLA-AGM (5-10 year) curve at 80 % DoD → about 300 cycles (log-log interpolation between tabulated DoD points; indicative)
Result3/3 checks pass → PASS; 80 kVA UPS, 35.40 min at full load against 15 min; governing: ups rating. Consider N+1 redundancy for critical loads >20 kVA to improve availability. Runtime at full load (35.4 min) significantly exceeds target (15.0 min). Consider reducing battery capacity to optimize cost.
ReferenceHand calculation: S_size = max(50, 40/0.9 = 44.44) = 50.00 kVA (kVA governs); S_req = 50.00 × 1.25 × 1.2 = 75.00 kVA → 80 kVA (3-ph list, phases = 3); P_UPS = 0.9 × 80 = 72.0 kW; I = 40 kW / 0.95 / (0.95 × 384 V × 2) = 57.7 A; Peukert t_new = 600 × (10.0/57.7)^1.3 = 61.45 min; k = 0.8 × 0.8 × 1.000 × 0.9 = 0.5760; t = 61.45 × 0.5760 = 35.40 min vs 15 min target; t_50 = t × 2^1.3 = 87.15 min; E = 40 × 35.40/60 = 23.597 kWh; N_req = ceil(2 × (15/35.40)^(1/1.3)) = 2; cycle life at 80 % DoD (typical curve) = 300; curve: 25 % → P = 16.00 kW, I = 23.1 A, t = 116.48 min, 50 % → P = 32.00 kW, I = 46.2 A, t = 47.31 min, 75 % → P = 48.00 kW, I = 69.3 A, t = 27.93 min, 100 % → P = 64.00 kW, I = 92.3 A, t = 19.21 min (validation case c0021-detailed-runtime-curve)

Example 25 — 208 V three-phase (US line-to-line)

208 V is the North American three-phase line-to-line voltage: with phases = 3 the 42 kVA requirement selects 60 kVA from the three-phase list (the old ≤ 240 V rule treated it as single-phase and gave 100 kVA).

Given: Critical load 25 kW / 28 kVA, target runtime 10 min; online double-conversion UPS, 208 V three-phase 60 Hz, efficiency 0.95, N redundancy; safety margin 1.25, growth 1.2. Battery: VRLA-AGM (5-10 year), 384 V DC bus of 12 V 100 Ah (C10) blocks, 2 strings; DoD 80 % (technology default), end-of-life 0.8, ageing 0.9, 25 °C.

Sizing loadcos φ = 25 / 28 = 0.893; Ssize = max(S, P / 0.9) = max(28, 25 / 0.9 = 27.78) = 28.00 kVA (kVA rating governs)
UPS ratingSreq = 28.00 × 1.25 × 1.2 = 42.00 kVA → next standard three-phase rating = 60 kVA; PUPS = 0.9 × 60 = 54.0 kW
kVA checkSreq ≤ SUPS; load US = 28 / 60 = 46.7 % → 42.00 vs limit 60.00 kVA PASS
kW checkUP = 25 / 54.0 = 46.3 % → 25.00 vs limit 54.00 kW PASS
Battery stringNs = 384 / 12 = 32; 32 × 2 = 64 blocks; installed E = 100 × 384 × 2 / 1000 = 76.80 kWh (C10)
String currentPbatt = 25 / 0.95 = 26.32 kW; I = 1000 × 26.32 / (0.95 × 384 × 2) = 36.1 A per string
Peukert timeI10 = 100 / 10 = 10.0 A; tnew = 600 × (10.0 / 36.1)1.3 = 113.21 min (new battery to end voltage)
DeratingkT = 1.000 (lead-acid at 25 °C: no credit above 25 °C); k = 0.8 × 0.8 × 1.000 × 0.9 = 0.5760
Runtimet = 113.21 × 0.5760 = 65.21 min → 65.21 vs limit 10.00 min PASS
Part load and energyt50 = 65.21 × 21.3 = 160.56 min; E = 25 × 65.21 / 60 = 27.170 kWh delivered
Strings for targetN = ⌈2 × (10 / 65.21)1/1.3⌉ = ⌈0.473⌉ → 1 string
Cycle lifeTypical VRLA-AGM (5-10 year) curve at 80 % DoD → about 300 cycles (log-log interpolation between tabulated DoD points; indicative)
Result3/3 checks pass → PASS; 60 kVA UPS, 65.21 min at full load against 10 min; governing: ups rating. Consider N+1 redundancy for critical loads >20 kVA to improve availability. Runtime at full load (65.2 min) significantly exceeds target (10.0 min). Consider reducing battery capacity to optimize cost.
ReferenceHand calculation: S_size = max(28, 25/0.9 = 27.78) = 28.00 kVA (kVA governs); S_req = 28.00 × 1.25 × 1.2 = 42.00 kVA → 60 kVA (3-ph list, phases = 3); P_UPS = 0.9 × 60 = 54.0 kW; I = 25 kW / 0.95 / (0.95 × 384 V × 2) = 36.1 A; Peukert t_new = 600 × (10.0/36.1)^1.3 = 113.21 min; k = 0.8 × 0.8 × 1.000 × 0.9 = 0.5760; t = 113.21 × 0.5760 = 65.21 min vs 10 min target; t_50 = t × 2^1.3 = 160.56 min; E = 25 × 65.21/60 = 27.170 kWh; N_req = ceil(2 × (10/65.21)^(1/1.3)) = 1; cycle life at 80 % DoD (typical curve) = 300 (validation case c0021-208v-three-phase)

Example 26 — Single-phase 30 kVA (3:1 range)

A 20 kVA single-phase load needs 30 kVA, which single-phase-output (3:1) UPS ranges make; the old list stopped at 20 kVA and jumped to 100 kVA.

Given: Critical load 18 kW / 20 kVA, target runtime 10 min; online double-conversion UPS, 230 V single-phase 50 Hz, efficiency 0.95, N redundancy; safety margin 1.25, growth 1.2. Battery: VRLA-AGM (5-10 year), 384 V DC bus of 12 V 100 Ah (C10) blocks, 2 strings; DoD 80 % (technology default), end-of-life 0.8, ageing 0.9, 25 °C.

Sizing loadcos φ = 18 / 20 = 0.900; Ssize = max(S, P / 0.9) = max(20, 18 / 0.9 = 20.00) = 20.00 kVA (kVA rating governs)
UPS ratingSreq = 20.00 × 1.25 × 1.2 = 30.00 kVA → next standard single-phase rating = 30 kVA; PUPS = 0.9 × 30 = 27.0 kW
kVA checkSreq ≤ SUPS; load US = 20 / 30 = 66.7 % → 30.00 vs limit 30.00 kVA PASS
kW checkUP = 18 / 27.0 = 66.7 % → 18.00 vs limit 27.00 kW PASS
Battery stringNs = 384 / 12 = 32; 32 × 2 = 64 blocks; installed E = 100 × 384 × 2 / 1000 = 76.80 kWh (C10)
String currentPbatt = 18 / 0.95 = 18.95 kW; I = 1000 × 18.95 / (0.95 × 384 × 2) = 26.0 A per string
Peukert timeI10 = 100 / 10 = 10.0 A; tnew = 600 × (10.0 / 26.0)1.3 = 173.52 min (new battery to end voltage)
DeratingkT = 1.000 (lead-acid at 25 °C: no credit above 25 °C); k = 0.8 × 0.8 × 1.000 × 0.9 = 0.5760
Runtimet = 173.52 × 0.5760 = 99.95 min → 99.95 vs limit 10.00 min PASS
Part load and energyt50 = 99.95 × 21.3 = 246.10 min; E = 18 × 99.95 / 60 = 29.984 kWh delivered
Strings for targetN = ⌈2 × (10 / 99.95)1/1.3⌉ = ⌈0.340⌉ → 1 string
Cycle lifeTypical VRLA-AGM (5-10 year) curve at 80 % DoD → about 300 cycles (log-log interpolation between tabulated DoD points; indicative)
Result3/3 checks pass → PASS; 30 kVA UPS, 99.95 min at full load against 10 min; governing: ups rating. Runtime at full load (99.9 min) significantly exceeds target (10.0 min). Consider reducing battery capacity to optimize cost.
ReferenceHand calculation: S_size = max(20, 18/0.9 = 20.00) = 20.00 kVA (kVA governs); S_req = 20.00 × 1.25 × 1.2 = 30.00 kVA → 30 kVA (1-ph list, phases = 1); P_UPS = 0.9 × 30 = 27.0 kW; I = 18 kW / 0.95 / (0.95 × 384 V × 2) = 26.0 A; Peukert t_new = 600 × (10.0/26.0)^1.3 = 173.52 min; k = 0.8 × 0.8 × 1.000 × 0.9 = 0.5760; t = 173.52 × 0.5760 = 99.95 min vs 10 min target; t_50 = t × 2^1.3 = 246.10 min; E = 18 × 99.95/60 = 29.984 kWh; N_req = ceil(2 × (10/99.95)^(1/1.3)) = 1; cycle life at 80 % DoD (typical curve) = 300 (validation case c0021-1ph-30kva-3to1-unit)

Example 27 — Single-phase requirement above 40 kVA

The 50 kVA requirement (sized on kW / 0.9) exceeds the largest standard single-phase UPS (40 kVA): the rating check fails and governs, pointing to a three-phase UPS.

Given: Critical load 30 kW / 33 kVA, target runtime 10 min; online double-conversion UPS, 230 V single-phase 50 Hz, efficiency 0.95, N redundancy; safety margin 1.25, growth 1.2. Battery: VRLA-AGM (5-10 year), 384 V DC bus of 12 V 100 Ah (C10) blocks, 2 strings; DoD 80 % (technology default), end-of-life 0.8, ageing 0.9, 25 °C.

Sizing loadcos φ = 30 / 33 = 0.909; Ssize = max(S, P / 0.9) = max(33, 30 / 0.9 = 33.33) = 33.33 kVA (kW rating governs)
UPS ratingSreq = 33.33 × 1.25 × 1.2 = 50.00 kVA → exceeds the largest single-phase rating (40 kVA): no adequate single-phase UPS, largest shown = 40 kVA; PUPS = 0.9 × 40 = 36.0 kW
kVA checkSreq ≤ SUPS; load US = 33 / 40 = 82.5 % → 50.00 vs limit 40.00 kVA FAIL
kW checkUP = 30 / 36.0 = 83.3 % → 30.00 vs limit 36.00 kW PASS
Battery stringNs = 384 / 12 = 32; 32 × 2 = 64 blocks; installed E = 100 × 384 × 2 / 1000 = 76.80 kWh (C10)
String currentPbatt = 30 / 0.95 = 31.58 kW; I = 1000 × 31.58 / (0.95 × 384 × 2) = 43.3 A per string
Peukert timeI10 = 100 / 10 = 10.0 A; tnew = 600 × (10.0 / 43.3)1.3 = 89.32 min (new battery to end voltage)
DeratingkT = 1.000 (lead-acid at 25 °C: no credit above 25 °C); k = 0.8 × 0.8 × 1.000 × 0.9 = 0.5760
Runtimet = 89.32 × 0.5760 = 51.45 min → 51.45 vs limit 10.00 min PASS
Part load and energyt50 = 51.45 × 21.3 = 126.68 min; E = 30 × 51.45 / 60 = 25.724 kWh delivered
Strings for targetN = ⌈2 × (10 / 51.45)1/1.3⌉ = ⌈0.567⌉ → 1 string
Cycle lifeTypical VRLA-AGM (5-10 year) curve at 80 % DoD → about 300 cycles (log-log interpolation between tabulated DoD points; indicative)
Result2/3 checks pass → FAIL; 40 kVA UPS, 51.45 min at full load against 10 min; governing: ups rating. Required rating 50.0 kVA exceeds the largest standard single-phase UPS (40 kVA): use a three-phase UPS or parallel single-phase units. Consider N+1 redundancy for critical loads >20 kVA to improve availability. Runtime at full load (51.4 min) significantly exceeds target (10.0 min). Consider reducing battery capacity to optimize cost.
ReferenceHand calculation: S_size = max(33, 30/0.9 = 33.33) = 33.33 kVA (kW governs); S_req = 33.33 × 1.25 × 1.2 = 50.00 kVA → 40 kVA (1-ph list, phases = 1); P_UPS = 0.9 × 40 = 36.0 kW; I = 30 kW / 0.95 / (0.95 × 384 V × 2) = 43.3 A; Peukert t_new = 600 × (10.0/43.3)^1.3 = 89.32 min; k = 0.8 × 0.8 × 1.000 × 0.9 = 0.5760; t = 89.32 × 0.5760 = 51.45 min vs 10 min target; t_50 = t × 2^1.3 = 126.68 min; E = 30 × 51.45/60 = 25.724 kWh; N_req = ceil(2 × (10/51.45)^(1/1.3)) = 1; cycle life at 80 % DoD (typical curve) = 300; 50.00 kVA > largest single-phase rating 40 kVA → rating check fails (validation case c0021-1ph-beyond-40kva-fails)

Example 28 — VRLA at 100 % depth of discharge

Full-depth discharges: about 200 cycles on the typical VRLA-AGM curve (the old formula gave 0) and the runtime uses the whole rate-adjusted capacity.

Given: Critical load 30 kW / 35 kVA, target runtime 15 min; online double-conversion UPS, 400 V three-phase 50 Hz, efficiency 0.95, N redundancy; safety margin 1.25, growth 1.2. Battery: VRLA-AGM (5-10 year), 384 V DC bus of 12 V 100 Ah (C10) blocks, 1 string; DoD 100 %, end-of-life 0.8, ageing 0.9, 25 °C.

Sizing loadcos φ = 30 / 35 = 0.857; Ssize = max(S, P / 0.9) = max(35, 30 / 0.9 = 33.33) = 35.00 kVA (kVA rating governs)
UPS ratingSreq = 35.00 × 1.25 × 1.2 = 52.50 kVA → next standard three-phase rating = 60 kVA; PUPS = 0.9 × 60 = 54.0 kW
kVA checkSreq ≤ SUPS; load US = 35 / 60 = 58.3 % → 52.50 vs limit 60.00 kVA PASS
kW checkUP = 30 / 54.0 = 55.6 % → 30.00 vs limit 54.00 kW PASS
Battery stringNs = 384 / 12 = 32; 32 × 1 = 32 blocks; installed E = 100 × 384 × 1 / 1000 = 38.40 kWh (C10)
String currentPbatt = 30 / 0.95 = 31.58 kW; I = 1000 × 31.58 / (0.95 × 384 × 1) = 86.6 A per string
Peukert timeI10 = 100 / 10 = 10.0 A; tnew = 600 × (10.0 / 86.6)1.3 = 36.27 min (new battery to end voltage)
DeratingkT = 1.000 (lead-acid at 25 °C: no credit above 25 °C); k = 1 × 0.8 × 1.000 × 0.9 = 0.7200
Runtimet = 36.27 × 0.7200 = 26.12 min → 26.12 vs limit 15.00 min PASS
Part load and energyt50 = 26.12 × 21.3 = 64.31 min; E = 30 × 26.12 / 60 = 13.059 kWh delivered
Strings for targetN = ⌈1 × (15 / 26.12)1/1.3⌉ = ⌈0.653⌉ → 1 string
Cycle lifeTypical VRLA-AGM (5-10 year) curve at 100 % DoD → about 200 cycles (log-log interpolation between tabulated DoD points; indicative)
Result3/3 checks pass → PASS; 60 kVA UPS, 26.12 min at full load against 15 min; governing: ups rating. Consider N+1 redundancy for critical loads >20 kVA to improve availability. Runtime at full load (26.1 min) significantly exceeds target (15.0 min). Consider reducing battery capacity to optimize cost.
ReferenceHand calculation: S_size = max(35, 30/0.9 = 33.33) = 35.00 kVA (kVA governs); S_req = 35.00 × 1.25 × 1.2 = 52.50 kVA → 60 kVA (3-ph list, phases = 3); P_UPS = 0.9 × 60 = 54.0 kW; I = 30 kW / 0.95 / (0.95 × 384 V × 1) = 86.6 A; Peukert t_new = 600 × (10.0/86.6)^1.3 = 36.27 min; k = 1 × 0.8 × 1.000 × 0.9 = 0.7200; t = 36.27 × 0.7200 = 26.12 min vs 15 min target; t_50 = t × 2^1.3 = 64.31 min; E = 30 × 26.12/60 = 13.059 kWh; N_req = ceil(1 × (15/26.12)^(1/1.3)) = 1; cycle life at 100 % DoD (typical curve) = 200 (validation case c0021-vrla-dod-100-cycle-life)

Example 29 — VRLA-Gel at 60 % depth of discharge

Between tabulated points the cycle life follows a power law (log-log interpolation): 60 % DoD lies between 600 cycles at 80 % and 1000 at 50 %.

Given: Critical load 30 kW / 35 kVA, target runtime 15 min; online double-conversion UPS, 400 V three-phase 50 Hz, efficiency 0.95, N redundancy; safety margin 1.25, growth 1.2. Battery: VRLA-Gel (10-15 year), 384 V DC bus of 12 V 100 Ah (C10) blocks, 2 strings; DoD 60 %, end-of-life 0.8, ageing 0.9, 25 °C.

Sizing loadcos φ = 30 / 35 = 0.857; Ssize = max(S, P / 0.9) = max(35, 30 / 0.9 = 33.33) = 35.00 kVA (kVA rating governs)
UPS ratingSreq = 35.00 × 1.25 × 1.2 = 52.50 kVA → next standard three-phase rating = 60 kVA; PUPS = 0.9 × 60 = 54.0 kW
kVA checkSreq ≤ SUPS; load US = 35 / 60 = 58.3 % → 52.50 vs limit 60.00 kVA PASS
kW checkUP = 30 / 54.0 = 55.6 % → 30.00 vs limit 54.00 kW PASS
Battery stringNs = 384 / 12 = 32; 32 × 2 = 64 blocks; installed E = 100 × 384 × 2 / 1000 = 76.80 kWh (C10)
String currentPbatt = 30 / 0.95 = 31.58 kW; I = 1000 × 31.58 / (0.95 × 384 × 2) = 43.3 A per string
Peukert timeI10 = 100 / 10 = 10.0 A; tnew = 600 × (10.0 / 43.3)1.25 = 96.11 min (new battery to end voltage)
DeratingkT = 1.000 (lead-acid at 25 °C: no credit above 25 °C); k = 0.6 × 0.8 × 1.000 × 0.9 = 0.4320
Runtimet = 96.11 × 0.4320 = 41.52 min → 41.52 vs limit 15.00 min PASS
Part load and energyt50 = 41.52 × 21.25 = 98.75 min; E = 30 × 41.52 / 60 = 20.759 kWh delivered
Strings for targetN = ⌈2 × (15 / 41.52)1/1.25⌉ = ⌈0.886⌉ → 1 string
Cycle lifeTypical VRLA-Gel (10-15 year) curve at 60 % DoD → about 820 cycles (log-log interpolation between tabulated DoD points; indicative)
Result3/3 checks pass → PASS; 60 kVA UPS, 41.52 min at full load against 15 min; governing: ups rating. Consider N+1 redundancy for critical loads >20 kVA to improve availability. Runtime at full load (41.5 min) significantly exceeds target (15.0 min). Consider reducing battery capacity to optimize cost.
ReferenceHand calculation: S_size = max(35, 30/0.9 = 33.33) = 35.00 kVA (kVA governs); S_req = 35.00 × 1.25 × 1.2 = 52.50 kVA → 60 kVA (3-ph list, phases = 3); P_UPS = 0.9 × 60 = 54.0 kW; I = 30 kW / 0.95 / (0.95 × 384 V × 2) = 43.3 A; Peukert t_new = 600 × (10.0/43.3)^1.25 = 96.11 min; k = 0.6 × 0.8 × 1.000 × 0.9 = 0.4320; t = 96.11 × 0.4320 = 41.52 min vs 15 min target; t_50 = t × 2^1.25 = 98.75 min; E = 30 × 41.52/60 = 20.759 kWh; N_req = ceil(2 × (15/41.52)^(1/1.25)) = 1; cycle life at 60 % DoD (typical curve) = 820 (validation case c0021-gel-dod-60-cycle-life)

Standards & References

  • IEC 62040-1 — Uninterruptible power systems (UPS) — Part 1: Safety requirements
  • IEC 62040-3 — Uninterruptible power systems (UPS) — Part 3: Method of specifying the performance and test requirements
  • IEEE 446-1995 — Recommended practice for emergency and standby power systems for industrial and commercial applications (Orange Book)
  • IEEE 485-2020 — Recommended practice for sizing lead-acid batteries for stationary applications
  • IEEE 1184-2006 — Guide for batteries for uninterruptible power supply systems
  • AS/NZS 62040.1 — Uninterruptible power systems (UPS) — Australian/New Zealand adoption of IEC 62040
  • Peukert’s Law — empirical relationship between discharge rate and available capacity for lead-acid batteries (W. Peukert, 1897)

Tips & Limitations

Tips
  • Target UPS utilization of 60–80% for optimal efficiency and headroom for load growth and transient overloads.
  • For VRLA batteries, depth of discharge above 80% significantly reduces cycle life — the default 80% DoD is recommended.
  • Li-ion batteries have a much flatter Peukert curve (exponent ~1.05) compared to VRLA (~1.3), meaning less capacity loss at high discharge rates.
  • Battery capacity is rated at the C10 rate (10-hour discharge). Shorter runtimes mean higher discharge rates and reduced effective capacity via Peukert’s law.
  • For critical loads above 20 kVA, consider N+1 redundancy to improve system availability from 99.0% to 99.99%.
  • Battery life halves for every 10°C above the 25°C reference temperature. Keep battery rooms at 20–25°C for maximum life.
  • More than 4 parallel strings can cause current sharing issues — consider larger capacity batteries instead.
Limitations
  • Steady-state sizing only — inrush currents from motor or transformer loads during transfer are not modelled. Use the equipment inrush_factor field for manual allowance.
  • Simplified Peukert model — the calculator uses a single Peukert exponent per technology at a constant current (the battery current rises as the voltage falls in a constant-power UPS discharge). Actual constant-power (W/cell) tables from the manufacturer should be used for detailed design.
  • Temperature model is linear — the 1%/°C reduction below 25°C approximates IEEE 485 Table 1; no credit is taken above 25°C. Below 0°C, manufacturer-specific derating curves should be consulted.
  • No harmonic analysis — UPS input current distortion and K-factor loading are not considered. Use the harmonics calculator for those checks.
  • Weight estimates are approximate — actual weights depend on specific manufacturer and model. Use for preliminary floor loading assessment only.
  • No battery charger sizing — the recharge time and charger current requirements are not calculated.

Developer Guide

Architecture

File layout:

  • components/c0021_ups_sizing/component.py — Component registration, PARAMETER_SCHEMA, SVG generators, summary card builder
  • components/c0021_ups_sizing/calculations.py — Pure math functions, battery characteristics tables, Peukert calculation, runtime estimation (no Django dependencies)
  • components/c0021_ups_sizing/equations.py — LaTeX equation builder for step-by-step report output
  • components/c0021_ups_sizing/excel_generator.py — Excel export generation

The calculator class is UPSSizingCalculator, extending ElectricalCalculator. It delegates all math to calculate_ups_sizing(data) in calculations.py.

Key data structures:

  • STANDARD_UPS_RATINGS_SINGLE_PHASE — list of standard single-phase kVA sizes (1 to 40)
  • STANDARD_UPS_RATINGS_THREE_PHASE — list of standard three-phase kVA sizes (10 to 2000)
  • BATTERY_CHARACTERISTICS — dict keyed by technology name with design life, max DoD, Peukert exponent, EODV per cell, and temperature coefficient
  • UPS_EFFICIENCY — dict of typical efficiency by topology
  • REDUNDANCY_AVAILABILITY — dict mapping redundancy config to estimated availability percentage

Code Paths

Key functions in calculations.py:

Function Purpose
calculate_ups_sizing(data) Main orchestrator: calls all sub-functions, returns full results dict
calculate_equipment_total_load(equipment_list) Sum equipment W/VA with quantity, derive missing power values from PF
calculate_sizing_load_kva(kw, kva) max(kVA, kW / 0.9) and which rating governs
calculate_required_ups_rating(size_kva, safety, growth) Apply safety margin and growth factor to get the required output kVA
select_standard_ups_rating(required_kva, phases) Next larger standard UPS from the single- or three-phase list; (rating, within_range)
calculate_strings_for_energy(kwh, v_dc, ah) Total Capacity mode: strings installing at least the required kWh
estimate_cycle_life(technology, dod_percent) Typical cycle life: log-log interpolation of CYCLE_LIFE_CURVES
get_temperature_correction_factor(temp, technology) Lead-acid 1%/°C below 25°C (no credit above), Li-ion/NiCd step model
calculate_string_current(kw, eff, v_dc, k_v, strings) Battery current per string for a load
calculate_peukert_runtime_hours(c10, current, n) Peukert time to end voltage: 10 h × (I10/I)n
calculate_runtime_minutes(kw, c10, v_dc, strings, derating, eff, tech) Peukert time at the load’s current × capacity derating
calculate_runtime_curve(kva, pf, runtime_at, percentages) Runtime at 25–100% of the UPS rating for charting
calculate_strings_for_target(t, strings, t_target, n) Fewest strings meeting the target: ⌈N (ttarget/t)1/n⌉

Key functions in component.py:

Function Purpose
UPSSizingCalculator.validate_parameters() Input validation: JSON parsing, voltage compatibility, runtime/temp/DoD warnings
UPSSizingCalculator.calculate() Gather parameters and delegate to calculate_ups_sizing()
generate_ups_system_diagram_svg(params, results) SVG block diagram with utilization bar, UPS/battery blocks, spec boxes
generate_runtime_chart_svg(params, results) SVG runtime-vs-load curve chart with operating point marker
build_summary_cards(result) Dashboard cards: UPS Rating, Battery Count, Runtime, Availability

Testing

Running tests:

pytest calcs/test_c0021_ups.py -v

Test coverage:

  • Component registration in the calc registry
  • Sample calculation with simple load input (50 kW data centre scenario)
  • SVG diagram and chart generation
  • Equation builder output (unified article list)
  • Regression tests with hand values for the Peukert runtime, the output rating (no efficiency), the kW rating and the temperature factor

The worked examples above are generated from the MCP validation corpus (mcp_public/validation/cases/fe_calc_ups/) by python manage.py generate_help_examples --tool fe_calc_ups, which writes _ups_sizing_examples.html. Add or change a case there, then regenerate; the fragment is never edited by hand.

How to extend:

  1. To add a new battery technology, add an entry to BATTERY_CHARACTERISTICS in calculations.py with design life, Peukert exponent, EODV, and temperature coefficient, then add the technology string to the battery_technology enum in PARAMETER_SCHEMA.
  2. To add new standard UPS sizes, append to STANDARD_UPS_RATINGS_SINGLE_PHASE or STANDARD_UPS_RATINGS_THREE_PHASE (keep sorted).
  3. To add a new redundancy level, add to both REDUNDANCY_AVAILABILITY and the redundancy_config enum in the schema.
  4. Write tests covering new battery technologies, edge cases (0 kW load, maximum parallel strings, extreme temperatures), and verify runtime calculations against manufacturer data sheets.