EAC3027-N Power Systems – ICA
Project/Topic: Assessment of a 37.5 km Underground Cable
Supplying a Star-Connected R–L Load; Validation by
MATLAB Computation, Manual Calculations, and
Laboratory Data; PF Correction Sizing
student: [Name]
Programme: BEngTech (Hons) Electronic & Electrical Engineering
(BNEE5 2418A)
Institutions: Teesside University & MDIS
Module Tutor: Ms Deepthi Yerrama Reddy
Submission: 19 September 2025, 23:59
1. Abstract
Underground distribution cables experience electrical stress, thermal loading, and
environmental exposure that alter their effective impedance and shunt admittance over
time. This coursework evaluates a 37.5 km cable feeding a balanced three-phase star-
connected R-L load. The sending-end phase voltage is held at 130 V to match the
laboratory bench supply. A per-phase nominal-p model (ABCD two-port) is used to
compute receiving and sending-end voltages, currents, complex powers (P + jQ), and
power factor (PF). A sweep of the inductive load is performed; for each inductance, the
series resistance is chosen so the phase current remains within 0.25-0.5 A as required.
Power-factor correction is designed using per-phase shunt capacitors at the load bus to
meet PF ≥ 0.95. Results are validated against manual spreadsheet calculations and
laboratory measurements. Plots show PF degradation with increasing inductance, the
increase of voltage regulation with current, and the separation of true and reactive power
as a function of load and cable parameters. The discussion addresses whether the cable
appears faulty, the influence of load on voltage and power flow, and how insights inform
sustainability-minded asset management. Professional obligations under the Engineering
Council's Statement of Ethical Principles are applied to civil works associated with
underground cable access.
We analyse a star-connected R–L load supplied through a 37.5 km underground cable. A
nominal-π ABCD per-phase model computes receiving/sending voltages, currents, P, Q,
and PF at a regulated 130 V (phase-neutral) sending end. For each inductance, series
resistance is chosen to maintain 0.25–0.5 A. Per-phase shunt capacitors are sized to reach
PF ≥ 0.95 at the load bus. Laboratory readings are compared to manual spreadsheet
equations and MATLAB calculations: [mean absolute error for Vr/Ir/PF was X%/Y%/Z
%]. Plots show PF decreasing with higher inductance, voltage regulation increasing with
current, and effective PF restoration after correction. Results support a healthy cable [or:
indicate anomalies], and the method informs sustainability-minded, minimally disruptive
asset decisions aligned with professional ethics.
2. Introduction
Distribution Network Operators (DNOs) must balance reliability, cost, and environmental
impact. Replacing large sections of underground cable is disruptive and carbon-intensive;
therefore, robust condition assessment and diagnosis are preferred. In this study, we
replicate a controlled test where a star-connected R-L load is supplied through a long
underground cable. We:
(i) measure sending/receiving-end quantities,
(ii) verify results by independent manual and MATLAB computations,
(iii) design shunt capacitor PF-correction, and
(iv) interpret trends for fault indications, voltage behavior with load, and
sustainability/ethics considerations.
Background & Objectives
Background. Long cables exhibit both series impedance (R + joL) and shunt admittance
(joC). The shunt path captures insulation capacitance to ground and contributes
capacitive charging current, which can affect voltage regulation even at modest load
currents.
Objectives.
Build a traceable per-phase model using ABCD parameters.
Acquire lab data within the specified current window (0.25-0.5 A).
Validate lab results using: (a) manual spreadsheet equations and (b) MATLAB code.
Size per-phase shunt capacitors to achieve PF > 0.95 at the load bus.
Decide if data indicate cable fault symptoms.
Translate findings into sustainability actions and ethical practice.
2.1 Laboratory arrangement
· Supply regulated to 130 V (phase-neutral) at sending end.
· Cable module equivalent to 37.5 km per phase.
· Star-connected R in series with L; include 27 Ω inductor internal resistance per phase.
· For each L setting, adjust R so |I| ∈ [0.25, 0.5] A; if not achievable, choose nearest and
note.
· Measurements recorded at both ends: V, I, P, Q, S, PF.
2.2 Model & equations
2.3 Manual calculations
2.4 MATLAB workflow
3. Method
3.1 Laboratory arrangement and measurement plan
· Supply: 130 V rms (phase-neutral) at the sending end, verified with a power quality
meter.
· Line: underground cable module representing 37.5 km per phase.
· Load: per phase, R in series with L; three phases connected in star to neutral.
· Inductor internal resistance: include 27 Ω (per phase) in series with the external R.
· Current window: adjust R for each L so |I| lies in 0.25–0.5 A; if not possible exactly,
select the nearest achievable point and record it.
· Instrumentation: power quality meters at both ends to capture V, I, S, P, Q, and PF.
· Data logging template (per case):
· L [H], set R [Ω], measured R (ohmic meter) [Ω], measured Vs, Is, Ps, Qs, PFs;
measured Vr, Ir, Pr, Qr, PFr.
· Ambient temperature (for R drift), instrument model/accuracy class.
· Notes (e.g., lead compensation, repeated trials).
Safety & good practice: locked-out circuits during wiring, confirm star
configuration, verify current range before energising, and apply de-energisation before
changes.
3.2 Analytical model (nominal-π, ABCD)
Two-port relation:
[ Vs ] [A B] [ Vr ]
[ Is ] = [C D] [ Ir ]
Per-phase complex power S = V · conj(I), P = Re(S), Q = Im(S). Three-phase totals = 3 ×
per-phase (balanced).
PF correction (per phase at load):
3.3 Manual calculation workflow (Excel)
Create labelled cells to avoid unit confusion:
Worked numeric example (illustrative placeholders — replace with your cable
datasheet):
3.4 MATLAB calculation workflow
· Goal: reproduce the manual steps programmatically and generate clean plots/tables.
· Strategy: compute ABCD once; for each L, scan R to hit current window; compute Vr,
Ir, Is; aggregate P/Q/PF and size Cph; store to a struct; export a table and plots.
4. Results (Tables & Figures)
Table 1 — Summary of computed results per case
Columns: L (H), selected R (Ω), |Ir| (A), |Vr| (V), PFrec, Prec_3φ (W), Qrec_3φ (var),
Psend_3φ (W), Qsend_3φ (var), Vdrop (%), C per phase (µF), PF target, notes.
Table 1. Computed results per test case: L, selected R, receiving voltage/current, 3-ϕ
P/Q, PF, voltage regulation, and required per-phase capacitor to reach PF = 0.95. Notes
indicate whether the current was within the 0.25–0.5 A window.
Comparison table
Figure 1 — PF at load vs L. Shows monotonic PF decrease as L increases
Figure 2 — Voltage drop (%) vs |Ir|. Shows increasing regulation with
current.
Figure 3 — Receiving-end P and Q vs L. P varies with R and |Ir|; Q
increases with L (offset by cable charging).
Figure 4 — PF improvement before/after capacitors. Bars show approach
to ~0.95 after correction.
5. Discussion (Task-2a to 2f)
(a) Validate Task-1 results; is the cable faulty?
Compute error% between lab and MATLAB/Excel for Vr, Ir, PF, P, Q.
If errors are small and consistent (e.g., ≤5–10%), this supports a healthy cable and correct
parameterisation.
Fault indicators could include: unusually high regulation at low current; Q trends inconsistent
with increased L; asymmetry between phases (if measured per phase); or PF not improving with
capacitors as predicted.
(a.1) Confirm results; is the cable faulty?
Quote mean and max error% from Table 2 (Vr, Ir, PF).
If errors are small/consistent (e.g., ≤5–10%), say “consistent with parameter tolerances → no
fault indicated.”
If any outlier: name the L case and hypothesise (e.g., parameter mismatch, instrument
uncertainty).
(b) Identify relationships (graphical evidence):
PF vs L: approximately decreasing curve because Q ∝ ωL|I|² at constant Vs/L sweep.
drop vs |Ir|: increasing relation due to I·Zseries and the effect of shunt charging on Vr.
P & Q vs L: P depends on selected R (set by current window); Q dominated by inductance
and cable C.
· Point to Fig. 1 (PF vs L), Fig. 2 (ΔV% vs |Ir|), Fig. 3 (P/Q vs L).
(c) Cable characteristics; dependence on length and construction:
Longer length increases both Zseries and Yshunt → more losses and more charging current.
Construction (conductor area, lay, insulation permittivity) shifts Rℓ, Lℓ, Cℓ; aluminium vs copper
differs in Rℓ; XLPE insulation affects Cℓ.
Longer cables increase Z and Y → higher losses and charging vars;
construction (conductor size, insulation permittivity) shifts R ℓ/L ℓ/C ℓ.
(d) Effect of increased load on voltage; significant power-flow factors:
As load grows, |Ir| increases, causing higher I²R losses and ΔV.
Significant factors: R/X ratio of the feeder, PF at the load, shunt charging, source
stiffness (short-circuit ratio), and placement of capacitors.
Cite two cases from Table 1: show ΔV% grows with |Ir|.
Name the factors: R/X ratio, PF, cable charging (Y), source stiffness, PF-correction
placement.
(e) Sustainability for the DNO:
PF correction reduces current and losses → lower thermal stress and deferred capacity upgrades.
Trend analysis pinpoints sections needing intervention, avoiding wholesale replacement.
Reduced outages and civil works → lower community disruption and embodied carbon.
(f) Ethics (Engineering Council Statement of Ethical Principles) applied to
this case:
Honesty/Integrity: report uncertainties, do not overclaim fault diagnosis.
Respect for Life, Law, Public Good: safe isolation, clear site demarcation, third-party protection
during excavations.
Accuracy/Leadership: use calibrated instruments, traceable calculations, and conservative
assumptions when data are incomplete.
Sustainable Development: prefer targeted maintenance and PF correction before disruptive
replacement.
Bullet 3–4 points: safety (isolation, permits, barriers), integrity (report errors and limits),
sustainability (least-disruptive methods), respect for the public (traffic management,
noise/dust control).
Add one sentence: “These principles guide any civil access or inspection of underground
cables.”
6. Uncertainty & Limitations
Instrumentation & measurement. Power-quality meters, voltmeters, and current probes
carry accuracy limits (e.g., ±0.5–1.0% of reading for voltage, ±1–2% for current and
power). Small phase-angle errors in instruments can bias computed PF. Lead resistance
and contact quality can slightly alter measured R and the inferred current.
Operating point & source stiffness. The bench source is treated as a stiff voltage source
at 130 V phase-neutral at the sending end. Any internal source impedance or regulation
droop under load leads to extra voltage deviation not captured by the two-port model.
Temperature effects. Conductor resistance increases with temperature (≈0.39%/°C for
copper), so warm-up during repeated tests lifts Rℓ slightly, increasing I2R losses and
voltage drop.
Data handling. Single-shot readings are sensitive to transient conditions. Repeating each
case and averaging reduces random error; rounding in spreadsheets can introduce small
mismatches when reconstructing powers from Vr/Ir.
Sensitivity check. A quick perturbation of the cable’s shunt capacitance by ±10% at
L=<choose case, e.g., 0.3 H> changed the computed PF by approximately <X> and the
magnitude of ∣Vr∣ by <Y V>. This indicates the results are more sensitive to series RRR
(and thus load current) than to modest C-variation, but the charging branch does
influence PF trends and regulation for long cables.
Overall, considering instrument class, parameter tolerance, and modelling assumptions,
mean errors within <X%> and worst-case errors within <Y%> are consistent with
expectations for laboratory-scale validation.
9. Conclusions
The nominal-π ABCD approach provides an accurate, transparent basis for evaluating the
37.5 km cable under star-connected R–L loading. MATLAB and manual methods
corroborate laboratory readings within expected tolerances, while PF correction designed
at the receiving bus yields substantial improvements toward the industrial target PF =
0.95. Trends are consistent with a healthy cable (subject to your measured data). The
methodology promotes sustainability by enabling targeted maintenance. Ethical practice
underpins safe, minimally disruptive civil works.
· A per-phase nominal-π ABCD model reproduced the laboratory behaviour of the 37.5
km underground cable feeding a star-connected R–L load at 130 V (phase-neutral).
· Across the inductance sweep, MATLAB and manual (Excel) calculations matched the
lab readings with mean absolute errors of <X%> in Vr, <Y%> in |I_r|, and <Z%> in PF,
which is acceptable given instrument and parameter tolerances.
· Power factor decreases as the inductive component increases (Fig. 1), confirming the
expected growth of reactive power with LLL and modest influence from cable charging.
· Voltage regulation worsens with higher load current (Fig. 2), primarily due to I⋅R and
I.X drops, with additional contribution from the shunt branch at this length.
· The separation of true power P and reactive power Q versus L (Fig. 3) is consistent with
theory: Q rises with inductance, while P follows the selected series resistance used to
hold current within the 0.25–0.5 A window.
· Per-phase shunt capacitors sized at the load bus restored PF to approximately 0.95 (Fig.
4), reducing current and implied copper losses (proportional to I^2).
· From a cable-health perspective, the quantitative agreement and monotonic trends
provide no strong evidence of a permanent fault; any outliers are plausibly explained by
tolerance and measurement uncertainty.
· The workflow—measure → model → compare—supports sustainability-minded asset
decisions, enabling targeted maintenance and PF-improvement before disruptive
replacements.
· Ethical practice—safety, integrity, respect for the public, and sustainable development
—remains central when planning any civil access to underground cables and when
reporting limitations and uncertainties.
· Future work could add sheath-bonding models, frequency-dependent line parameters,
and phase-imbalance tests to refine accuracy further.
10. References
Haq, T., 2013. Investigation into the impedance and communication requirements for the
low voltage distribution line in the high frequency spectrum. Open University (United
Kingdom).
Pettenò, M., Ground fault current: Calculation of magnitude and its distribution in the
neutral and ground paths.
BESHIR, A.H., 2022. Electromagnetic coexistence issues between power and data lines
in power line communication systems used in smart grids.
Luo, F.L. and Hong, Y., 2017. Renewable energy systems: advanced conversion
technologies and applications. Crc Press.
Rollinson, D., 2005. Load control with communications for autonomous power systems.
The University of Manchester (United Kingdom).
Kearney, J., 2013. Grid voltage unbalance and the integration of DFIG’s.
Kumar, S., 2013. Discrimination Between Inrush and Fault Currents in an Unloaded
Three Phase Power Transformer Based on Pre-fluxing and Harmonic Analysis
Techniques (Doctoral dissertation, University of Western Australia).
PIGNARI, S.A., 2022. Prof. Flavia GRASSI, Prof. Petre-Marian NICOLAE (Doctoral
dissertation, POLITECNICO DI MILANO).
Abdul Hamid, H., 2012. Transients in reactors for power systems
compensation (Doctoral dissertation, Cardiff University).
Abdul Hamid, H., 2012. Transients in reactors for power systems
compensation (Doctoral dissertation, Cardiff University).
Islam, R., Rafin, S.S.H. and Mohammed, O.A., 2022. Comprehensive review of power
electronic converters in electric vehicle applications. Forecasting, 5(1), pp.22-80.
Matlab code
function run_ICA()
%% EAC3027-N ICA — MATLAB-only, single-file runner (no Simulink)
% Run this file by typing: run_ICA
% It will:
% - model a 37.5 km cable with a nominal-π per-phase ABCD
% - sweep L; auto-select R to keep |Ir| in [0.25, 0.5] A
% - compute sending/receiving quantities, PF, voltage regulation
% - size per-phase capacitors for PF target (0.95)
% - produce Table 1 and Figures 1–4
clc;
%% ===== Parameters (EDIT THESE to match your lab/datasheet!) =====
f_Hz = 50; % system frequency [Hz]
V_phase_send = 130; % sending-end phase RMS [V] (per brief)
% Cable per-km (per phase). REPLACE with your module/datasheet values.
R_per_km = 0.20; % ohm/km
L_per_km = 0.5e-3; % H/km
C_per_km = 0.20e-6; % F/km
length_km = 37.5; % total cable length [km]
% Load & sweep
inductor_internal_R = 27; % ohm per phase (internal R of inductor)
L_values_H = [0.1 0.2 0.3 0.4 0.5]; % adjust to your inductor module
steps
I_target_range = [0.25 0.50]; % A (receiving-end current window)
% PF target at load bus
pf_target = 0.95;
%% ===== Derived line parameters (per phase over the whole length)
=====
w = 2*pi*f_Hz;
Z_series = (R_per_km + 1j*w*L_per_km) * length_km; % Ω
Y_shunt = 1j*w*C_per_km * length_km; % S
[A,B,C,D] = line_abcd_local(Z_series, Y_shunt);
%% ===== Sweep over L (keep struct fields consistent!) =====
nL = numel(L_values_H);
results = repmat(empty_result_skeleton(), nL, 1); % preallocate
consistent struct array
for k = 1:nL
L_H = L_values_H(k);
% Pick R for current window
[R_sel, note] = select_R_for_current_local(L_H, inductor_internal_R,
...
V_phase_send, A, B, I_target_range, f_Hz);
% Compute one operating point
r = simulate_point_local(R_sel, L_H, inductor_internal_R, ...
V_phase_send, A, B, C, D, pf_target, w);
% Fill the preallocated result (ALL fields every time)
results(k).L_H = L_H;
results(k).R_sel = R_sel;
results(k).Ir = [Link];
results(k).Vr = [Link];
results(k).Is = [Link];
results(k).Vs = [Link];
results(k).P_rec_3ph = r.P_rec_3ph;
results(k).Q_rec_3ph = r.Q_rec_3ph;
results(k).P_send_3ph = r.P_send_3ph;
results(k).Q_send_3ph = r.Q_send_3ph;
results(k).PF_rec = r.PF_rec;
results(k).PF_send = r.PF_send;
results(k).Vdrop_pct = r.Vdrop_pct;
results(k).C_uF = r.C_uF;
results(k).PF_after = r.PF_after;
results(k).PF_target = pf_target;
results(k).notes = note;
end
%% ===== Build & show the summary table (Table 1) =====
T = make_report_table_local(results);
disp('--- Table 1: Summary results ---');
disp(T);
writetable(T, 'summary_results.csv'); % optional file for your report
%% ===== Figures =====
% Figure 1 — PF at load vs L
figure; grid on;
plot([results.L_H], [results.PF_rec], 'o-', 'LineWidth', 1.5);
xlabel('Inductance L (H)'); ylabel('Power Factor at Load');
title('PF at Load vs Inductance (Figure 1)');
% Figure 2 — Voltage drop (%) vs |Ir|
figure; grid on;
plot(abs([[Link]]), [results.Vdrop_pct], 'o-', 'LineWidth', 1.5);
xlabel('|I_r| (A)'); ylabel('Voltage drop (%)');
title('Voltage Regulation vs Current (Figure 2)');
% Figure 3 — Receiving-end P and Q vs L
figure; grid on; hold on;
plot([results.L_H], [results.P_rec_3ph], 'o-', 'LineWidth', 1.5);
plot([results.L_H], [results.Q_rec_3ph], 's-', 'LineWidth', 1.5);
legend('P_{rec} (3\phi)', 'Q_{rec} (3\phi)', 'Location', 'best');
xlabel('Inductance L (H)'); ylabel('Power (W / var)');
title('Receiving-end P and Q vs L (Figure 3)');
% Figure 4 — PF before/after capacitors
figure; grid on;
PF_before = [results.PF_rec];
PF_after = [results.PF_after];
bar([PF_before(:), PF_after(:)]);
xlabel('Test case index'); ylabel('Power Factor');
legend('Before', 'After (with C)', 'Location', 'best');
title('PF Improvement with Shunt Capacitors (Figure 4)');
disp('Run complete. CSV + figures are ready.');
end % ===== end of main function =====
%% ===== Helper: consistent empty struct (prevents "dissimilar
structures") =====
function s = empty_result_skeleton()
s = struct( ...
'L_H', NaN, ...
'R_sel', NaN, ...
'Ir', complex(NaN,NaN), ...
'Vr', complex(NaN,NaN), ...
'Is', complex(NaN,NaN), ...
'Vs', NaN, ...
'P_rec_3ph', NaN, ...
'Q_rec_3ph', NaN, ...
'P_send_3ph', NaN, ...
'Q_send_3ph', NaN, ...
'PF_rec', NaN, ...
'PF_send', NaN, ...
'Vdrop_pct', NaN, ...
'C_uF', NaN, ...
'PF_after', NaN, ...
'PF_target', NaN, ...
'notes', "" );
end
%% ===== ABCD for nominal-π (per phase) =====
function [A,B,C,D] = line_abcd_local(Z, Y)
A = 1 + 0.5*Z*Y;
B = Z;
C = Y * (1 + 0.25*Z*Y);
D = A;
end
%% ===== Pick R such that |Ir| is in [Imin, Imax] at the receiving end
=====
function [R_sel, note] = select_R_for_current_local(L_H, R_int, Vsend,
A, B, I_range, f_Hz)
w = 2*pi*f_Hz;
Rspace = linspace(50, 800, 400); % search space [Ω]
Iabs = zeros(size(Rspace));
for i = 1:numel(Rspace)
ZL = (Rspace(i) + R_int) + 1j*w*L_H;
Ir = Vsend / (A*ZL + B);
Iabs(i) = abs(Ir);
end
idx = find(Iabs >= I_range(1) & Iabs <= I_range(2), 1, 'first');
if isempty(idx)
[~, idx] = min(abs(Iabs - mean(I_range)));
note = 'Closest to current window';
else
note = 'Within current window';
end
R_sel = Rspace(idx);
end
%% ===== Compute one operating point and PF-correction size =====
function r = simulate_point_local(R_sel, L_H, R_int, Vsend, A, B, C, D,
pf_tgt, w)
ZL = (R_sel + R_int) + 1j*w*L_H; % per-phase load impedance
Ir = Vsend / (A*ZL + B); % receiving-end current phasor
Vr = ZL * Ir; % receiving-end voltage phasor
Is = C*Vr + D*Ir; % sending-end current phasor
% Powers (per phase)
Srec = Vr * conj(Ir); Prec = real(Srec); Qrec = imag(Srec);
Ssend = Vsend * conj(Is);Psend = real(Ssend); Qsend = imag(Ssend);
% 3φ totals (balanced)
r.P_rec_3ph = 3*Prec;
r.Q_rec_3ph = 3*Qrec;
r.P_send_3ph = 3*Psend;
r.Q_send_3ph = 3*Qsend;
% PFs
r.PF_rec = r.P_rec_3ph / sqrt(r.P_rec_3ph^2 + r.Q_rec_3ph^2 + eps);
r.PF_send = r.P_send_3ph / sqrt(r.P_send_3ph^2 + r.Q_send_3ph^2 + eps);
% Voltage regulation
r.Vdrop_pct = (abs(Vsend) - abs(Vr)) / abs(Vsend) * 100;
% PF correction at receiving bus (per phase)
[Cph, Qc, ~, ~] = pf_correction_C_local(abs(Vr), r.P_rec_3ph,
r.Q_rec_3ph, pf_tgt, w);
r.C_uF = Cph * 1e6; % microfarads
% Estimated PF after correction
Q_after = max(r.Q_rec_3ph - Qc, 0);
r.PF_after = r.P_rec_3ph / sqrt(r.P_rec_3ph^2 + Q_after^2 + eps);
% Store state
r.L_H = L_H; r.R_sel = R_sel;
[Link] = Vsend; [Link] = Vr; [Link] = Ir; [Link] = Is;
end
%% ===== Per-phase capacitor sizing to meet PF target =====
function [C_per_phase, Qc_total, pf_initial, pf_target] =
pf_correction_C_local(V_phase, P_total, Q_total, pf_target, w)
pf_initial = P_total / sqrt(P_total^2 + Q_total^2 + eps);
phi_t = acos(max(min(pf_target,1),0));
Q_target = P_total * tan(phi_t);
if Q_total <= Q_target
Qc_total = 0;
C_per_phase = 0;
return;
end
Qc_total = Q_total - Q_target; % 3φ vars to supply by capacitors
Qc_ph = Qc_total / 3;
C_per_phase = Qc_ph / (w * V_phase^2); % F
end
%% ===== Build the summary table shown in the report (Table 1) =====
function T = make_report_table_local(results)
T = table( ...
[results.L_H].', ...
[results.R_sel].', ...
abs([[Link]]).', ...
abs([[Link]]).', ...
[results.PF_rec].', ...
[results.P_rec_3ph].', ...
[results.Q_rec_3ph].', ...
[results.P_send_3ph].', ...
[results.Q_send_3ph].', ...
[results.Vdrop_pct].', ...
[results.C_uF].', ...
[results.PF_after].', ...
string({[Link]}).', ...
'VariableNames',
{'L_H','R_sel','I_rec_A','V_rec_V','PF_rec','P_rec_W','Q_rec_var', ...
'P_send_W','Q_send_var','Vdrop_pct','C_uF','PF_after','notes'});
end