Use the link on the left to access our cable sizing application. Manage and size all your cables, from low voltage to 33 kV.
Need a little help in applying theory or working out something. Our example calculations give a solid run through of the necessities.
The calculations cover those we do in myCableEngineering.com as well as more generally applicable examples. If there is a calculation example you would like to see, let us know via a ticket and we can put it on our list of future additions.
clc; clear; format compact;
For calculation details please refer to https://mycableengineering.com/knowledge-base/bs-7671-voltage-drop.
table = '4E3A Single-core armoured 90 °C themosetting, copper conductors'; CSA = 50; % cross sectional area of cable, mm2 Length = 80; % length of cable, m % Uo = 400; % line-line voltage, V Ib = 152; % load current, A pf = 0.87; % power factor phases = 3; % number of phases (0 = d.c.) tp = 90; % maximum permitted cable temperature, °C
Ensure that we have both cos(ph) and sin(phi) from the power factor.
cos_phi = pf; sin_phi = sin(acos(pf)); disp(''); disp(['pf = cos(phi) = ', num2str(cos_phi), ' which gives sin(phi)= ', num2str(sin_phi, '%0.2f')]);
pf = cos(phi) = 0.87 which gives sin(phi)= 0.49
It = 222; % tablulated current A, table 4E3A, column 6 mVr = 0.86; % (mV/A/m)r table 4E3B, column 5 mVx = 0.29; % (mV/A/m)x table 4E3B, column 5 Ca = 0.96; % ambient temperature derating, table 4B1 Cg = 1.00; % grouping derating, [no grouping] Cs = 1.00; % soil thermal resistivyt derating [not buired] Cd = 1.00; % depth of burial derating [not buried]
Ct = (230+tp-(Ca^2*Cg^2*Cs^2*Cd^2-(Ib^2/It^2))*(tp-30))/(230+tp); disp(['Temperature correction factor Ct = ', num2str(Ct, '%0.2f' )]); vd = ( Ct*cos_phi*mVr + sin_phi*mVx ) * Ib * Length /1000; vdPercent = 100*vd/Uo; disp('Voltage drop = ', num2str(vd, '%0.2f'), ' V [', num2str(vdPercent, '%0.2f'), '%]');
Temperature correction factor Ct = 0.92 Voltage drop = 10.06 V [2.52%]
Published with MATLAB® R2015a
This calculation provides an example of a cable fault calculation
The cable is assumed to be XLPE single core copper, 185 mm, installed flat, spaced one diameter apart and 52 m in length.
Under the installation conditions the positive sequence impedance, Z1 and zero sequence impedance Z0 are calculatd and found to be:
Z1 = 0.007589471899785190 + 0.0072621169251118863i; Z0 = 0.024855569961970723 + 0.0054850851667301833i; % The system operation voltage is 400 V three phase, and the source % fault levels at the cable are 10 kA at 0.25 pf phase fault and % 9.8 ka, 0.25 pf earth fault. U = 400/sqrt(3); % we use the phase voltage for calculations Ik3 = 10000; pfk3 = 0.25; % phase fault level Ik0 = 9800; pfk0 = 0.25; % earth fault level % To be able to use the fault levels, these need to be converted to complex % form and then the impedance found. The current will be lagging the % voltage,% which gives Ik3 = Ik3 * pfk3 - Ik3 * sin(acos(pfk3))* 1i; % convert to complex Ze3 = U/Ik3; % convert to impedance Ik0 = Ik0 * pfk0 - Ik0 * sin(acos(pfk0))* 1i; % convert to complex Ze0 = U/Ik0; disp(['Phase fault source impedance = ', num2str(Ze3, '%0.4f' ),' ohm'] ); disp(['Earth fault source impedance = ', num2str(Ze0, '%0.4f' ),' ohm'] );
Phase fault source impedance = 0.0058+0.0224i ohm Earth fault source impedance = 0.0059+0.0228i ohm
To calculate the load end fault levels we use the total impedance (source + cable). In addition, IEC 60609 requires the user of a C factor, which for low voltage cables is Cmax=1.05, Cmin=0.95. For the phase fault we have:
Cmax=1.05; Cmin=0.95; Zt3 = Ze3 + Z1; If3 = Cmax*U/Zt3; disp(['Phase fault load end, maximum = ', num2str(abs(If3)/1000, '%0.2f' ),' kA', ... '(@ ', num2str(cos(angle(If3)), '%0.2f' ),' pf)'] ); If3 = Cmin*U/Zt3; disp(['Phase fault load end, minimum = ', num2str(abs(If3)/1000, '%0.2f' ),' kA', ... '(@ ', num2str(cos(angle(If3)), '%0.2f' ),' pf)'] ); % % And for the earth fault: Zt0 = Ze0 + Z1+ Z0; If0 = Cmax*U/Zt0; disp(['Earth fault load end, maximum = ', num2str(abs(If0)/1000, '%0.2f' ),' kA', ... '(@ ', num2str(cos(angle(If0)), '%0.2f' ),' pf)'] ); If0 = Cmin*U/Zt0; disp(['Earth fault load end, minimum = ', num2str(abs(If0)/1000, '%0.2f' ),' kA', ... '(@ ', num2str(cos(angle(If0)), '%0.2f' ),' pf)'] );
Phase fault load end, maximum = 7.46 kA(@ 0.41 pf) Phase fault load end, minimum = 6.75 kA(@ 0.41 pf) Earth fault load end, maximum = 4.64 kA(@ 0.73 pf) Earth fault load end, minimum = 4.20 kA(@ 0.73 pf)
BS 7671 regulation 411.4.5 has a requirement to use a minimum voltage factor Cmin in the calculation of earth fault loop impedance. The value to use for Cmin is given as 0.95.ce
Cmin = 0.95; If0 = Cmin*U/Zt0; disp(['Earth fault load end = ', num2str(abs(If0)/1000, '%0.2f' ),' kA', ... '(@ ', num2str(cos(angle(If0)), '%0.2f' ),' pf) - considering Cmin'] ); disp(['Earth fault loop impedance = ', num2str(abs(Zt0), '%0.4f' ),' ohm'] );
Earth fault load end = 4.20 kA(@ 0.73 pf) - considering Cmin Earth fault loop impedance = 0.0523 ohm
Also consider the case where an additional external conductor is added into the circuit to reduce the overall earth fault look impedance. Select a 50 mm2 copper conductor, with an impedance of 0.495e-3 + j0.135e-3 ohm/meter. Assume the CPC to 50 m in length:
Z2 = ( 0.495e-3 + 0.135e-3)*50; % % Overall earth fault loop impedance Z2, is that of the external CPC in % parallel with the Z0 due to the cable armouring: Z2 = (Z2*Z0) / (Z2 + Z0); Zs = Ze0 + Z1+ Z2; If0 = Cmax*U/Zs; disp(['Earth fault load end, maximum = ', num2str(abs(If0)/1000, '%0.2f' ),' kA', ... '(@ ', num2str(cos(angle(If0)), '%0.2f' ),' pf)'] ); If0 = Cmin*U/Zs; disp(['Earth fault load end, minimum = ', num2str(abs(If0)/1000, '%0.2f' ),' kA', ... '(@ ', num2str(cos(angle(If0)), '%0.2f' ),' pf)'] ); disp(['Earth fault loop impedance = ', num2str(abs(Z2), '%0.4f' ),' ohm'] );
Earth fault load end, maximum = 5.77 kA(@ 0.65 pf) Earth fault load end, minimum = 5.22 kA(@ 0.65 pf) Earth fault loop impedance = 0.0142 ohm
This calculation provides a simple look at how to calculate various cable parameters. The inputs are assumed to be the cable sustained current capacity (at maximum operating temperature), the maximum operating temperature, ambient temperature, system voltage, cable current, length, cable resistance and reactance.
The calculations are based on a directly buried 70 mm2, Leoni SOLARpower Alu-ATA cable, and using data from the manufacturer's catalogue.
Uo = 400; % V. System voltage 400 (3-phase, line to line). Iz = 222; % A. Sustained current capacity. Tc = 90; % °C. Maximum operating temperature of the cable. R20 = 0.443e-3; % ohm/m. Resistance of the cable at 20 °C. X = 0.099e-3; % ohm/m. Reactance of the cable (trefoil formation).
Ib = 180; % A. Cable design current. L = 56; % m. Cable length. Ta = 20; % °C. Ambient temperature where the cable is installed.
In this instance we read the current capacity from the manufacturer's tables. This may also be calculated using standards, or thermal methods, which are beyond the scope of this example.
The resistance of the cable depends on the operating temperature. And, the operating temperature of the cable changes depending on the magnitude of current flowing within the cable. The temperature adjusted value of resistance is used in all calculations. To calculate the conductor operating temperature we use:
t = (Ib/Iz)^2 * (Tc - Ta) + Ta
The cable resistance at 20 °C is adjusted for operating temperature. The amount of adjustment is dependent on the temperature coefficient of resistance (a20), with typical values being 3.93e-3 for copper conductors and 4.03e-3 for aluminium conductors. The adjusted resistance is given by:
R = R20 * [1+a20*(t-20)]
a20 = 4.03e-3; % Temperature coefficent aluminium cable. t = ((Ib/Iz)^2)*(Tc - Ta)+Ta; R = R20*[1+a20*(t-20)]; disp(['Conductor operating temperature = ', num2str(t, '%0.1f' ), ' °C']); disp(['Temperature adjusted resistance = ', num2str(R, '%0.3e' ), ' ohm/m']);
Conductor operating temperature = 66.0 °C Temperature adjusted resistance = 5.252e-04 ohm/m
For voltage drop we use the formulae give in CENELEC technical report CLC/TR 50480. This give the voltage drop, in percent as:
dU = 100* b * (R*cos(phi) + X*sin(phi)) * Ib / Uo
The factor 'b' is taken as 2 for d.c. systems and 1 for three phase systems. For our example, we will also assume a power factor (pf) of 0.8, giving cos(phi)=0.8 and sin(phi)=0.6. Also, our resistance and reactance is per unit length. Therefore we need to multiple by the length of the cable.
b = 1; % Three phase system. dU = 100*b*(R*0.8+X*0.6)*Ib*L/Uo; disp(['Voltage drop = ', num2str(dU,'%0.2f'), ' %']);
Voltage drop = 1.21 %
Calculation of the power loss within the cable is given by:
P = Ib^2 * R * n (i.e. the current squared, times the resistance)
Again with our resistance and reactance being per unit length, we need to multiple by the cable length to get the final power loss. Factor 'n' relates to the type of circuit/number of conductors. For a three phase balanced circuit, we have three conductors ( n = 3)
n = 3; P = Ib^2*R*n*L; disp(['Power loss = ', num2str(P,'%0.0f'), ' W']);
Power loss = 2859 W
Cable life expectancy can be estimated using the Arrhenius Equation. This is statistical estimation and care needs to be taken in interpreting the results. The estimated life, k in hours is given by:
k = Ae^(E/Rt)
In this equation, A is a factors, E the activation energy, and R the Boltzmann constant. For more details see on this equations, see Estimating Cable Life. Alternatively the Arrhenius Equation can be presented more practically as a logarithmic straight line (with slope and intercept coefficients of m and b):
ln(k) = m*t + b
For our cable, with XLPE insulation m and b are found to be -0.0693 and 18.5678 respectively. Taking the inverse ln of k, yields the life in hours.
m = -0.0693; % Arrhenius slope factor (XLPE) b = 18.5678; % Arrhenius intercept factor (XLPE) k = exp(1)^(m*t+b); ky = k/(24*365); disp(['Expeted Life = ', num2str(k,'%0.0f'), ' hours (', num2str(ky,'%0.0f'), ' years)']);
Expeted Life = 1193838 hours (136 years)
Published with MATLAB® R2018b
For a.c. cables example please refer to Calculating Cable Performance (a.c.).
% <https://mycableengineering.com/knowledge-base/estimating-cable-life % Estimating Cable Life>. % % This calculation provides a simple look at how to calculate various % cable parameters for a d.c. cable. % The inputs are assumed to be the cable sustained % current capacity (at maximum operating temperature), the maximum % operating temperature, ambient temperature, system voltage, cable % current, length, cable resistance and reactance. % % The calculations are based on a directly buried 16 mm2, Leoni % BETAflam Solar cable (copper conductor), and using data from the % manufacturer's % catalogue. Cable is installed in air,
Uo = 720; % V. System voltage (a.c.). Iz = 152; % A. Sustained current capacity (surface, w/o contact). Tc = 90; % °C. Maximum operating temperature of the cable. R20 = 1.24e-3; % ohm/m. Resistance of the cable at 20 °C. X = 0; % ohm/m. d.c. cable have no reactance.
Ib = 132; % A. Cable design current. L = 56; % m. Cable length. Ta = 30; % °C. Ambient temperature where the cable is installed.
t = (Ib/Iz) * (Tc - Ta) + Ta
a20 = 3.93e-3; % Temperature coefficent aluminium cable. t = (Ib/Iz)*(Tc - Ta)+Ta; R = R20*(1+a20*(t-20)); disp(['Conductor operating temperature = ', num2str(t, '%0.1f' ), ' °C']); disp(['Temperature adjusted resistance = ', num2str(R, '%0.3e' ), ' ohm/m']);
Conductor operating temperature = 82.1 °C Temperature adjusted resistance = 1.543e-03 ohm/m
dU = 100* b * R * Ib / Uo
The factor 'b' is taken as 2 for d.c. systems and 1 for three phase systems.
b = 2; % d.c. system. dU = 100*b*R*Ib*L/Uo; disp(['Voltage drop = ', num2str(dU,'%0.2f'), ' %']);
Voltage drop = 3.17 %
Again with our resistance and reactance being per unit length, we need to multiple by the cable length to get the final power loss. Factor 'n' relates to the type of circuit/number of conductors. For a d.c. circuit we have two conductors ( n=2 )
n = 2; P = Ib^2*R*n*L; disp(['Power loss = ', num2str(P,'%0.0f'), ' W']);
Power loss = 3010 W
Expeted Life = 391564 hours (45 years)