Electric Power System
Wednesday, 20 August 2014
Unit Commitment Using Priority Listing Scheme & Economic Dispatch
Unit Commitment is Non-linear
Constrained Combinatorial Optimization Problem
Therefore Selection of
Generators from a given lot is solved through many techniques So that most
economical Combination of Generation Units can be obtained.
Priority list Scheme, Complete
Enumeration Scheme, & Dynamic Programing are some techniques used for
Selection of Generation units so as to achieve minimum cost.
Matlab Program
clcc=1;
while(c==1)
X=[1:24];
n=length(X);
Y=[1000 1200 1470 980 600 900 400 550 450 670 900 1000 1000 1200 1300 800 600 900 400 550 450 670 900 1000];
plot(X,Y)
xlabel('Time ( Hours )');
ylabel('Power Demand(MW) ');
Title('Load Curve')
h=input('Check Commitement & ED at Hour # ');
Pdt=Y(h);
basemva = 100; accuracy = 0.0001; maxiter = 10;
Cost = [240 7.0 0.007
200 10 0.0095
220 8.5 0.009
200 11 0.009
220 10.5 0.0080
190 12 0.0075];
mwlimitB =[100 500
50 200
80 300
50 150
50 200
50 120];
B= [0.0017 0.0012 0.0007 -0.0001 -0.0005 -0.0002
0.0012 0.0014 0.0009 0.0001 -0.0006 -0.0001
0.0007 0.0009 0.0031 0.0000 -0.0010 -0.0006
-0.0001 0.0001 0.0000 0.0024 -0.0006 -0.0008
-0.0005 -0.0006 -0.0010 -0.0006 0.0129 -0.0002
-0.0002 -0.0001 -0.0006 -0.0008 -0.0002 0.0150];
B00= [0.0056];
B0= 10^-3*[-0.3908 -0.1297 0.7047 0.0591 0.2161 -0.6635];
a=Cost(:,1);
b=Cost(:,2);
c=Cost(:,3);
Pmin=mwlimitB(:,1);
Pmax=mwlimitB(:,2);
m=length(Cost);% Number of Generators
Avcostmax=(a+b.*Pmax+c.*(Pmax.^2))./Pmax;
Avcostmin=(a+b.*Pmin+c.*(Pmin.^2))./Pmin;
Avcost=(Avcostmax);
Gen=transpose(1:m);
AVC=[Avcost,Gen,Cost,Pmin,Pmax];
B=sortrows(AVC);
Costpl=B(:,3:5);
Pmaxpl=B(:,7);
Pminpl=B(:,6);
mwlimitA=B(:,6:7);
plist=B(:,2);
disp('Priority List is Given By')
disp([' Gen# Average_Cost Cost Chatracteristics']);
disp([' (R/MWh) a b c']);
disp([plist B(:,1) B(:,3) B(:,4) B(:, 5)]);
PP=Pmaxpl(1);
MP=sum(PP);
x=1;%No of Generators
if(Pdt<=MP)
disp(['No of Generators Commited = ']);
disp(x);
Pdt
Lambda=8;
cost(1:x,:)=Costpl(1:x,:);
mwlimit(1:x,:)=mwlimitA(1:x,:);
pl(1:x,:)=plist(1:x,:);
Pmina=B(1,6);
Pmaxa=B(1,7);
disp([' Gen# Average_Cost Min Power Max Power Cost Chatracteristics']);
disp([' (R/MWh) MW MW a b c']);
disp([ pl B(1:x,1) Pmina Pmaxa B(1:x,3) B(1:x,4) B(1:x, 5)]);
ED_lambda2(Pdt,cost,Lambda,mwlimit);
end
while(Pdt>MP)
PP=Pmaxpl(1:m-(m-x));
MP=sum(PP);
if(Pdt<=MP)
disp(['No of Generators Commited = ']);
disp(x);
Pdt
Lambda=8;
cost(1:x,:)=Costpl(1:x,:);
mwlimit(1:x,:)=mwlimitA(1:x,:);
pl(1:x,:)=plist(1:x,:);
Pmina=B(1,6);
Pmaxa=B(1,7);
for i=2:x
Pminb(i)=Pmina+B(i,6);
Pmaxb(i)=Pmaxa+B(i,7);
Pmina=Pminb(i);
Pmaxa=Pmaxb(i);
end
Pminb=nonzeros([Pmin(1),Pminb]);
Pmaxb=nonzeros([Pmax(1),Pmaxb]);
disp([' Gen# Average_Cost Min Power Max Power Cost Chatracteristics']);
disp([' (R/MWh) MW MW a b c']);
disp([ pl B(1:x,1) Pminb Pmaxb B(1:x,3) B(1:x,4) B(1:x, 5)]);
ED_lambda2(Pdt,cost,Lambda,mwlimit);
elseif(Pdt>MP)
x=x+1;
end
end
clear all
c=input('Continue(1) or end(0) ');
end
Result
Conclusion
This Technique of Complete
Enumeration Is a Slow because it checks each combination one by one and then
sort out Feasible Ones.
On the other Hand it does not
Include System Constraints Such as
ü Reliability
ü Startup Cost and Minimum Startup Time
ü Shut down Cost and Minimum shutdown Cost etc.
However it gives accurate
Answers as compared to other techniques.
On the other hand Dynamic
Programming is advanced form of Enumeration scheme which reserves few feasible
low cost states and then utilize them to develop schedule keeping in mind
system constraints.
Monday, 17 February 2014
Economic Dispatch Using Lambda Itteration Method Neglecting Generation Limits & Transmission Losses Using Matlab
a)
Calculation Using Lambda Iteration Method
Lambda Iteration method Uses an Initial Assumption of
Lagrange Multiplier and uses Continuous iterations to find correct value of
Lambda. This correct value is found at Satisfaction of Demand.
Steps of Calculation Include
Ø 1st
Step to Solve a Dispatch Problem is to write cost characteristic equations of
committed units for Meeting Demand .(Refer To Equal Incremental Cost Criteria)
Ø Assume
a Value of Lagrange Multiplier and Calculate Generation Sharing (Generation
Allocation) at that value of Lambda
Ø Calculate
Difference in Value of Power demand and Total Generation.(Error)
MATLAB Program
clc
clear all
Pd=input('Total Power Demand = ');
Lambda=input('Assumed Value of Lagrange Multiplier = ');
n=input('No of Units Commited to Satisfy Demand = ');
x=Pd*0.10:10:Pd;
for i=1:n;
a=input('No Load Speed Cost of
Unit($/h) = ');
b=input('Slope of linear line of unit
($/MWh) = ');
c=input('Coefficient of 2nd order
term of Unit(($/h)/MW^2) = ');
A(i,:)=[a b
c];
y=[2*c*x+b];
plot(x,y)
hold on
end
a=A(:,1);
b=A(:,2);
c=A(:,3);
DelP=5;
iter=0;
while abs(DelP) >=0.01
iter=iter+1;
P=(Lambda-b)./(2*c);
DelP=Pd-sum(P);
X=sum(1./(2*c));
Del_Lambda=DelP/X;
Saturday, 15 February 2014
Economic Dispatch Of thermal generating units Using Equal Incremental Cost Criteria Neglecting Generation Limits & Transmission Losses
Objective
In
Power Systems Generation Allocation (Economic Dispatch) is Major Problem,
Therefore we will try to Allocate Generation to Committed Units so as to
Satisfy Demand With Minimum Expenses(Minimum $/h) . We will Use Lagrange
Multiplier Techniques in this Session.i.e;
a) Incremental
Cost Criteria
b) Lambda(LaGrange
Multiplier) Iteration Technique
Explanation
Incremental Cost Criteria is stated as
“Allocate Generation so that total Demand is Satisfied &
All Incremental Costs are equal in Economic Dispatch Problem”
It is Most Widely Used Technique for Solution of Economic
Dispatch Problems.
However it is Constrained Continuous Problem Therefore it is
Difficult to Solve system keeping in mind the Inequality constraints.
Transmission losses are also to be neglected for simplicity. Therefore
Neglecting
b)
Calculation Using Lambda Iteration Method
Lambda Iteration method Uses an Initial Assumption of
Lagrange Multiplier and uses Continuous iterations to find correct value of
Lambda. This correct value is found at Satisfaction of Demand.
Steps of Calculation Include
Ø 1st
Step to Solve a Dispatch Problem is to write cost characteristic equations of
committed units for Meeting Demand Using equation (1).
Ø Assume
a Value of Lagrange Multiplier and Calculate Generation Sharing (Generation
Allocation) at that value of Lambda using equation (3).
Ø Calculate
Difference in Value of Power demand and Total Generation.(Error)
Lambda Iteration method Uses an Initial Assumption of
Lagrange Multiplier and uses Continuous iterations to find correct value of
Lambda. This correct value is found at Satisfaction of Demand.
Steps of Calculation Include
Ø 1st
Step to Solve a Dispatch Problem is to write cost characteristic equations of
committed units for Meeting Demand Using equation (1).
Ø Assume
a Value of Lagrange Multiplier and Calculate Generation Sharing (Generation
Allocation) at that value of Lambda using equation (3).
Ø Calculate
Difference in Value of Power demand and Total Generation.(Error)
Matlab Program & Results
Equal Incremental Cost Criteria
Code
function [Lambda,P,Total_Cost]=IncrementalCC(Pd,A)
Pd=input('Total Power Demand = ');
n=input('Number of Generating Stations = ');
x=Pd*0.10:10:Pd;
for i=1:n;
a=input('No Load Speed Cost of
Unit($/h) = ');
b=input('Slope of linear line of unit
($/MWh) = ');
c=input('Coefficient of 2nd order
term of Unit(($/h)/MW^2) = ');
A(i,:)=[a b
c];
y=[2*c*x+b];
plot(x,y)
hold on
end
xlabel('Power(MW)');
ylabel('Incremental Cost ($/MWh)');
Title('Incremental Cost(Economic Dispatch Problem Solution)');
hold off
a=A(:,1);
b=A(:,2);
c=A(:,3);
Lambda=(Pd+sum(b./(2*c)))/sum(1./(2*c))
P=(Lambda-b)./(2*c)
Total_Cost=[sum(a)+sum(b.*P)+sum(c.*(P.^2))]
function [Lambda,P,Total_Cost]=IncrementalCC(Pd,A)
Pd=input('Total Power Demand = ');
n=input('Number of Generating Stations = ');
x=Pd*0.10:10:Pd;
for i=1:n;
a=input('No Load Speed Cost of
Unit($/h) = ');
b=input('Slope of linear line of unit
($/MWh) = ');
c=input('Coefficient of 2nd order
term of Unit(($/h)/MW^2) = ');
A(i,:)=[a b
c];
y=[2*c*x+b];
plot(x,y)
hold on
end
xlabel('Power(MW)');
ylabel('Incremental Cost ($/MWh)');
Title('Incremental Cost(Economic Dispatch Problem Solution)');
hold off
a=A(:,1);
b=A(:,2);
c=A(:,3);
Lambda=(Pd+sum(b./(2*c)))/sum(1./(2*c))
P=(Lambda-b)./(2*c)
Total_Cost=[sum(a)+sum(b.*P)+sum(c.*(P.^2))]
Results
Conclusion
Economic
Dispatch is Online Function Carried on real Time (Minimum Cost of Production
meeting Constraints). Economic Dispatch is an Important for Power System
Operation because Economy is a Major factor which Influence Structure and
Complexity of System. Even Unit Commitment Involve Economic Dispatch Solution
as 1st step. In this Session we Solved Problem Neglecting T/L Losses and Generation Limits. However When we
take into Account T/L Losses.Equal-Incremental Criteria is most widely used technique for Solution of ED Problem;
Subscribe to:
Posts (Atom)