Overview
Calculates voltage drop for single-phase parallel-connected lighting circuits with sequential cable runs per IEC 60364, BS 7671, and AS/NZS 3000. Each light fixture taps off a shared cable that runs from the supply through each light in series. The cable section between any two lights carries the cumulative current of all downstream lights, producing a different voltage drop at each fixture location.
Input Parameters
Circuit Parameters
| Parameter | Type | Default | Range | Description |
|---|---|---|---|---|
supply_voltage |
Number | 230 V | 100 – 400 V | Nominal single-phase supply voltage |
power_factor |
Number | 1.0 | 0.5 – 1.0 | Load power factor (typically 0.95–1.0 for LED) |
frequency |
Enum: 50 / 60 Hz | 50 | — | System frequency |
temperature |
Number | 30 °C | −10 – 90 °C | Cable operating temperature |
Conductor Parameters
| Parameter | Type | Default | Range | Description |
|---|---|---|---|---|
conductor_material |
Enum: copper / aluminium | copper | — | Conductor material |
conductor_csa |
Enum | 1.5 mm² | 0.75 – 500 mm² | Conductor cross-sectional area |
Light String Configuration
| Parameter | Type | Default | Range | Description |
|---|---|---|---|---|
lights |
Array of objects | 4 lights | 1 – 50 items | Sequential light fixtures with cable lengths and power ratings |
lights[n].length |
Number | 10 m | 0.1 – 1000 m | Cable length from previous light (or supply for first light) |
lights[n].power |
Number | 20 W | 0.1 – 5000 W | Light fixture power consumption |
Compliance Settings
| Parameter | Type | Default | Range | Description |
|---|---|---|---|---|
voltage_drop_limit |
Number | 3% | 0.5 – 10% | Maximum allowable voltage drop percentage |
Output Results
Summary Outputs
| Output | Unit | Description |
|---|---|---|
total_power |
W | Sum of all light fixture powers |
cable_resistance |
Ω/km | Conductor resistance at operating temperature |
supply_current |
A | Total current drawn at supply point (first section current) |
max_voltage_drop |
V | Maximum cumulative voltage drop at any light |
max_voltage_drop_percent |
% | Maximum voltage drop as percentage of supply |
max_voltage_drop_location |
Integer | Light number where maximum voltage drop occurs |
min_voltage |
V | Minimum voltage at any light fixture |
compliant |
Boolean | Whether \(V_{d\%,max} \leq\) voltage drop limit |
warnings |
List | Warning messages (over-current, excessive length, etc.) |
Per-Light Outputs (light_details array)
| Output | Unit | Description |
|---|---|---|
section_current |
A | Current through cable section feeding this light |
section_voltage_drop |
V | Voltage drop across this cable section only |
cumulative_voltage_drop |
V | Total voltage drop from supply to this light |
voltage_at_light |
V | Actual voltage at this light fixture |
voltage_drop_percent |
% | Cumulative voltage drop as percentage of supply |
Formulas
Conductor Resistance at Temperature
Where \(R_{20}\) is the conductor resistance at 20 °C (from lookup table), \(\alpha\) is the temperature coefficient, and \(T\) is the operating temperature in °C.
| Material | \(\alpha\) (/°C) |
|---|---|
| Copper | 0.00393 |
| Aluminium | 0.00403 |
Section Current
Each cable section carries the cumulative current of all downstream lights. Section 1 (supply to first light) carries the total circuit current. Working backwards from the last light, each section adds the power of the next upstream light.
Section Voltage Drop
Where the factor of 2 accounts for active and neutral conductors (go-and-return path), \(L_i\) is the cable section length in meters, and \(R(T)\) is in Ω/km. Division by 1000 converts the length–resistance product from m·Ω/km to Ω.
Cumulative Voltage Drop
The total voltage drop at light \(n\) is the sum of all section voltage drops from the supply to that light.
Voltage at Light
Voltage Drop Percentage
Compliance Check
Key Lookup Tables
Copper Resistance at 20 °C (Ω/km)
| CSA (mm²) | R20 (Ω/km) |
|---|---|
| 0.75 | 24.5 |
| 1.0 | 18.1 |
| 1.5 | 12.1 |
| 2.5 | 7.41 |
| 4.0 | 4.61 |
| 6.0 | 3.08 |
| 10 | 1.83 |
| 16 | 1.15 |
| 25 | 0.727 |
| 35 | 0.524 |
| 50 | 0.387 |
| 70 | 0.268 |
| 95 | 0.193 |
| 120 | 0.153 |
| 150 | 0.124 |
| 185 | 0.0991 |
| 240 | 0.0754 |
| 300 | 0.0601 |
| 400 | 0.0470 |
| 500 | 0.0366 |
Aluminium Resistance at 20 °C (Ω/km)
IEC 60228 lists aluminium conductors from 10 mm²; the 2.5, 4 and 6 mm² aluminium values are the component's own (about 1.64× the copper value).
| CSA (mm²) | R20 (Ω/km) |
|---|---|
| 2.5 | 12.2 |
| 4.0 | 7.56 |
| 6.0 | 5.08 |
| 10 | 3.08 |
| 16 | 1.91 |
| 25 | 1.20 |
| 35 | 0.868 |
| 50 | 0.641 |
| 70 | 0.443 |
| 95 | 0.320 |
| 120 | 0.253 |
| 150 | 0.206 |
| 185 | 0.164 |
| 240 | 0.125 |
| 300 | 0.100 |
| 400 | 0.0778 |
| 500 | 0.0605 |
Worked Examples
The 6 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_voltage_drop; worked examples for every calculation).
| # | Case | Cable | Lights / load | R(T) (Ω/km) | Worst light | Max VD | Total vs limit | Result |
|---|---|---|---|---|---|---|---|---|
| 1 | Four LED downlights on 1.5 mm² Cu | 1.5 mm² Cu, 230 V | 4 / 95 W | 12.5755 | 4 (229.7 V) | 0.297 V (0.129 %) | 0.129 / 3 % | PASS |
| 2 | Ten 100 W lights at 75 °C, pf 0.9 | 2.5 mm² Cu, 230 V | 10 / 1,000 W | 9.0117 | 10 (225.2 V) | 4.789 V (2.082 %) | 2.082 / 3 % | PASS |
| 3 | Warehouse high-bays, 5 × 250 W on 2.5 mm² | 2.5 mm² Cu, 230 V | 5 / 1,250 W | 8.1380 | 5 (219.8 V) | 10.242 V (4.453 %) | 4.453 / 3 % | FAIL |
| 4 | Aluminium 4 mm² at 50 °C, three 100 W lights | 4 mm² Al, 230 V | 3 / 300 W | 8.4740 | 3 (229.2 V) | 0.774 V (0.336 %) | 0.336 / 3 % | PASS |
| 5 | Street lighting, 12 × 150 W on 16 mm² Al, 1.5 % upstream | 16 mm² Al, 240 V | 12 / 1,800 W | 2.2179 | 12 (230.4 V) | 9.611 V (4.005 %) | 5.505 / 5 % | FAIL |
| 6 | First light at the supply, ten 58 W fittings on 4 mm² | 4 mm² Cu, 230 V | 10 / 580 W | 4.9723 | 10 (229.0 V) | 0.979 V (0.426 %) | 0.426 / 3 % | PASS |
Example 1 — Four LED downlights on 1.5 mm² Cu
The help page's basic example: unequal spacing and loads, worst drop at the far light.
Given: 4 lights fed in sequence on 1.5 mm² Cu (active + neutral), 230 V single-phase, cos φ = 1, conductor at 30 °C; (section length, light power) from the supply: (15 m, 20 W), (8 m, 30 W), (10 m, 25 W), (12 m, 20 W); voltage-drop limit 3 % from the point of supply (tool default). Engine c0015.
| Resistance | R(T) = R20 × (1 + α(T − 20)) = 12.1 × (1 + 0.00393 × (30 − 20)) = 12.57553 Ω/km | ||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Load | ΣP = 95 W; supply current I1 = ΣP / (V × cos φ) = 95 / (230 × 1) = 0.4130 A | ||||||||||||||||||||||||||||||||||||||||
| Sections | Ik = ΣPdownstream / (V × cos φ); ΔVk = 2 × Ik × Lk × R / 1000; cumulative from the supply:
| ||||||||||||||||||||||||||||||||||||||||
| Worst light | Light 4: ΣΔV = 0.2969 V → 0.2969 / 230 × 100 = 0.129 %; minimum voltage 229.70 V | ||||||||||||||||||||||||||||||||||||||||
| Voltage drop check | 0.129 % ≤ 3 %? → 0.129 vs limit 3.000 % PASS | ||||||||||||||||||||||||||||||||||||||||
| Headroom | Load at the limit = (limit − upstream) / max VD = 3.00 / 0.129 = 23.24 × the present load | ||||||||||||||||||||||||||||||||||||||||
| Result | 1/1 checks pass → PASS; worst light 4 at 0.129 % total; governing: voltage drop | ||||||||||||||||||||||||||||||||||||||||
| Reference | Hand calculation: R(30 °C) = 12.1 × (1 + 0.00393 × 10) = 12.5755 Ω/km (IEC 60228 class 2 R20); section currents 95/75/45/20 W ÷ 230 V = 0.41304/0.32609/0.19565/0.08696 A; ΣΔV = 2 × 12.5755/1000 × (0.41304 × 15 + 0.32609 × 8 + 0.19565 × 10 + 0.08696 × 12) = 0.2969 V = 0.129 %; V = 229.70 V (validation case c0015-4-lights-1mm5-230v) |
Example 2 — Ten 100 W lights at 75 °C, pf 0.9
Uniformly spaced equal lights (tapered current) with a conservative 75 °C conductor temperature.
Given: 10 lights fed in sequence on 2.5 mm² Cu (active + neutral), 230 V single-phase, cos φ = 0.9, conductor at 75 °C; (section length, light power) from the supply: 10 × (10 m, 100 W); voltage-drop limit 3 % from the point of supply (tool default). Engine c0015.
| Resistance | R(T) = R20 × (1 + α(T − 20)) = 7.41 × (1 + 0.00393 × (75 − 20)) = 9.01167 Ω/km | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Load | ΣP = 1,000 W; supply current I1 = ΣP / (V × cos φ) = 1,000 / (230 × 0.9) = 4.8309 A | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Sections | Ik = ΣPdownstream / (V × cos φ); ΔVk = 2 × Ik × Lk × R / 1000; cumulative from the supply:
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Worst light | Light 10: ΣΔV = 4.7888 V → 4.7888 / 230 × 100 = 2.082 %; minimum voltage 225.21 V | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Voltage drop check | 2.082 % ≤ 3 %? → 2.082 vs limit 3.000 % PASS | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Headroom | Load at the limit = (limit − upstream) / max VD = 3.00 / 2.082 = 1.44 × the present load | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Result | 1/1 checks pass → PASS; worst light 10 at 2.082 % total; governing: voltage drop | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Reference | Hand calculation: R = 7.41 × (1 + 0.00393 × 55) = 9.01167 Ω/km; I_k = (11 − k) × 100 ÷ (230 × 0.9); ΣI = 5500 ÷ 207 = 26.570 A; ΔV = 2 × 10 × 9.01167/1000 × 26.570 = 4.7888 V = 2.082 %; load at the 3 % limit 3 ÷ 2.082 = 1.44× (validation case c0015-10-lights-2mm5-75c-pf09) |
Example 3 — Warehouse high-bays, 5 × 250 W on 2.5 mm²
The help page's long run: the drop passes 3 % from the third light on, so the circuit fails.
Given: 5 lights fed in sequence on 2.5 mm² Cu (active + neutral), 230 V single-phase, cos φ = 0.95, conductor at 45 °C; (section length, light power) from the supply: (50 m, 250 W), 4 × (30 m, 250 W); voltage-drop limit 3 % from the point of supply (tool default). Engine c0015.
| Resistance | R(T) = R20 × (1 + α(T − 20)) = 7.41 × (1 + 0.00393 × (45 − 20)) = 8.13803 Ω/km | ||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Load | ΣP = 1,250 W; supply current I1 = ΣP / (V × cos φ) = 1,250 / (230 × 0.95) = 5.7208 A | ||||||||||||||||||||||||||||||||||||||||||||||||
| Sections | Ik = ΣPdownstream / (V × cos φ); ΔVk = 2 × Ik × Lk × R / 1000; cumulative from the supply:
| ||||||||||||||||||||||||||||||||||||||||||||||||
| Worst light | Light 5: ΣΔV = 10.2424 V → 10.2424 / 230 × 100 = 4.453 %; minimum voltage 219.76 V | ||||||||||||||||||||||||||||||||||||||||||||||||
| Voltage drop check | 4.453 % ≤ 3 %? → 4.453 vs limit 3.000 % FAIL | ||||||||||||||||||||||||||||||||||||||||||||||||
| Headroom | Load at the limit = (limit − upstream) / max VD = 3.00 / 4.453 = 0.67 × the present load | ||||||||||||||||||||||||||||||||||||||||||||||||
| Result | 0/1 checks pass → FAIL; worst light 5 at 4.453 % total; governing: voltage drop. Voltage drop of 4.45% exceeds limit of 3.0% | ||||||||||||||||||||||||||||||||||||||||||||||||
| Reference | Hand calculation: R(45 °C) = 7.41 × 1.09825 = 8.13803 Ω/km; I = 1250/1000/750/500/250 W ÷ (230 × 0.95) = 5.72082/4.57666/3.43249/2.28833/1.14416 A; ΔV = 2 × 8.13803/1000 × (5.72082 × 50 + (4.57666 + 3.43249 + 2.28833 + 1.14416) × 30) = 4.6556 + 5.5868 = 10.2424 V = 4.453 % > 3 % (validation case c0015-warehouse-5x250w-2mm5-fail) |
Example 4 — Aluminium 4 mm² at 50 °C, three 100 W lights
Aluminium conductor resistance and its own temperature coefficient (0.00403 /°C).
Given: 3 lights fed in sequence on 4 mm² Al (active + neutral), 230 V single-phase, cos φ = 1, conductor at 50 °C; (section length, light power) from the supply: (20 m, 100 W), 2 × (15 m, 100 W); voltage-drop limit 3 % from the point of supply (tool default). Engine c0015.
| Resistance | R(T) = R20 × (1 + α(T − 20)) = 7.56 × (1 + 0.00403 × (50 − 20)) = 8.47400 Ω/km | ||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Load | ΣP = 300 W; supply current I1 = ΣP / (V × cos φ) = 300 / (230 × 1) = 1.3043 A | ||||||||||||||||||||||||||||||||
| Sections | Ik = ΣPdownstream / (V × cos φ); ΔVk = 2 × Ik × Lk × R / 1000; cumulative from the supply:
| ||||||||||||||||||||||||||||||||
| Worst light | Light 3: ΣΔV = 0.7737 V → 0.7737 / 230 × 100 = 0.336 %; minimum voltage 229.23 V | ||||||||||||||||||||||||||||||||
| Voltage drop check | 0.336 % ≤ 3 %? → 0.336 vs limit 3.000 % PASS | ||||||||||||||||||||||||||||||||
| Headroom | Load at the limit = (limit − upstream) / max VD = 3.00 / 0.336 = 8.92 × the present load | ||||||||||||||||||||||||||||||||
| Result | 1/1 checks pass → PASS; worst light 3 at 0.336 % total; governing: voltage drop | ||||||||||||||||||||||||||||||||
| Reference | Hand calculation: R(50 °C) = 7.56 × (1 + 0.00403 × 30) = 8.4740 Ω/km (component R20 for 4 mm² Al); I = 300/200/100 W ÷ 230 V = 1.30435/0.86957/0.43478 A; ΔV = 2 × 8.4740/1000 × (1.30435 × 20 + 0.86957 × 15 + 0.43478 × 15) = 0.4421 + 0.2211 + 0.1105 = 0.7737 V = 0.336 % (validation case c0015-al-4mm2-50c-3x100w) |
Example 5 — Street lighting, 12 × 150 W on 16 mm² Al, 1.5 % upstream
A 5 % limit from the point of supply with 1.5 % already used upstream: the run itself is 4.0 %, so the total fails.
Given: 12 lights fed in sequence on 16 mm² Al (active + neutral), 240 V single-phase, cos φ = 0.9, conductor at 60 °C; (section length, light power) from the supply: 12 × (40 m, 150 W); voltage-drop limit 5 % from the point of supply, 1.5 % already used upstream. Engine c0015.
| Resistance | R(T) = R20 × (1 + α(T − 20)) = 1.91 × (1 + 0.00403 × (60 − 20)) = 2.21789 Ω/km | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Load | ΣP = 1,800 W; supply current I1 = ΣP / (V × cos φ) = 1,800 / (240 × 0.9) = 8.3333 A | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Sections | Ik = ΣPdownstream / (V × cos φ); ΔVk = 2 × Ik × Lk × R / 1000; cumulative from the supply:
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Worst light | Light 12: ΣΔV = 9.6109 V → 9.6109 / 240 × 100 = 4.005 %; minimum voltage 230.39 V | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Point of supply | Total = upstream + this circuit = 1.5 + 4.005 = 5.505 % | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Voltage drop check | 5.505 % ≤ 5 %? → 5.505 vs limit 5.000 % FAIL | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Headroom | Load at the limit = (limit − upstream) / max VD = 3.50 / 4.005 = 0.87 × the present load | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Result | 0/1 checks pass → FAIL; worst light 12 at 5.505 % total; governing: voltage drop. Voltage drop of 4.00% exceeds limit of 3.5% | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Reference | Hand calculation: R(60 °C) = 1.91 × (1 + 0.00403 × 40) = 2.21789 Ω/km; I_k = (13 − k) × 150 ÷ (240 × 0.9), ΣI = 78 × 150 ÷ 216 = 54.1667 A; ΔV = 2 × 40 × 2.21789/1000 × 54.1667 = 9.6109 V = 4.005 %; total 1.5 + 4.005 = 5.505 % > 5 % (validation case c0015-street-al16-240v-upstream-fail) |
Example 6 — First light at the supply, ten 58 W fittings on 4 mm²
A zero-length first section (light mounted at the board) and tapered spacing — only the c0015 engine allows it.
Given: 10 lights fed in sequence on 4 mm² Cu (active + neutral), 230 V single-phase, cos φ = 0.95, conductor at 40 °C; (section length, light power) from the supply: (0 m, 58 W), 2 × (6 m, 58 W), 2 × (8 m, 58 W), 2 × (10 m, 58 W), 2 × (12 m, 58 W), (15 m, 58 W); voltage-drop limit 3 % from the point of supply (tool default). Engine c0015.
| Resistance | R(T) = R20 × (1 + α(T − 20)) = 4.61 × (1 + 0.00393 × (40 − 20)) = 4.97235 Ω/km | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Load | ΣP = 580 W; supply current I1 = ΣP / (V × cos φ) = 580 / (230 × 0.95) = 2.6545 A | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Sections | Ik = ΣPdownstream / (V × cos φ); ΔVk = 2 × Ik × Lk × R / 1000; cumulative from the supply:
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Worst light | Light 10: ΣΔV = 0.9794 V → 0.9794 / 230 × 100 = 0.426 %; minimum voltage 229.02 V | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Voltage drop check | 0.426 % ≤ 3 %? → 0.426 vs limit 3.000 % PASS | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Headroom | Load at the limit = (limit − upstream) / max VD = 3.00 / 0.426 = 7.05 × the present load | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Result | 1/1 checks pass → PASS; worst light 10 at 0.426 % total; governing: voltage drop | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Reference | Hand calculation: R(40 °C) = 4.61 × (1 + 0.00393 × 20) = 4.97235 Ω/km; I_k = (11 − k) × 58 ÷ (230 × 0.95); section 1 has L = 0 so ΔV1 = 0; ΣI·L = (9 × 6 + 8 × 6 + 7 × 8 + 6 × 8 + 5 × 10 + 4 × 10 + 3 × 12 + 2 × 12 + 1 × 15) × 0.265446 = 371 × 0.265446 = 98.4805 A·m; ΔV = 2 × 4.97235/1000 × 98.4805 = 0.9794 V = 0.426 % (validation case c0015-first-light-at-supply-4mm2) |
Standards & References
- IEC 60364-5-52 — Low-voltage electrical installations — Selection and erection of electrical equipment — Wiring systems
- BS 7671 (IET Wiring Regulations) — Requirements for electrical installations, Appendix 12 (voltage drop)
- AS/NZS 3000:2018 — Electrical installations (Wiring Rules), Clause 3.6 (voltage drop)
- NEC (NFPA 70) — National Electrical Code, Articles 210.19(A) and 215.2(A) (voltage drop recommendations)
- IEC 60228 — Conductors of insulated cables (resistance values at 20 °C)
- Standard voltage drop limit for lighting: typically 3% (configurable per local regulations)
Tips & Limitations
Tips
- The default 3% limit is typical for lighting sub-circuits. Some standards allow up to 5% total (main + sub-circuit combined).
- The worst voltage drop always occurs at the last (most distant) light because cumulative drops accumulate along the cable run.
- LED drivers with wide input voltage ranges (e.g., 180–265 V) tolerate higher voltage drops than fluorescent or incandescent loads.
- For long runs, increasing cable CSA by one standard size often eliminates voltage drop issues cost-effectively.
- Power factor for modern LED luminaires is typically 0.95–1.0. Older magnetic ballast fluorescents may be 0.5–0.6 without correction.
- Higher ambient temperatures increase cable resistance — account for ceiling void, roof space, or enclosed luminaire temperatures.
Limitations
- Single-phase only — three-phase lighting circuits are not supported by this calculator.
- Resistive model only — cable reactance is not included. For small lighting conductors (≤ 16 mm²) reactance is negligible; for larger conductors this is slightly non-conservative.
- No inrush current analysis — LED driver inrush currents at switch-on are not modelled. This calculator is for steady-state voltage drop only.
- Uniform cable — the same conductor material and CSA is assumed for all sections. Mixed cable sizes are not supported.
- Simplified current capacity check — the built-in over-current warning uses an approximate table. Always verify current capacity separately using the full cable sizing calculator (c0030 / c0031).
- Balanced loading assumed — each light draws its rated power at the supply voltage. Voltage-dependent load variation is not modelled.
Developer Guide
Architecture
File layout:
components/c0015_lighting_voltage_drop/component.py— Component registration, parameter schema, summary cards buildercomponents/c0015_lighting_voltage_drop/calculations.py— Pure math functions and resistance lookup tables (no Django dependencies)components/c0015_lighting_voltage_drop/equations.py— MathJax equation builder for report generationcomponents/c0015_lighting_voltage_drop/excel_generator.py— Excel report generation with detailed light-by-light breakdown
The calculator class is LightingVoltageDropCalculator,
extending ElectricalCalculator. The lights
array input is decomposed into cable_lengths and
light_powers lists before being passed to the pure
calculation function calculate_lighting_voltage_drop().
Lookup tables are defined as Python dicts:
COPPER_RESISTANCE_20C— Cu R at 20 °C (Ω/km), keyed by CSA (0.75–500 mm²)ALUMINIUM_RESISTANCE_20C— Al R at 20 °C (Ω/km), keyed by CSA (2.5–500 mm²)
Temperature constants:
COPPER_TEMP_COEFF = 0.00393ALUMINIUM_TEMP_COEFF = 0.00403
Code Paths
Key functions in calculations.py:
| Function | Purpose |
|---|---|
calculate_conductor_resistance(csa, material, temperature) |
Lookup R20 from table, apply temperature correction, return Ω/km |
calculate_lighting_voltage_drop(data) |
Main entry point — computes section currents, voltage drops, cumulative drops, compliance, and warnings. Returns complete results dict. |
Key functions in component.py:
| Function / Class | Purpose |
|---|---|
LightingVoltageDropCalculator.validate_parameters() |
Validates supply voltage, CSA, lights array, and power factor |
LightingVoltageDropCalculator.calculate() |
Orchestrates: extract lights array, decompose into lengths/powers, call calculation engine, merge results with parameter echoes |
equation_builder(calculation_results) |
Delegates to equations.build_equations() for report articles |
summary_cards_builder(results) |
Returns 4 summary cards: max VD%, min voltage, total power, supply current |
register_component(registry) |
Registers calc type 'lighting_voltage_drop' with schema,
builders, and sidebar template |
Calculation flow:
- Calculate R(T) from lookup table + temperature correction
- Sum downstream powers for each section (reverse iteration)
- Divide cumulative power by \(V \times \cos\phi\) for section current
- Compute \(\Delta V = 2 \times I \times L \times R / 1000\) per section
- Accumulate voltage drops, derive voltage at each light
- Check max VD% against limit, generate warnings
Testing
Running tests:
pytest calcs/components/c0015_lighting_voltage_drop/ -v
pytest calcs/test_c0015* -v
How to extend:
- To add new conductor materials, define a new resistance table dict
(e.g.,
TINNED_COPPER_RESISTANCE_20C) and temperature coefficient, then updatecalculate_conductor_resistance()and theconductor_materialenum inPARAMETER_SCHEMA. - To support mixed cable sizes per section, refactor
calculate_lighting_voltage_drop()to accept a per-section CSA array and callcalculate_conductor_resistance()once per section. - To add reactance for larger conductors, introduce an
XC_TABLEand modify the section voltage drop formula to use impedance \(Z = \sqrt{R^2 + X^2}\). - Write tests covering edge cases: single light, 50 lights (max), very long runs, aluminium with high temperature, PF < 1.