samedi 6 avril 2019

Won't pass thru second else if condition Matlab

                  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