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

📄 flowcalculation.m

📁 关于无功补偿的matlab优化程序
💻 M
📖 第 1 页 / 共 3 页
字号:
fprintf(flowoutput,'进行线路补偿时各节点对应的负荷功率阻抗矩(从节点1开始):\n'); 
Rcopy=[0.316 0.464 0.575 0.805 1.064 1.202 1.524 1.754 3.834 2.008 1.877 5.03 5.739 8.274 9.192 2.858 4.442 5.999 3.176
         0   0.148 0.259 0.489 0.748 0.886 1.208 1.438 3.518 1.692 1.561 4.714 5.423 7.958 8.876 2.542 4.126 5.683 2.86
         0     0   0.111 0.341 0.6   0.738 1.06  1.29  3.37  1.544 1.413 4.566 5.275 7.81  8.728 2.394 3.978 5.535 2.712
         0     0     0   0.23  0.489 0.627 0.949 1.179 3.259   0   1.302 4.455 5.164 7.699 8.617 2.283 3.867 5.424 2.601
         0     0     0    0    0.259 0.397 0.719 0.949 3.029   0   1.072 4.225 4.934 7.467 8.387 2.053 3.637 5.194 2.371
         0     0     0    0     0    0.138 0.46  0.69  2.77    0     0     0     0     0     0   1.794 3.378 4.935 2.112
         0     0     0    0     0      0   0.322 0.552 2.632   0     0     0     0     0     0   1.656 3.24  4.797 1.974
         0     0     0    0     0      0    0    0.23  2.31    0     0     0     0     0     0     0    0      0   1.652
         0     0     0    0     0      0    0     0    2.08    0     0     0     0     0     0     0    0      0   1.422
         0     0     0    0     0      0    0     0      0     0     0     0     0     0     0     0    0      0     0
         0     0     0    0     0      0    0     0      0     0     0     0     0     0     0     0    0      0     0
         0     0     0    0     0      0    0     0      0     0     0   3.153 3.862 6.397 7.315   0    0      0     0
         0     0     0    0     0      0    0     0      0     0     0     0   0.709 3.244 4.162   0    0      0     0
         0     0     0    0     0      0    0     0      0     0     0     0     0   2.535 3.453   0    0      0     0
         0     0     0    0     0      0    0     0      0     0     0     0     0     0   0.918   0    0      0     0
         0     0     0    0     0      0    0     0      0     0     0     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.584 3.141   0
         0     0     0    0     0      0    0     0      0     0     0     0     0     0     0     0    0    1.557   0
         0     0     0    0     0      0    0     0      0     0     0     0     0     0     0     0    0      0     0];     
                                                               %R为对应两节点之间的所有支路电阻之和;

Q=[0.00055  0.00056  0.00009  0  0.00014  0  0.00011  0  0.00022  0.00023  0.00021  0.00095  0.00004  0.00028  0.00073  0.00020  0.00016  0.00066  0.00049];
                                                               %Q为对应节点的负荷无功功率
Q=Q';                                                          %矩阵Q转置
H=zeros(19,1);
H=Rcopy*Q                                                      %H为各节点对应的负荷功率阻抗矩的集合
fprintf(flowoutput,'%g\n',H); 
fprintf(flowoutput,'由负荷功率阻抗矩:当只选择一个节点进行集中补偿时,最优补偿点为7;当选择两点进行集中补偿时,最优补偿点应选择7和5\n'); 
fprintf(flowoutput,'\n');  


%以上为初始潮流和负荷功率阻抗矩阵的计算程序.下面程序为进行线路补偿时,利用无功一次精确矩确定愦线上各节点对应的最优补偿容量


fprintf(flowoutput,'进行线路补偿时由无功一次精确矩确定的各节点的最优补偿容量(从节点2到节点10):\n'); 
linepower1=linepower;
linepower=imag(linepower);
Q1incopy=zeros(9);                                             %无功一次精确矩确定各节点对应的补偿容量
T1copy=zeros(9);                                               %存放中间变量  
M1copy=zeros(9);                                               %存放中间变量       
for j=1:8
   Q1incopy(j)=linepower(j+1,j+2);                   
end
Q1incopy(9)=PQ(18); 
Q1incopy(2)=Q1incopy(2)+linepower(3,11);
Q1incopy(4)=Q1incopy(4)+linepower(5,12);
Q1incopy(6)=Q1incopy(6)+linepower(7,17);
Q1incopy(8)=Q1incopy(8)+linepower(9,20);
 for j=1:9 
     M1copy(j)=10*((YBre(j,j+1))/(((YBre(j,j+1))^2)+((YBim(j,j+1))^2)))/((E(j))^2);  
     if j>1      
       M1copy(j)= M1copy(j)+M1copy(j-1); 
     end     
 end
 for j=1:9  
     T1copy(j)=M1copy(j)*Q1incopy(j);
     k1=j;      
     while k1>1
        k1=k1-1;
        T1copy(j)=T1copy(j)+M1copy(k1)*[(Q1incopy(k1))-(Q1incopy(k1+1))];        
     end  
 end
