⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 compensation.m

📁 关于无功补偿的matlab优化程序
💻 M
📖 第 1 页 / 共 2 页
字号:
function  compensation                      
clear all;
n=0;
fid=fopen('DATAmax.txt');
while feof(fid)==0                                % 文件定位器不在文件结尾               
  line=fgetl(fid);                                % 读出定位器所在行    
  if double(line(1))>=48&&double(line(1))<=57||double(line(1))==43||double(line(1))==45                                                   
       n=n+1;
       if n==1
           PQ=line; 
           PQ=sscanf(PQ,'%f');                      %列向量PQ中下标为奇数的元素表示P,为偶数的表示Q
           n1=size(PQ)/2;
           numPQ=n1(1);                             %每行PQ节点个数计数      
           for j=1:numPQ;
               PQre(n,j)=PQ(2*j-1);
               PQim(n,j)=PQ(2*j);
           end      
        end
       if n==2
          S=line;                                  
          S=sscanf(S,'%f');                         %列向量S中下标为奇数的元素表示P,为偶数的表示Q
          n2=size(S)/2;                        
          numS=n2(1);                               %平衡节点S个数计数     
          for j=1:numS
               Sre(1,j)=S(2*j-1);
               Sim(1,j)=S(2*j);
          end             
       end       
       if n>=3
           Yb=line;                     
           Yb=sscanf(Yb,'%f');  
           n3=size(Yb)/2;  
           numYB=n3(1);    
           for j=1:numYB                            %节点导纳矩阵行元素个数计数
                YBre(n-2,j)=Yb(2*j-1);              %节点导纳矩阵实部
                YBim(n-2,j)=Yb(2*j);                %节点导纳矩阵虚部
           end              
       end                                       
   end                               
end



              
%///上面为读取原始数据,形成节点导纳矩阵程序;下面为线路固定补偿方式下单点补偿后潮流计算程序///

EEcopy=zeros(9);
PQcopy=zeros(2*numPQ,1); 
PQcopy=PQ;
T1copy =[ 0.0305  0.0391  0.0642  0.0888  0.1070  0.1170  0.1200  0.1222  0.1282];              %线路固定补偿时各节点对应补偿容量
flowoutput=fopen('compensationresult.txt','wt');    %创建线路补偿方式补偿后潮流计算结果compensationresult.txt文件
fprintf(flowoutput,'线路固定补偿方式下单点补偿后潮流计算结果分析\n');  
for m=2:10
      fprintf(flowoutput,'选择补偿点为节点%g\n',m);         
      PQ((m-1)*2)= PQ((m-1)*2)+T1copy(m-1);
QP=zeros(2*numPQ,1);
for j=1:numPQ
    QP(2*j-1)=PQ(2*j);
    QP(2*j)=PQ(2*j-1);
end
E=ones(numPQ,1);                                    %PQ节点的电压和相位赋初值
F=zeros(numPQ,1);                         
P=zeros(numPQ,1);                                            
Q=zeros(numPQ,1);
epQP=zeros(2*numPQ,1);                              %存放P、Q的不平衡量
epEF=zeros(2*numPQ,1);                              %存放PQ节点的节点电压和相位的不平衡量                                              
E1=1.12;                                            %平衡节点1的节点电压幅值和相位
F1=0;
k=0;                                                %存放迭代次数
while k<=20
    k=k;    
    for j=2:numPQ+1
         sumP=E(j-1)*[YBre(j,1)*E1-YBim(j,1)*F1]+F(j-1)*[YBre(j,1)*F1+YBim(j,1)*E1];
         sumQ=F(j-1)*[YBre(j,1)*E1-YBim(j,1)*F1]-E(j-1)*[YBre(j,1)*F1+YBim(j,1)*E1];
         n=2;
        while n<=numPQ+1
            sumP=sumP+E(j-1)*[YBre(j,n)*E(n-1)-YBim(j,n)*F(n-1)]+F(j-1)*[YBre(j,n)*F(n-1)+YBim(j,n)*E(n-1)];
            sumQ=sumQ+F(j-1)*[YBre(j,n)*E(n-1)-YBim(j,n)*F(n-1)]-E(j-1)*[YBre(j,n)*F(n-1)+YBim(j,n)*E(n-1)];
            n=n+1;
        end      
        P(j-1)=sumP;
        Q(j-1)=sumQ;
        epQP(2*(j-1)-1)=QP(2*(j-1)-1)-sumQ;
        epQP(2*(j-1))=QP(2*(j-1))-sumP;           
    end
     epQP=epQP;
  if max(abs(epQP))<=1e-5
        fprintf(flowoutput,'补偿后各节点的电压\n');
        fprintf(flowoutput,'%g\n',E);  
        fprintf(flowoutput,'\n');
        break;
  else      
   B=[-1  0  1  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  
      0  -1  0  1  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0 
      0   0 -1  0  1  0  0  0  0  0  0  0  0  0  0  0  0  0  1  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0 
      0   0  0 -1  0  1  0  0  0  0  0  0  0  0  0  0  0  0  0  1  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
      0   0  0  0 -1  0  1  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
      0   0  0  0  0 -1  0  1  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0 
      0   0  0  0  0  0 -1  0  1  0  0  0  0  0  0  0  0  0  0  0  1  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
      0   0  0  0  0  0  0 -1  0  1  0  0  0  0  0  0  0  0  0  0  0  1  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
      0   0  0  0  0  0  0  0 -1  0  1  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
      0   0  0  0  0  0  0  0  0 -1  0  1  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
      0   0  0  0  0  0  0  0  0  0 -1  0  1  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  1  0  0  0  0  0  0  0
      0   0  0  0  0  0  0  0  0  0  0 -1  0  1  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  1  0  0  0  0  0  0
      0   0  0  0  0  0  0  0  0  0  0  0 -1  0  1  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
      0   0  0  0  0  0  0  0  0  0  0  0  0 -1  0  1  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
      0   0  0  0  0  0  0  0  0  0  0  0  0  0 -1  0  1  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  1  0
      0   0  0  0  0  0  0  0  0  0  0  0  0  0  0 -1  0  1  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  1
      0   0  0  0  0  0  0  0  0  0  0  0  0  0  0  0 -1  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
      0   0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0 -1  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
      0   0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0 -1  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
      0   0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0 -1  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
      0   0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0 -1  0  1  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
      0   0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0 -1  0  1  0  0  0  0  0  0  0  0  0  0  0  0  0  0
      0   0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0 -1  0  1  0  0  0  0  0  0  0  0  0  0  0  0  0  
      0   0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0 -1  0  1  0  0  0  0  0  0  0  0  0  0  0  0 
      0   0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0 -1  0  1  0  0  0  0  0  0  0  0  0  0  0 
      0   0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0 -1  0  1  0  0  0  0  0  0  0  0  0  0
      0   0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0 -1  0  1  0  0  0  0  0  0  0  0  0
      0   0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0 -1  0  0  0  0  0  0  0  0  0  0
      0   0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  -1 0  0  0  0  0  0  0  0  0
      0   0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0 -1  0  0  0  0  0  0  0  0
      0   0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0 -1  0  1  0  0  0  0  0
      0   0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0 -1  0  1  0  0  0  0
      0   0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0 -1  0  1  0  0  0
      0   0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0 -1  0  1  0  0

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -