Download as pdf or txt
Download as pdf or txt
You are on page 1of 16

Lecture 2

Reference: (Dr. Khalid Khawaja - Computer Modeling of Electrical Power Systems (Lecture
03))

Chaper 02: The Nature of Loads (Kersting Book)

2.0. Loads
• To model and build new power systems, the understanding of the characteristics of the customers' load plays a
vital role.
• Loads at transmission levels are usually constants.
• Loads at distribution levels are changing and have different characteristics in comparison with transmission
system.
• Loads can be in kW, kVAR, kVA or A.

2.1. Various Definitions

2.1.1 Demand
• Averaged load during a specific period of time.
• Time interval must be specified for the average load.

Example

clear, close all


DemandVector= [8.92,7.21,7.88,7.5,7.65,8.41,8.69,8.51,7.92,7.39,7.62,7.90,7.58,8.35,8.63,8.86,8.67,8.40,
6.66,6.70,7.02,7.92,8.66,8.60,8.41,8.24,8.05,7.37,6.97,7.57,8.32,8.77,9.28,9.16,8.84,8.40,8.73,8.89,
7.36,7.43,7.88,8.32,8.79,8.88,9.01,8.83,8.89,8.38,7.91,7.90,7.85,8,8.75,9.44,9.59,9.20,8.62,8.13,8.0
8.37,8.59,8.48,8.45,8.24,8.02,7.94,8.58,8.70,8.37,8.30,8.56,8.15,7.98,7.79,7.84,7.77,7.84,7.80,8.37,
8.64,8.32,8.15,7.99,7.49,7.30,7.70,8.06,8.08,8.15,8.09,7.92,7.70,7.53,7.57,8.04];
plot(DemandVector)
ylim([5 11])
xlim([1 120])
ax = gca;
ax.FontSize=11;
ax.XTick = [1 60 120];
ax.XTickLabel=({'12:00 PM' '1:00 PM' '2:00 PM'});
ax.FontWeight='bold';
ax.FontName= 'Times New Roman';
legend({'Instantaneous Load Demand'},'FontName','Times New Roman','FontSize',12); % Provides legend for
xlabel('Time (h)','FontName','Times New Roman','FontSize',12,'fontweight','bold'); % Writes Xlabel
title('Instantaneous Load Curve of a Customer'); % Writes title of the graph
ylabel('Load demand (kW)','FontName','Times New Roman','FontSize',12,'fontweight','bold') % Write Ylabel
ax.GridLineStyle = '--';
grid on % Switches on grid on the background

1
• To calculate the demand from the instantaneous load curve, first, we need to decide the window size.
• For instance, here, we are interested in finding 15-min kW demand curve. Therefore, window size is 15 min.
• After that, within the window, we average the load values. The shorter the window size, more accurate will be
the estimate of the demand.

DemandVector= [8.92,7.21,7.88,7.5,7.65,8.41,8.69,8.51,7.92,7.39,7.62,7.90,7.58,8.35,8.63,8.86,8.67,8.40,
7.02,7.92,8.66,8.60,8.41,8.24,8.05,7.37,6.97,7.57,8.32,8.77,9.28,9.16,8.84,8.40,8.73,8.89,9.24,9.08,
8.79,8.88,9.01,8.83,8.89,8.38,7.91,7.90,7.85,8,8.75,9.44,9.59,9.20,8.62,8.13,8.03,7.76,7.46,7.41,7.4
8.02,7.94,8.58,8.70,8.37,8.30,8.56,8.15,7.98,7.79,7.84,7.77,7.84,7.80,8.37,8.57,9.26,9.27,8.85,8.27,
7.30,7.70,8.06,8.08,8.15,8.09,7.92,7.70,7.53,7.57,8.04];
plot(DemandVector)
ylim([5 11])
xlim([1 120])
ax = gca;
ax.FontSize=11;
ax.XTick = [1 60 120];
ax.XTickLabel=({'12:00 PM' '1:00 PM' '2:00 PM'});
ax.FontWeight='bold';
ax.FontName= 'Times New Roman';
legend({'Instantaneous Load Demand'},'FontName','Times New Roman','FontSize',12);
xlabel('Time (h)','FontName','Times New Roman','FontSize',12,'fontweight','bold');
title('Instantaneous Load Curve of a Customer');
ylabel('Load demand (kW)','FontName','Times New Roman','FontSize',12,'fontweight','bold')
ax.GridLineStyle = '--';
grid on

