lambda = input ('Enter initial lambda:')
i=1;
while i <= 6
fprintf('ITERATION %d \n\n', i);
p1=(lambda-input_data(1,2))/(2*(input_data(1,3)+(lambda*loss_data(1,1))));
p2=(lambda-input_data(2,2))/(2*(input_data(2,3)+(lambda*loss_data(2,2))));
p3=(lambda-input_data(3,2))/(2*(input_data(3,3)+(lambda*loss_data(3,3))));
p4=(lambda-input_data(4,2))/(2*(input_data(4,3)+(lambda*loss_data(4,4))));
p5=(lambda-input_data(5,2))/(2*(input_data(5,3)+(lambda*loss_data(5,5))));
fprintf('\tP1: %5.4f\n', p1);
fprintf('\tP2: %5.4f\n', p2);
fprintf('\tP3: %5.4f\n', p3);
fprintf('\tP4: %5.4f\n', p4);
fprintf('\tP5: %5.4f\n\n',p5);
%%
%VERIFYING IF IT MET THE CONDITIONS%
ploss=(loss_data(1,1)*(p1))+(loss_data(2,2)*(p2))+(loss_data(3,3)*(p3))+
(loss_data(4,4)*(p4))+(loss_data(5,5)*(p5));
fprintf('\tPloss: %5.4f\n', ploss);
delta_p=pd+ploss-p1-p2-p3-p4-p5;
fprintf('\tDelta P: %5.4f\n', delta_p);
if (delta_p~=0) %General Case%
summation=((input_data(1,3)+(loss_data(1,1)*input_data(1,2)))/(2*
(input_data(1,3)+(lambda*loss_data(1,1)))^2))+((input_data(2,3)+
(loss_data(2,2)*input_data(2,2)))/(2*(input_data(2,3)+
(lambda*loss_data(2,2)))^2))+((input_data(3,3)+
(loss_data(3,3)*input_data(3,2)))/(2*(input_data(3,3)+
(lambda*loss_data(3,3)))^2))+((input_data(4,3)+
(loss_data(4,4)*input_data(4,2)))/(2*(input_data(4,3)+
(lambda*loss_data(4,4)))^2))+((input_data(5,3)+
(loss_data(5,5)*input_data(5,2)))/(2*(input_data(5,3)+
(lambda*loss_data(5,5)))^2));
fprintf('\tSummation: %5.10f\n', summation);
else if (delta_p==0)&& (p5>mwlimits(5,2)) %Start of P5 random
p5=mwlimits(5,2);
fprintf('\tP5 new: %5.4f', p5);
delta_p=pd+ploss-p1-p2-p3-p4-p5;
summation=((input_data(1,3)+(loss_data(1,1)*input_data(1,2)))/(2*
(input_data(1,3)+(lambda*loss_data(1,1)))^2))+((input_data(2,3)+
(loss_data(2,2)*input_data(2,2)))/(2*(input_data(2,3)+
(lambda*loss_data(2,2)))^2))+((input_data(3,3)+
(loss_data(3,3)*input_data(3,2)))/(2*(input_data(3,3)+
(lambda*loss_data(3,3)))^2))+((input_data(4,3)+
(loss_data(4,4)*input_data(4,2)))/(2*(input_data(4,3)+
(lambda*loss_data(4,4)))^2));
fprintf('\tSummation: %5.10f\n', summation);
else if (delta_p==0)&& (p5<mwlimits(5,1))
p5=mwlimits(5,1);
fprintf('\tP5 new: %5.4f', p5);
delta_p=pd+ploss-p1-p2-p3-p4-p5;
summation=((input_data(1,3)+(loss_data(1,1)*input_data(1,2)))/(2*
(input_data(1,3)+(lambda*loss_data(1,1)))^2))+((input_data(2,3)+
(loss_data(2,2)*input_data(2,2)))/(2*(input_data(2,3)+
(lambda*loss_data(2,2)))^2))+((input_data(3,3)+
(loss_data(3,3)*input_data(3,2)))/(2*(input_data(3,3)+
(lambda*loss_data(3,3)))^2))+((input_data(4,3)+
(loss_data(4,4)*input_data(4,2)))/(2*(input_data(4,3)+
(lambda*loss_data(4,4)))^2));
fprintf('\tSummation: %5.10f\n', summation);
else if(delta_p==0)&&((p5>mwlimits(5,1))&&(p2<mwlimits(5,2)))
p5=p5;
fprintf('\tP5 new: %5.4f', p5);
delta_p=pd+ploss-p1-p2-p3-p4-p5;
summation=((input_data(1,3)+(loss_data(1,1)*input_data(1,2)))/(2*
(input_data(1,3)+(lambda*loss_data(1,1)))^2))+((input_data(2,3)+
(loss_data(2,2)*input_data(2,2)))/(2*(input_data(2,3)+
(lambda*loss_data(2,2)))^2))+((input_data(3,3)+
(loss_data(3,3)*input_data(3,2)))/(2*(input_data(3,3)+
(lambda*loss_data(3,3)))^2))+((input_data(4,3)+
(loss_data(4,4)*input_data(4,2)))/(2*(input_data(4,3)+
(lambda*loss_data(4,4)))^2))+((input_data(5,3)+
(loss_data(5,5)*input_data(5,2)))/(2*(input_data(5,3)+
(lambda*loss_data(5,5)))^2));
fprintf('\tSummation: %5.10f\n', summation);
end
end
end %End of p5 random
end
delta_lambda= delta_p/summation;
fprintf('\tDelta Lambda: %5.4f\n', delta_lambda);
lambda= lambda+delta_lambda;
fprintf('The new lambda =');disp (lambda);
i=i+1;
end
COULD ANYONE HELP ME DETERMINE WHY IT WOULD JUMP THE 2ND ELSE IF STATEMENT? oR WHY WOULD IT SKIP UPDATING VALUE OF P5? Thanks I am really confused on why it will not pass thru the second condition. I really need this to work, but I dont understand why it would be that way. This is actually and economic dispatch problem which I tried to update/pegged the value of P5 within limits.
Aucun commentaire:
Enregistrer un commentaire