Professional Documents
Culture Documents
Lecture 02
Lecture 02
Reference: (Dr. Khalid Khawaja - Computer Modeling of Electrical Power Systems (Lecture
03))
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.1 Demand
• Averaged load during a specific period of time.
• Time interval must be specified for the average load.
Example
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.
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 =
5
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'
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.
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 =
'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.
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 =
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:
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.
TimeOfDay = cellstr(datestr(datenum(0,0,0,00,LoadCurveInterval*(0:(LoadInstants-1)),0),'HH:MM'));
MDDCorrTime=TimeOfDay{MDDTimeInstant}
MDDCorrTime =
'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.
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
14
title('Diversified Demand Curve of a Transformer')
ax.GridLineStyle = '--';
grid on
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