2
hold on % Hold the figure for plotting multiples lines on the same figure window.

% Code for defining the average load curve -------------------------------------------------------------

WindowSize=5; % Window size means that we are looking for average load for 15 min.
TotalElements=length(DemandVector);
% Some variables for calculations
t=1;
r=WindowSize;
k=1;
AverageDemandVector=zeros(1,TotalElements);
% For finding average demand using window size
for x=1:TotalElements/WindowSize % The number of times that we will run a for loop will depends on the t
AverageDemand = mean(DemandVector(t:r));
t=t+WindowSize;
r=r+WindowSize;
% This inner for loop will record average demand vector for plotting.
for xin=1:WindowSize
AverageDemandVector(k)=AverageDemand;
k=k+1;
end
end
stairs(AverageDemandVector) % This command plots data in the form of stairs
legend({'Instantaneous Load Demand','Average Load Demand'},'FontName','Times New Roman','FontSize',12);

3
2.1.2 Maximum Demand
• Maximum instantenous demand of a customer that occurs at a specific time within some interval.
• Time and units of maximum demand must be specified.

Example

clear,close all
DemandCurve =[7.16,7.08,7.07,6.97,6.93,6.96,6.89,6.85,6.88,6.85,6.82,6.81,6.76,6.74,6.74,6.74,6.70,6.65,
6.68,6.69,6.66,6.63,6.61,6.62,6.64,6.68,6.64,6.63,6.67,6.67,6.66,6.64,6.64,6.66,6.68,6.67,6.66,6.64,
6.65,6.68,6.64,6.69,6.67,6.62,6.62,6.66,6.67,6.69,6.71,6.68,6.71,6.73,6.71,6.74,6.76,6.75,6.81,6.86,
7.09,7.12,7.12,7.11,7.13,7.14,7.21,7.24,7.29,7.31,7.36,7.36,7.33,7.36,7.35,7.35,7.43,7.51,7.57,7.65,
7.89,7.87,7.89,7.86,7.87,7.90,7.90,7.93,7.91,7.91,7.90,7.93,7.89,7.91,7.87,7.83,7.85,7.89,7.90,7.93,
7.88,7.89,7.90,7.89,7.86,7.89,7.86,7.86,7.87,7.78,7.69,7.55,7.47,7.44,7.44,7.41,7.43,7.41,7.40,7.38,
7.71,7.75,7.78,7.84,7.87,7.91,7.88,7.91,7.96,7.92,7.94,7.95,7.96,7.94,7.96,7.94,7.94,7.96,7.94,7.92,
7.94,7.95,7.95,7.96,7.98,7.97,7.98,7.96,7.98,8,7.98,7.97,7.98,7.96,7.98,7.95,7.87,7.85,7.89,7.90,7.8
7.74,7.77,7.76,7.77,7.80,7.75,7.77,7.76,7.80,7.79,7.80,7.80,7.79,7.81,7.83,7.87,7.86,7.87,7.90,7.86,
7.76,7.76,7.73,7.72,7.75,7.72,7.70,7.72,7.66,7.66,7.66,7.62,7.60,7.62,7.57,7.56,7.57,7.55,7.50,7.52,
7.50,7.47,7.44,7.40,7.42,7.36,7.37,7.42,7.50,7.54,7.51,7.49,7.45,7.41,7.37,7.35,7.30,7.26,7.17];
LoadInstants = length(DemandCurve)

LoadInstants =
288

LoadCurveInterval = (60*24)/LoadInstants % min

LoadCurveInterval =
5

bar(DemandCurve) % Plot data in the form of bars


ylim([4.5 9])
xlim([1 288])
ax = gca;
ax.FontSize=11;
ax.XTick = [1 72 144 216 288];
ax.XTickLabel=({'00' '06' '12' '18' '24'});
ax.FontWeight='bold';
ax.FontName= 'Times New Roman';
xlabel('Time (h)','FontName','Times New Roman','FontSize',12,'fontweight','bold')
ylabel('5-min Load demand (kW)','FontName','Times New Roman','FontSize',12,'fontweight','bold')
ax.GridLineStyle = '--';
grid on

4
[MaximumDemand, TimeInstant]=max(DemandCurve); % max command gives the maximum point in the vector and i

TimeOfDay = cellstr(datestr(datenum(0,0,0,00,LoadCurveInterval*(0:(LoadInstants-1)),0),'HH:MM'));
CorrTime=TimeOfDay{TimeInstant}

CorrTime =
'16:20'

fprintf('Maximum demand in kW is: %d \n and the time is %s.',MaximumDemand,CorrTime);

Maximum demand in kW is: 8


and the time is 16:20.

2.1.3 Average Demand


• Averaged demands during a specific period of time.
• Time period must be specified.

5
Example
• For a whole day, energy (kWh) will be consumed.
• Energy in kWh during 5-min interval for the above load data can be calculated by:

• If the time interval is 5 min, there are 12 points in an hours. Therefore, divide kW demand with 12. Likewise, in
case of 15 min, divide by 4.
• After that, by summing kWh values of all intervals, the energy consumed in a day can be calculated.

• Later, average kW demand in a day can be calculated by:

DemandCurve =[7.16,7.08,7.07,6.97,6.93,6.96,6.89,6.85,6.88,6.85,6.82,6.81,6.76,6.74,6.74,6.74,6.70,6.65,
6.69,6.66,6.63,6.61,6.62,6.64,6.68,6.64,6.63,6.67,6.67,6.66,6.64,6.64,6.66,6.68,6.67,6.66,6.64,6.66,
6.64,6.69,6.67,6.62,6.62,6.66,6.67,6.69,6.71,6.68,6.71,6.73,6.71,6.74,6.76,6.75,6.81,6.86,6.87,6.89,
7.11,7.13,7.14,7.21,7.24,7.29,7.31,7.36,7.36,7.33,7.36,7.35,7.35,7.43,7.51,7.57,7.65,7.70,7.76,7.78,
7.87,7.90,7.90,7.93,7.91,7.91,7.90,7.93,7.89,7.91,7.87,7.83,7.85,7.89,7.90,7.93,7.90,7.90,7.88,7.92,
7.89,7.86,7.86,7.87,7.78,7.69,7.55,7.47,7.44,7.44,7.41,7.43,7.41,7.40,7.38,7.40,7.40,7.43,7.48,7.59,
7.88,7.91,7.96,7.92,7.94,7.95,7.96,7.94,7.96,7.94,7.94,7.96,7.94,7.92,7.92,7.91,7.91,7.93,7.90,7.89,
7.96,7.98,8,7.98,7.97,7.98,7.96,7.98,7.95,7.87,7.85,7.89,7.90,7.89,7.91,7.89,7.82,7.83,7.83,7.82,7.7
7.80,7.79,7.80,7.80,7.79,7.81,7.83,7.87,7.86,7.87,7.90,7.86,7.88,7.88,7.86,7.82,7.80,7.81,7.81,7.76,
7.66,7.66,7.62,7.60,7.62,7.57,7.56,7.57,7.55,7.50,7.52,7.54,7.51,7.51,7.54,7.55,7.55,7.51,7.50,7.47,
7.51,7.49,7.45,7.41,7.37,7.35,7.30,7.26,7.17];
LoadInstants = length(DemandCurve)

LoadInstants =
288

DemandkWh= DemandCurve/12;
Energy = sum(DemandkWh)

Energy =
178.759166666667

TotalEnergyConsumed= sprintf('%f kWh',Energy)

TotalEnergyConsumed =
'178.759167 kWh'

Hours=24;
AveragekWDemand= Energy/Hours

AveragekWDemand =

6
7.44829861111111

Load Factor
• It is the ratio of average demand of a customer or a group of customers to their maximum demand over the
same period.
• An important parameter for the utilitiy to know how well the designed power network is beign utilized.
• The load factor can be calculated as follows:

LoadFactor=AveragekWDemand/MaximumDemand

LoadFactor =
0.931037326388889

Diversified Demand
• It is a sum of demands of different customers during a specific period.
• Time period, interval and units must be mentioned.

Load Curves of different customers and Transformer's loading

Load curve of Customers:

