潮流计算.zip

  • All-All
    了解作者
  • matlab
    开发工具
  • 2KB
    文件大小
  • zip
    文件格式
  • 0
    收藏次数
  • 10 积分
    下载积分
  • 2
    下载次数
  • 2019-10-28 20:35
    上传日期
能够实现任意给定参数的交流系统的潮流计算。
潮流计算.zip
  • powerflpow2.m
    6.4KB
内容介绍
% file name:chaoliu_lj.m % function:使用牛顿-拉夫逊法、PQ分解法计算潮流 % updata:2018/6/18 13:22 增加补偿电容参数 %节点类型 标号 %PQ节点 1 %PV节点 2 %slack节点 3 %能计算给定标幺值网络,有且仅有一个平衡节点的潮流 %注意:母线标号顺序要求:PQ节点-PV节点-平衡节点 %若某元件不存在,其导纳为0,阻抗为inf clear %清除工作空间变量 clc %清屏 %数据输入(标幺值) SB=100; %基准容量,单位MVA %母线基准电压 Bus=[115 10.5 115 115]; %交流线参数:I侧母线 J侧母线 阻抗 1/2接地导纳 Line=[4 1 0.06125+0.09527i 0; 4 3 0.08469+0.12703i 0; 1 3 0.13989+0.15501i 0]; %变压器参数:I侧母线 J侧母线 阻抗 变比 %变压器阻抗归算到I侧? Trans=[2 3 0.0137+0.2881i 0.9504]; %加接地电容器补偿: 母线 导纳 Cap=[2 0.5i]; %发电机参数:母线 节点类型 P V/U θ Gen=[4 3 1 0]; %负荷参数:母线 节点类型 P Q %按参考方向,发电机发出功率(正值),负荷消耗功率(负值) Load=[1 1 -0.18 -0.06; 2 1 -0.32 -0.12]; mode=2; %1-极坐标下牛拉法, 2-PQ分解法 Tmax=50; %最大迭代次数 limit=1.0e-4; %要求精度 %变压器π型等效阻抗参数 Zt=zeros(size(Trans,1),3); Zt(:,1)=Trans(:,3)./Trans(:,4); Zt(:,2)=Trans(:,3)./(1-Trans(:,4)); t(:,3)=Trans(:,3)./(Trans(:,4).^2-Trans(:,4)); Trans_pi=[Trans(:,1:2) Zt(:,1) 1./Zt(:,2) 1./Zt(:,3)]; n=numel(Bus); %总节点数 m=n-1; %PQ节点数 for i=1:size(Gen,1)%数组行数 if Gen(i,2)==2 %除去PV节点就是PQ节点 m=m-1; end end for i=1:size(Load,1) if Load(i,2)==2 m=m-1; end end %PQ节点包含浮游节点,其PQ=0 %提取P,Q,U向量 P=zeros(1,n); %P,Q为原始数据,Pi,Qi为计算结果 Q=zeros(1,n); U=ones(1,n); %电压初始值由此确定 cita=zeros(1,n); %此处未知节点皆设为1.0∠0 %注意:此处角度单位为度,提取后再转换成弧度,后面计算使用弧度 for i=1:size(Gen,1) if Gen(i,2)==1 %PQ节点 P(Gen(i,1))=Gen(i,3); Q(Gen(i,1))=Gen(i,4); end if Gen(i,2)==2 %PV节点 P(Gen(i,1))=Gen(i,3); U(Gen(i,1))=Gen(i,4); end if Gen(i,2)==3 %slack节点 U(Gen(i,1))=Gen(i,3); cita(Gen(i,1))=Gen(i,4); end end for i=1:size(Load,1) if Load(i,2)==1 %PQ节点 P(Load(i,1))=Load(i,3); Q(Load(i,1))=Load(i,4); end if Load(i,2)==2 %PV节点 P(Load(i,1))=Load(i,3); U(Load(i,1))=Load(i,4); end if Load(i,2)==3 %slack节点 U(Load(i,1))=Load(i,3); cita(Load(i,1))=Load(i,4); end end disp('初始条件:') disp('各节点有功:') disp(P); disp('各节点无功:') disp(Q); disp('各节点电压幅值:') disp(U); cita=(deg2rad(cita)); %角度转换成弧度 disp('各节点电压相角(度):') disp(rad2deg(cita)); %显示依然使用角度 %节点导纳矩阵的计算 Y=zeros(n); %新建节点导纳矩阵 y=zeros(n); %网络中的真实导纳 %计算y(i,j) for i=1:size(Line,1) %与交流线联结的真实导纳 ii=Line(i,1); jj=Line(i,2); y(ii,jj)=1/Line(i,3); y(jj,ii)=y(ii,jj); end for i=1:size(Trans_pi,1) %与变压器联结的真实导纳 ii=Trans_pi(i,1); jj=Trans_pi(i,2); y(ii,jj)=1/Trans_pi(i,3); y(jj,ii)=y(ii,jj); end %计算y(i,i) for i=1:size(Line,1) %与交流线联结的对地导纳 ii=Line(i,1); jj=Line(i,2); y(ii,ii)=y(ii,ii)+Line(i,4); y(jj,jj)=y(jj,jj)+Line(i,4); end for i=1:size(Trans_pi,1) %与变压器联结的对地导纳 ii=Trans_pi(i,1); jj=Trans_pi(i,2); y(ii,ii)=y(ii,ii)+Trans_pi(i,4); y(jj,jj)=y(jj,jj)+Trans_pi(i,5); end %算上补偿电容 for i=1:size(Cap,1) ii=Cap(i,1); y(ii,ii)=y(ii,ii)+Cap(i,2); end %由y计算Y ysum=sum(y,1); %每一行求和 for i=1:n for j=1:n if i==j Y(i,j)=ysum(i); else Y(i,j)=-y(i,j); end end end disp('节点导纳矩阵:'); disp(Y); G=real(Y); %电导矩阵 B=imag(Y); %电纳矩阵 %以上为基础数据整理 %接下来是牛拉法的大循环 %计算功率不平衡量 [dP,dQ,Pi,Qi]=Unbalanced( n,m,P,Q,U,G,B,cita ); disp('有功不平衡量:'); disp(dP); disp('无功不平衡量:'); disp(dQ); for i=1:Tmax fprintf('第%d次迭代\n',i); %雅可比矩阵的计算 if(mode==1) J=Jacobi( n,m,U,cita,B,G,Pi,Qi ); disp('雅可比矩阵'); disp(J); end %求解节点电压修正量 if(mode==1) [dU,dcita]=Correct( n,m,U,dP,dQ,J ); else [dU,dcita]=PQ_LJ( n,m,dP,dQ,U,B ); end disp('电压、相角修正量:'); disp(dU); disp(rad2deg(dcita)); %修正节点电压 U=U+dU; cita=cita+dcita; disp('节点电压幅值:'); disp(U); disp('节点电压相角:'); disp(rad2deg(cita)); %计算功率不平衡量 [dP,dQ,Pi,Qi]=Unbalanced( n,m,P,Q,U,G,B,cita ); disp('有功不平衡量:'); disp(dP); disp('无功不平衡量:'); disp(dQ); if (max(abs(dP))<limit && max(abs(dQ))<limit ) break; end%if end%for %迭代结束,判断收敛 if (max(abs(dP))<limit && max(abs(dQ))<limit ) disp('计算收敛'); else disp('计算不收敛或未达到要求精度'); end %打印功率 fprintf('迭代总次数:%d\n', i); disp('节点电压幅值:'); disp(U); disp('节点电压相角:'); disp(rad2deg(cita)); disp('有功计算结果:'); disp(Pi); disp('无功计算结果:'); disp(Qi); %子程序一 % function: 计算功率不平衡量 function [ dP,dQ,Pi,Qi ] = Unbalanced( n,m,P,Q,U,G,B,cita ) %计算ΔPi有功的不平衡量 for i=1:n for j=1:n Pn(j)=U(i)*U(j)*(G(i,j)*cos(cita(i)-cita(j))+B(i,j)*sin(cita(i)-cita(j))); end Pi(i)=sum(Pn); end dP=P(1:n-1)-Pi(1:n-1); %dP有n-1个 %计算ΔQi无功的不平衡量 for i=1:n for j=1:n Qn(j)=U(i)*U(j)*(G(i,j)*sin(cita(i)-cita(j))-B(i,j)*cos(cita(i)-cita(j))); end Qi(i)=sum(Qn); end dQ=Q(1:m)-Qi(1:m); %dQ有m个 end%func %子程序二 % function: 计算雅可比矩阵 function [ J ] = Jacobi( n,m,U,cita,B,G,Pi,Qi ) %雅可比矩阵的计算 %分块 H N K L %i!=j时 for i=1:n-1 for j=1:n-1 H(i,j)=-U(i)*U(j)*(G(i,j)*sin(cita(i)-cita(j))-B(i,j)*cos(cita(i)-cita(j))); end end for i=1:n-1 for j=1:m N(i,j)=-U(i)*U(j)*(G(i,j)*cos(cita(i)-cita(j))+B(i,j)*sin(cita(i)-cita(j))); end end for i=1:m for j=1:n-1 K(i,j)=U(i)*U(j)*(G(i,j)*cos(cita(i)-cita(j))+B(i,j)*sin(cita(i)-cita(j))); end end for i=1:m for j=1:m L(i,j)=-U(i)*U(j)*(G(i,j)*sin(cita(i)-cita(j))-B(i,j)*cos(cita(i)-cita(j))); end end %i==j时 for i=1:n-1 H(i,i)=U(i).^2*B(i,i)+Qi(i); end for i=1:m N(i,i)=-U(i).^2*G(i,i)-Pi(i); end for i=1:m K(i,i)=U(i).^2*G(i,i)-Pi(i); end for i=1:m L(i,i)=U(i).^2*B(i,i)-Qi(i); end %合成雅可比矩阵 J=[H N;K L]; end %子程序三 % function:修正节点电压 function [ dU,dcita ] = Correct( n,m,U,dP,dQ,J ) %求解节点电压修正量 for i=1:m Ud2(i,i)=U(i); end dPQ=[dP dQ]'; dUcita=(-inv(J)*dPQ)'; dcita=dUcita(1:n-1); dcita=[dcita 0]; dU=(Ud2*dUcita(n:n+m-1)')'; dU=[dU zeros(1,n-m)]; end %子程序四 % function:使用PQ分解法计算电压修正量 function [ dU,dcita ] = PQ_LJ( n,m,dP,dQ,U,B ) dP_U=dP./U(1:n-1); dQ_U=dQ./U(1:m); dUdcita=(-inv(B(1:n-1,1:n-1))*dP_U')'; dcita=dUdcita./U(1:n-1); dU=(-inv(B(1:m,1:m))*dQ_U')'; dU=[dU zeros(1,n-m)]; dcita=[dcita 0];%补零 end
评论
    相关推荐
    • 潮流计算.zip
      30节点潮流计算,MATLAB编程,用于潮流分析,可计算节点过电压
    • 潮流计算.rar
      这是对电力系统进行潮流计算的一个例子,算法采用牛顿-拉夫逊法。
    • 潮流计算功率分布.zip
      给定电力系统网络拓扑、元件参数和发电、负荷参量条件下,计算有功功率、无功功率及电压在电力网中的分布。
    • 潮流计算.rar
      潮流计算一直以来都是大家关心的热点问题,本程序通过牛顿拉夫逊法以及PQ分解法进行了潮流计算的分析
    • IEEE14潮流计算.rar
      标准14节点的电力系统测试程序,用于算例验证等相关电力系统分析内容
    • 潮流计算.zip
      仿真和练习使用,用于小规模电力系统潮流计算
    • 潮流计算系统仿真.zip
      潮流计算系统仿真 参数设置可改 系统仿真、波形图正常
    • 潮流计算
      IEEE30节点潮流计算,通过matlab实现
    • 潮流计算.rar
      潮流计算C++语言牛顿法 IEEE4、5、14、30、57、118、300节点系统
    • SIM800C_MQTT.rar
      使用SIM800C模块,使用MQTT协议,连接中国移动onenet平台,能实现数据的订阅、发布、存储等