print623

Coursework Task3: The SOP extracts or injects reactive power (MATLAB Script)

Nov 15th, 2023 (edited)
18
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MatLab 3.54 KB | Source Code | 0 0
  1. clear
  2. clc
  3.  
  4.  
  5. V1=1.01;
  6.  
  7. ZL12=0.05+1i*0.01; %impedances between bus i,j (pu)
  8. ZL13=0.04;
  9. ZL34=0.01;
  10. Zload3=2.21; % load impedances (pu)
  11. Zload4=2.08+1i*0.52;
  12. PG=0.6; %PV power generation (pu)
  13. Qsop2=-2;
  14. Qsop4=0.1;
  15.  
  16. YL12=1/ZL12; %admittance = 1/impedance
  17. YL13=1/ZL13;
  18. YL34=1/ZL34;
  19. Yload3=1/Zload3;
  20. Yload4=1/Zload4;
  21.    
  22. Y=[YL12+YL13,-YL12,-YL13,0; %admittance matrix 4*4 (4nodes)
  23.     -YL12,YL12,0,0;
  24.     -YL13,0,YL13+YL34+Yload3,-YL34;
  25.     0,0,-YL34,YL34+Yload4];
  26.    
  27. G12=real(Y(1,2)); %Real and Imaginary values of each component in admittance matrix Y
  28. B12=imag(Y(1,2));
  29.    
  30. G22=real(Y(2,2));
  31. B22=imag(Y(2,2));
  32.    
  33. G13=real(Y(1,3));
  34. B13=imag(Y(1,3));
  35.    
  36. G33=real(Y(3,3));
  37. B33=imag(Y(3,3));
  38.    
  39. G34=real(Y(3,4));
  40. B34=imag(Y(3,4));
  41.    
  42. G44=real(Y(4,4));
  43. B44=imag(Y(4,4));
  44.  
  45. k=100
  46. V2=zeros(1,k)    
  47. V3=zeros(1,k)
  48. V4=zeros(1,k)
  49. Q=zeros(1,k)
  50. Lower_Limit=zeros(1,k)
  51. for i=0:k
  52.     Qsop4=Qsop4-0.1;
  53.     disp(['Qsop4 = ',num2str(Qsop4),' pu'])
  54.    
  55.    
  56.     f=@(V2,V3,V4,theta2,theta3,theta4) [V1*V2*(G12*cos(theta2)+B12*sin(theta2))+V2*V2*G22-PG; V1*V3*(G13*cos(theta3)+B13*sin(theta3))+V3*V3*G33+V3*V4*(G34*cos(theta3-theta4)+B34*sin(theta3-theta4)); V4*V3*(G34*cos(theta4-theta3)+B34*sin(theta4-theta3))+V4*V4*G44;V2*V1*(G12*sin(theta2)-B12*cos(theta2))-V2*V2*B22-Qsop2; V1*V3*(G13*sin(theta3)-B13*cos(theta3))-V3*V3*B33+V4*V3*(G34*sin(theta3-theta4)-B34*cos(theta3-theta4)); V4*V3*(G34*sin(theta4-theta3)-B34*cos(theta4-theta3))-V4*V4*B44-Qsop4];
  57.     %Load flow equation [P2-PG;P3;P4;Q2-Qsop2;Q3;Q4-Qsop4]=0 to solve unknown parameters (V2,V3,V4,theta2,theta3,theta4)
  58.    
  59.     J=@(V2,V3,V4,theta2,theta3,theta4) [2*V2*G22+V1*(G12*cos(theta2)+B12*sin(theta2)),0,0,V1*V2*(-G12*sin(theta2)+B12*cos(theta2)),0,0;0,2*V3*G33+V1*(G13*cos(theta3)+B13*sin(theta3))+V4*(G34*cos(theta3-theta4)+B34*sin(theta3-theta4)),V3*(G34*cos(theta3-theta4)+B34*sin(theta3-theta4)),0,V3*V1*(-G13*sin(theta3)+B13*cos(theta3))+V3*V4*(-G34*sin(theta3-theta4)+B34*cos(theta3-theta4)),V3*V4*(G34*sin(theta3-theta4)-B34*cos(theta3-theta4));0,V4*(G34*cos(theta4-theta3)+B34*sin(theta4-theta3)),2*V4*G44+V3*(G34*cos(theta4-theta3)+B34*sin(theta4-theta3)),0,V4*V3*(G34*sin(theta4-theta3)-B34*cos(theta4-theta3)),V4*V3*(-G34*sin(theta4-theta3)+B34*cos(theta4-theta3));-2*V2*B22+V1*(G12*sin(theta2)-B12*cos(theta2)),0,0,V2*V1*(G12*cos(theta2)+B12*sin(theta2)),0,0;0,-2*V3*B33+V1*(G13*sin(theta3)-B13*cos(theta3))+V4*(G34*sin(theta3-theta4)-B34*cos(theta3-theta4)),V3*(G34*sin(theta3-theta4)-B34*cos(theta3-theta4)),0,V3*V1*(G13*cos(theta3)+B13*sin(theta3))+V3*V4*(G34*cos(theta3-theta4)+B34*sin(theta3-theta4)),V3*V4*(-G34*cos(theta3-theta4)-B34*sin(theta3-theta4));0,V4*(G34*sin(theta4-theta3)-B34*cos(theta4-theta3)),-2*V4*B44+V3*(G34*sin(theta4-theta3)-B34*cos(theta4-theta3)),0,V4*V3*(-G34*cos(theta4-theta3)-B34*sin(theta4-theta3)),V4*V3*(G34*cos(theta4-theta3)+B34*sin(theta4-theta3))];
  60.    
  61.     fp=@(x) f(x(1),x(2),x(3),x(4),x(5),x(6)); %fp is a function to input the x value in to f function
  62.     Jp=@(x) J(x(1),x(2),x(3),x(4),x(5),x(6));
  63.    
  64.     x=zeros(10,6); %zero matrix x with 3*6 size
  65.     x(1,:)=[1.01;1.01;1.01;0;0;0]; %x(1,:) is an initial value for x
  66.  
  67.     for n=2:length(x)
  68.         x(n,:)=x(n-1,:)-((Jp(x(n-1,:))^(-1))*fp(x(n-1,:)))';
  69.         disp(norm(fp(x(n,:))));
  70.     end
  71.     disp('Solution:');
  72.     disp(x(n,:));
  73.     V3(1,i+1)=x(n,2)
  74.     V4(1,i+1)=x(n,3)
  75.     Q(1,i+1)=-i/10
  76.     Lower_Limit(1,i+1)=0.98
  77. end
  78. disp(V3);
  79. disp(V4);
  80.  
  81.  
  82.  
  83. figure
  84. plot(Q,V3,Q,V4,Q,Lower_Limit)
  85.  
  86. ylabel('Voltage(pu)')
  87. xlabel('Qsop4(pu)')
  88. legend("V3","V4","Lower limit(0.98 pu)")
Add Comment
Please, Sign In to add comment