Customer1DemandCurve =[7.16,7.15,7.15,7,7.53,7.15,7.05,7.2,3.2,3.0,3.1,3.3,3.1,3.4,3.4,3.45,3.21,3.21,8.
1.15,7.0,7.0,7.05,3.05,3.03,3.01,3.05,2.02,2.02,2.02,2.0,2.0,2.1,2.92,3.0,3.05,3.05,3.1,3.07,3.08,3.
1.19,1.22,1.22,1.22,1.22,6.69,6.71,6.68,6.71,6.73,6.71,0.74,0.76,0.75,0.81,0.86,0.87,0.89,0.94,0.75,
1.15,1.15,1.18,1.18,7.36,7.4,7.45];
C1LoadInstants=length(Customer1DemandCurve)

C1LoadInstants =
96

LoadCurveInterval = (60*24)/C1LoadInstants % min

LoadCurveInterval =
15

bar(Customer1DemandCurve)
ylim([0 10])
xlim([1 96])
ax = gca;
ax.FontSize=11;

7
ax.XTick = [1 24 48 72 96];
ax.XTickLabel=({'00' '06' '12' '18' '24'});
ax.FontWeight='bold';
ax.FontName= 'Times New Roman';
xlabel('Time (h)','FontName','Times New Roman','FontSize',12,'fontweight','bold')
ylabel('15-min dem.','FontName','Times New Roman','FontSize',12,'fontweight','bold')
title('Load curve of Customer 01')
ax.GridLineStyle = '--';
grid on

Customer2DemandCurve =[7.16,7.15,7.15,7,7.23,7.15,7.05,7.2,7.2,7.0,7.1,7.3,7.1,6.4,6.4,6.45,6.21,6.21,6.
7.2,7.15,7.15,7.0,7.0,7.05,7.05,7.03,7.01,7.05,7.02,7.02,7.02,7.0,7.0,6.9,6.92,6.92,6.92,6.92,6.92,6
6.97,7,6.69,6.67,6.92,6.92,6.66,6.67,6.69,6.71,6.68,6.71,6.73,6.71,6.74,6.76,6.75,6.81,6.86,6.87,6.8
7.12,7.11,7.13,7.14,7.21,7.24,7.29,7.31,7.36,7.36,7.33,7.36,7.35,7.3];
bar(Customer2DemandCurve)
ylim([0 10])
xlim([1 96])
ax = gca;
ax.FontSize=11;
ax.XTick = [1 24 48 72 96];
ax.XTickLabel=({'00' '06' '12' '18' '24'});
ax.FontWeight='bold';
ax.FontName= 'Times New Roman';
xlabel('Time (h)','FontName','Times New Roman','FontSize',12,'fontweight','bold')
ylabel('15-min dem.','FontName','Times New Roman','FontSize',12,'fontweight','bold')
title('Load curve of Customer 02')
ax.GridLineStyle = '--';
grid on

8
Customer3DemandCurve =[3.0,3.05,3.1,3.15,3.20,3.25,3.30,3.35,3.40,3.45,3.50,3.55,3.60,3.65,3.70,3.75,3.8
4.2,4.25,4.3,4.35,4.40,4.45,4.5,4.55,4.6,4.65,4.7,4.75,4.8,4.85,4.9,4.95,5,4.95,4.9,4.85,4.80,4.75,4
4.25,4.15,4.05,3.95,3.85,3.75,3.65,3.55,1.22,1.22,6.69,6.71,6.68,8.85,7.73,6.71,0.74,0.85,0.95,1.05,
1.95,2.05,2.15,2.25,2.35,2.45,2.55,2.65,2.75,2.85,2.95,3.05,7.36,7.4];
bar(Customer3DemandCurve)
ylim([0 10])
xlim([1 96])
ax = gca;
ax.FontSize=11;
ax.XTick = [1 24 48 72 96];
ax.XTickLabel=({'00' '06' '12' '18' '24'});
ax.FontWeight='bold';
ax.FontName= 'Times New Roman';
xlabel('Time (h)','FontName','Times New Roman','FontSize',12,'fontweight','bold')
ylabel('15-min dem.','FontName','Times New Roman','FontSize',12,'fontweight','bold')
title('Load curve of Customer 03')
ax.GridLineStyle = '--';
grid on

9
Diversified is calculated for a transformer below:

DiversifiedDemandOfTransformer=Customer1DemandCurve + Customer2DemandCurve + Customer3DemandCurve;


bar(DiversifiedDemandOfTransformer)
ylim([0 25])
xlim([1 96])
ax = gca;
ax.FontSize=11;
ax.XTick = [1 24 48 72 96];
ax.XTickLabel=({'00' '06' '12' '18' '24'});
ax.FontWeight='bold';
ax.FontName= 'Times New Roman';
xlabel('Time (h)','FontName','Times New Roman','FontSize',12,'fontweight','bold')
ylabel('15-min dem.','FontName','Times New Roman','FontSize',12,'fontweight','bold')
title('Diversified Demand Curve of a Transformer')
ax.GridLineStyle = '--';
grid on

10
2.1.5 Maximum Diversified Demand
• It is the maximum of the diversified demand. (Max. of the summation of different customer loads.)
• Time period, interval and units must be mentioned.

[MaximumDiversifiedDemand, MDDTimeInstant]=max(DiversifiedDemandOfTransformer); % max command gives the

TimeOfDay = cellstr(datestr(datenum(0,0,0,00,LoadCurveInterval*(0:(LoadInstants-1)),0),'HH:MM'));
MDDCorrTime=TimeOfDay{MDDTimeInstant}

MDDCorrTime =
'16:45'