T1copy=T1copy(:,1)
fprintf(flowoutput,'%g\n',T1copy(:,1)); 
fprintf(flowoutput,'\n');

linepower=linepower1;


%本次毕业设计中采用负荷功率阻抗矩进行愦线上无功补偿点的选择,下面程序是计算负荷的无功二次精确矩也可以用来进行线路补偿方式下无功补偿点的选择,这里只做程序介绍


fprintf(flowoutput,'另外进行线路补偿时,由下面负荷的无功二次精确矩(从节点2到节点20)进行补偿点选择时\n'); 
R=[0.316 0.464 0.575 0.805 1.064 1.202 1.524 1.754 3.834 2.008 1.877 5.03 5.739 8.274 9.192 2.858 4.442 5.999 3.176];  
                                                               %主干线路各段电阻值
R=R';                                                          %矩阵转置
Qincopy=zeros(19);                                             %存放对应节点的注入功率
Qoutcopy=zeros(19);                                            %存放对应节点的下一级节点的注入功率
T2copy=zeros(19);
for j=1:19
    for k=2:20
        if j<k&&YBre(j,k)~=0&&YBim(j,k)~=0
            Qincopy(k-1)=((imag(linepower(k,j)))^2)/((E(k-1))^2);
            if k==20
                Qoutcopy(k-1)=0;
            else
                Qoutcopy(k-1)=((imag(linepower(k+1,k)))^2)/((E(k))^2);
            end
            if k~=3&&k~=5&&k~=7&&k~=9
                Qoutcopy(k-1)=Qoutcopy(k-1);
            else
                if k==3
                   Qoutcopy(k-1)=Qoutcopy(k-1)+(((imag(linepower(11,k)))^2)/((E(10))^2));
                elseif k==5
                   Qoutcopy(k-1)=Qoutcopy(k-1)+(((imag(linepower(12,k)))^2)/((E(11))^2));
                else
                   if k==7
                        Qoutcopy(k-1)=Qoutcopy(k-1)+(((imag(linepower(17,k)))^2)/((E(16))^2));
                   else
                        Qoutcopy(k-1)=Qoutcopy(k-1)+(((imag(linepower(20,k)))^2)/((E(19))^2));
                   end
                end
             end            
         end
          T2copy(k-1)=R(k-1)*[(Qincopy(k-1))-(Qoutcopy(k-1))];
      end
  end
  T2copy=T2copy(:,1)                                           %各负荷节点的无功二次精确矩
  fprintf(flowoutput,'%g\n',T2copy); 
  Kcopy=zeros(3,1);                                            %存放各负荷节点的无功二次精确矩的前三个最大值且Kcopy(1)> Kcopy(2)> Kcopy(3)
  K1=0;                                                        %存放无功二次精确矩值最大的节点号
  K2=0;                                                        %存放无功二次精确矩值第二大的节点号
  K3=0;                                                        %存放无功二次精确矩值第三大的节点号
  fprintf(flowoutput,'由上面负荷的无功二次精确矩,进行线路补偿时:\n'); 
  for j=1:3
      for k=1:19
          if j==1
              if Kcopy(j)<T2copy(k)
                  Kcopy(j)=T2copy(k);
                  K1=k+1;
              end
          elseif j==2
              if Kcopy(j)<T2copy(k)&&T2copy(k)~=Kcopy(1)
                  Kcopy(j)=T2copy(k);
                  K2=k+1;
              end
          else
              if Kcopy(j)<T2copy(k)&&T2copy(k)~=Kcopy(1)&&T2copy(k)~=Kcopy(2)
                  Kcopy(j)=T2copy(k);
                  K3=k+1;
              end
          end
      end
  end
  fprintf(flowoutput,'当选择一点(对应数值最大的一点)进行集中补偿时,最优补偿点应是选择%g\n',K1); 
  fprintf(flowoutput,'当选择两点(对应数值最大的两点)进行集中补偿时,最优补偿点应是选择%g\n',K1,K2); 
  fprintf(flowoutput,'当选择三点(对应数值最大的两点)进行集中补偿时,最优补偿点应是选择%g\n',K1,K2,K3); 
  fprintf(flowoutput,'\n'); 
  fclose(flowoutput);
  
  
  

⌨️ 快捷键说明

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