Bloss.m
上传用户:eighthdate
上传日期:2014-05-24
资源大小:270k
文件大小:2k
源码类别:

其他行业

开发平台:

Matlab

  1. % This program named 'bloss' obtains the B-coefficients of the
  2. % loss formula as the function of real power generation.
  3. %
  4. %         PL = P*B*P'+B0*P'+B00.
  5. %
  6. % It requires the power flow solution. To obtain the B-coefficients use the command bloss after
  7. % the command 'bloss' after any of the power flow programs lfgauss,
  8. % lfnewton, or decouple.
  9. %
  10. % Copyright (C)1998 by H. Saadat.
  11. clear B B0 B00
  12. Zbus=inv(Ybus);
  13. ngg=0;
  14. I=-1/basemva*(Pd-j*Qd)./conj(V); %new
  15. ID= sum(I);  %new
  16. for k=1:nbus
  17.   if kb(k)== 0
  18. %    I(k) = conj(S(k))/conj(V(k));
  19. %   else, ngg=ngg+1; I(k)=0;  end
  20.     else, ngg=ngg+1;  end
  21.    if kb(k)==1 ks=k; else, end
  22. end
  23. %ID= sum(I);
  24. d1=I/ID;
  25. DD=sum(d1.*Zbus(ks,:));  %new
  26. kg=0; kd=0;
  27. for k=1:nbus
  28.     if kb(k)~=0
  29.     kg=kg+1;
  30.     t1(kg) = Zbus(ks,k)/DD;   %new
  31.     else, kd=kd+1;
  32.     d(kd)=I(k)/ID;
  33.     end
  34. end
  35. nd=nbus-ngg;
  36. C1g=zeros(nbus, ngg);
  37. kg=0;
  38. for k=1:nbus
  39.   if kb(k)~=0
  40.   kg=kg+1;
  41.     for m=1:ngg
  42.        if kb(m)~=0
  43.         C1g(k, kg)=1;
  44.        else, end
  45.     end
  46.   else,end
  47. end
  48. C1gg=eye(ngg,ngg);
  49. C1D=zeros(ngg,1);
  50. C1=[C1g,conj(d1)'];
  51. C2gD=[C1gg; -t1];
  52. CnD=[C1D;-t1(1)];
  53. C2=[C2gD,CnD];
  54. C=C1*C2;
  55. kg=0;
  56. for k=1:nbus
  57.   if kb(k)~=0
  58.   kg=kg+1;
  59.   al(kg)=(1-j*((Qg(k)+Qsh(k))/Pg(k)))/conj(V(k));  %new
  60.   else,end
  61. end
  62. alp=[al, -V(ks)/Zbus(ks,ks)];
  63. for k=1:ngg+1
  64.     for m=1:ngg+1
  65.     if k==m
  66.     alph(k,k)=alp(k);
  67.     else, alph(k,m)=0;end
  68. end,end
  69. T = alph*conj(C)'*real(Zbus)*conj(C)*conj(alph);
  70. BB=0.5*(T+conj(T));
  71. for k=1:ngg
  72.     for m=1:ngg
  73.     B(k,m)=BB(k,m);
  74.     end
  75.     B0(k)=2*BB(ngg+1,k);
  76. end
  77. B00=BB(ngg+1,ngg+1);
  78. B, B0, B00
  79. PL = Pgg*(B/basemva)*Pgg'+B0*Pgg'+B00*basemva;
  80. fprintf('Total system loss = %g MW n', PL)
  81. clear I BB C C1 C1D C1g C1gg C2 C2gD CnD DD ID T al alp alph t1 d d1 kd kg ks nd ng