fprintf('Maximum diversified demand in kW is: %f \n and the time is %s.',MaximumDiversifiedDemand,MDDCor

Maximum diversified demand in kW is: 22.270000


and the time is 16:45.

11
2.1.6 Maximum Noncoincident demand
• If we have several customers in a power system and each customer has different demand curve, then the
summation of customers' maximum demands is known as maximum noncoincident demand.
• Since the maximum load may occur at different time, it is known as noncoincident demand.
• Time period, interval and units must be mentioned.
• As evident from the name, the time of occurence of individual maximum demands may be different.

MaximumOfCustomer1=max(Customer1DemandCurve)

MaximumOfCustomer1 =
8.5

MaximumOfCustomer2=max(Customer2DemandCurve)

MaximumOfCustomer2 =
7.5

MaximumOfCustomer3=max(Customer3DemandCurve)

MaximumOfCustomer3 =
8.85

MaximumNoncoincidentDemand=MaximumOfCustomer1+MaximumOfCustomer2+MaximumOfCustomer3

MaximumNoncoincidentDemand =
24.85

Demand Factor
• It is the ratio of maximum demand of a customer to all connected loads at customer's premises.
• Demand Factor are calculated for individual customers.
• The idea behind this factor is to know what percentage of loads of a customers are switched on when the
maximum demand of the customer occurs.

12
% Total connected loads of Customers 1, 2 and 3.
TotalConnectedLoadCustomer1=10;
TotalConnectedLoadCustomer2=15;
TotalConnectedLoadCustomer3=60;

DemandFactorCustomer1=MaximumOfCustomer1/TotalConnectedLoadCustomer1

DemandFactorCustomer1 =
0.85

DemandFactorCustomer2=MaximumOfCustomer2/TotalConnectedLoadCustomer2

DemandFactorCustomer2 =
0.5

DemandFactorCustomer3=MaximumOfCustomer3/TotalConnectedLoadCustomer3

DemandFactorCustomer3 =
0.1475

Utilization Factor
• It is the ratio of maximum demand at a power device to its rated capacity.
• This factor represents how well the capacity of a power device such as transformed is being utilized.

KVAMaximumLoad=17.96; % 16.16 kW maximum diversified demand at 0.9 power factor


TranformerRatingKVA=20;
UtilizationFactor=KVAMaximumLoad/TranformerRatingKVA

UtilizationFactor =
0.898

Diversity Factor
• It is the ratio of maximum noncoincident demand to the maximum diversified demand.

13
• It is used to find the maximum diversified demand of a group of customers with the help of maximum demands
of customers.

DiversityFactor=MaximumNoncoincidentDemand/MaximumDiversifiedDemand

DiversityFactor =
1.11585092052088

• The value of a diversity factor will be different for different number of customers.

Load Diversity
• It is the difference between the noncoincident maximum demand and the maximum diversified demand and
indicates variability in electricity usage.

LoadDiversity=MaximumNoncoincidentDemand-MaximumDiversifiedDemand

LoadDiversity =
2.58

Load Duration Curve


• Loads duration curves can be constructed by sorting the diversified demand curves in descending order.
• These curves indicate the percentage of time the device operates at a certain demand level.
• This curve can be used to learn if there is any need of upgradation of the equipment.

LoadDurationCurve=sort(DiversifiedDemandOfTransformer,'descend'); % By default, sort command does sortin


% Therefore, for descending order, we need to mention 'descend' with commands.
bar(LoadDurationCurve)
ylim([0 25])
xlim([1 96])
ax = gca;
ax.FontSize=11;
ax.XTick = [1 24 48 72 96];
ax.XTickLabel=({'1' '25' '50' '75' '96'});
ax.FontWeight='bold';
ax.FontName= 'Times New Roman';
xlabel('Time Slots (15 min)','FontName','Times New Roman','FontSize',12,'fontweight','bold')
ylabel('15-min dem.','FontName','Times New Roman','FontSize',12,'fontweight','bold')

14
title('Diversified Demand Curve of a Transformer')
ax.GridLineStyle = '--';
grid on

Characteristics of a Feeder load

DemandCurve =[7.16,7.08,7.07,6.97,6.93,6.96,6.89,6.85,6.88,6.85,6.82,6.81,6.76,6.74,6.74,6.74,6.70,6.65,
6.69,6.66,6.63,6.61,6.62,6.64,6.68,6.64,6.63,6.67,6.67,6.66,6.64,6.64,6.66,6.68,6.67,6.66,6.64,6.66,
6.64,6.69,6.67,6.62,6.62,6.66,6.67,6.69,6.71,6.68,6.71,6.73,6.71,6.74,6.76,6.75,6.81,6.86,6.87,6.89,
7.11,7.13,7.14,7.21,7.24,7.29,7.31,7.36,7.36,7.33,7.36,7.35,7.35,7.43,7.51,7.57,7.65,7.70,7.76,7.78,
7.87,7.90,7.90,7.93,7.91,7.91,7.90,7.93,7.89,7.91,7.87,7.83,7.85,7.89,7.90,7.93,7.90,7.90,7.88,7.92,
7.89,7.86,7.86,7.87,7.78,7.69,7.55,7.47,7.44,7.44,7.41,7.43,7.41,7.40,7.38,7.40,7.40,7.43,7.48,7.59,
7.88,7.91,7.96,7.92,7.94,7.95,7.96,7.94,7.96,7.94,7.94,7.96,7.94,7.92,7.92,7.91,7.91,7.93,7.90,7.89,
7.96,7.98,8,7.98,7.97,7.98,7.96,7.98,7.95,7.87,7.85,7.89,7.90,7.89,7.91,7.89,7.82,7.83,7.83,7.82,7.7
7.80,7.79,7.80,7.80,7.79,7.81,7.83,7.87,7.86,7.87,7.90,7.86,7.88,7.88,7.86,7.82,7.80,7.81,7.81,7.76,
7.66,7.66,7.62,7.60,7.62,7.57,7.56,7.57,7.55,7.50,7.52,7.54,7.51,7.51,7.54,7.55,7.55,7.51,7.50,7.47,
7.51,7.49,7.45,7.41,7.37,7.35,7.30,7.26,7.17];
bar(DemandCurve)
ylim([4.5 10])
xlim([1 288])
ax = gca;
ax.FontSize=11;
ax.XTick = [1 72 144 216 288];

15
ax.XTickLabel=({'00' '06' '12' '18' '24'});
ax.FontWeight='bold';
ax.FontName= 'Times New Roman';
title('Load Curve of a Feeder')
xlabel('Time (h)','FontName','Times New Roman','FontSize',12,'fontweight','bold')
ylabel('5-min Load demand (kW)','FontName','Times New Roman','FontSize',12,'fontweight','bold')
ax.GridLineStyle = '--';
grid on

• Feeder loads curves are smooth as feeders have a large number of customer.
• Small changes have no significant effect on feeder load characteristics.
• Feeder load curves present good load factors.

16

You might also like