PQ分解法计算大电网潮流程序

合集下载

电力系统潮流计算pq法及程序

电力系统潮流计算pq法及程序
2、学习 MATLAB 编程方法,完成潮流程序,通过算例考核。 3、掌握科技文献查阅和科技论文写作的方法。 4 利用因子表、稀疏技术以及 MATLAB 特点等提高计算性能(选做)。
三、设计(论文)成品要求
1、毕业设计说明书(论文)1 份; 2、外文翻译资料 1 份(不少于 3000 汉字); 3、MATLAB 潮流软件 1 份。
班级 2 班
指 导 教 师 刘宪林 单位 电气工程系 职称 教授
校外指导教师
单位——————————————
职称——————————
题目 带二阶项的快速潮流研究
一、毕业设计(论文)内容 对带二阶项的快速潮流进行研究,编制相应程序。
二、毕业设计(论文)应达到的主要指标 1、学习带二阶项的快速潮流的概念和模型。
教研室主任——————————
II
主管院长———————
王刚:带二阶项的快速潮流研究
摘要
在简要分析了电网常规潮流算法的基础上,选择带二阶项的快速潮流算法进 行研究。该算法包含传统的带二阶项的快速潮流算法和一种改进的带二阶项的快 速潮流算法,既适用于高压电网也适用于各种复杂的配电网。改进的带二阶项快 速潮流算法应用矩阵分块求逆方法对阶数较高的雅克比阵求逆计算进行了改进, 使阶数较高的雅克比阵的求逆变为阶数较低的四个子阵的求逆,从而简化了求逆计 算。基于传统的带二阶项的快速潮流算法编写了潮流计算软件,并使用算例对带 二阶项的快速潮流算法和牛顿-拉夫逊算法就计算特性等方面进行了比较。结果表 明,带二阶项的快速潮流算法具有较高的计算速度。 关键词: 潮流计算,二阶项,配电网
四、参考资料
[1] 王锡凡主编.现代电力系统分析.北京:科学出版社,2003 年 [2] 王祖佑主编.电力系统稳态运行计算机分析.北京:水利电力出版社,1987 年 *自行查阅其他相关中外文文献

电力系统潮流计算牛顿拉夫迅法与PQ分解法通用MATLAB计算程序

电力系统潮流计算牛顿拉夫迅法与PQ分解法通用MATLAB计算程序

此程序经40余同学使用检验,无误。

这是一个电气狗熬两个礼拜图书馆的成果,根据华中科技大学《电力系统分析》中原理编写,可用牛顿-拉夫逊和PQ分解法计算给定标幺值条件的潮流。

本人水平有限,仅供参考,欢迎一起找Bug。

2018/07/06 说明:由于本人变压器建模与PSASP不同,本人使用模型如下图,参数输入时请按该模型计算。

2018/06/18 主程序更新:增加补偿电容参数主程序% file name:chaoliu_lj.m% auther: 山东科技大学罗江% function:使用牛顿-拉夫逊法、PQ分解法计算潮流% updata:2018/6/18 13:22 增加补偿电容参数%节点类型标号%PQ节点 1%PV节点 2%slack节点 3%能计算给定标幺值网络,有且仅有一个平衡节点的潮流%注意:母线标号顺序要求:PQ节点-PV节点-平衡节点%若某元件不存在,其导纳为0,阻抗为infclear %清除工作空间变量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=1; %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));Zt(:,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;endendfor i=1:size(Load,1)if Load(i,2)==2m=m-1;endend%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);endif Gen(i,2)==2 %PV节点P(Gen(i,1))=Gen(i,3);U(Gen(i,1))=Gen(i,4);endif Gen(i,2)==3 %slack节点U(Gen(i,1))=Gen(i,3);cita(Gen(i,1))=Gen(i,4);endendfor 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);endif Load(i,2)==2 %PV节点P(Load(i,1))=Load(i,3);U(Load(i,1))=Load(i,4);endif Load(i,2)==3 %slack节点U(Load(i,1))=Load(i,3);cita(Load(i,1))=Load(i,4);endenddisp('初始条件:')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);endfor 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);endfor 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计算Yysum=sum(y,1); %每一行求和for i=1:nfor j=1:nif i==jY(i,j)=ysum(i);elseY(i,j)=-y(i,j);endendenddisp('节点导纳矩阵:');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:Tmaxfprintf('第%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 );enddisp('电压、相角修正量:');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%ifend%for%迭代结束,判断收敛if (max(abs(dP))<limit && max(abs(dQ))<limit )disp('计算收敛');elsedisp('计算不收敛或未达到要求精度');end%打印功率fprintf('迭代总次数:%d\n', i);disp('节点电压幅值:');disp(U);disp('节点电压相角:');disp(rad2deg(cita));disp('有功计算结果:');disp(Pi);disp('无功计算结果:');disp(Qi);子程序一% filename:Unbalanced.m% author: 山东科技大学罗江% function: 计算功率不平衡量function [ dP,dQ,Pi,Qi ] = Unbalanced( n,m,P,Q,U,G,B,cita )%计算ΔPi有功的不平衡量for i=1:nfor j=1:nPn(j)=U(i)*U(j)*(G(i,j)*cos(cita(i)-cita(j))+B(i,j)*sin(cita(i)-cita(j)));endPi(i)=sum(Pn);enddP=P(1:n-1)-Pi(1:n-1); %dP有n-1个%计算ΔQi无功的不平衡量for i=1:nfor j=1:nQn(j)=U(i)*U(j)*(G(i,j)*sin(cita(i)-cita(j))-B(i,j)*cos(cita(i)-cita(j)));endQi(i)=sum(Qn);enddQ=Q(1:m)-Qi(1:m); %dQ有m个end%func子程序二% filename:Jacobi.m% author:山东科技大学罗江% function: 计算雅可比矩阵function [ J ] = Jacobi( n,m,U,cita,B,G,Pi,Qi )%雅可比矩阵的计算%分块H N K L%i!=j时for i=1:n-1for j=1:n-1H(i,j)=-U(i)*U(j)*(G(i,j)*sin(cita(i)-cita(j))-B(i,j)*cos(cita(i)-cita(j)));endendfor i=1:n-1for j=1:mN(i,j)=-U(i)*U(j)*(G(i,j)*cos(cita(i)-cita(j))+B(i,j)*sin(cita(i)-cita(j)));endendfor i=1:mfor j=1:n-1K(i,j)=U(i)*U(j)*(G(i,j)*cos(cita(i)-cita(j))+B(i,j)*sin(cita(i)-cita(j)));endendfor i=1:mfor j=1:mL(i,j)=-U(i)*U(j)*(G(i,j)*sin(cita(i)-cita(j))-B(i,j)*cos(cita(i)-cita(j)));endend%i==j时for i=1:n-1H(i,i)=U(i).^2*B(i,i)+Qi(i);endfor i=1:mN(i,i)=-U(i).^2*G(i,i)-Pi(i);endfor i=1:mK(i,i)=U(i).^2*G(i,i)-Pi(i);endfor i=1:mL(i,i)=U(i).^2*B(i,i)-Qi(i);end%合成雅可比矩阵J=[H N;K L];end子程序三% filename:Correct.m% author:山东科技大学罗江% function:修正节点电压function [ dU,dcita ] = Correct( n,m,U,dP,dQ,J )%求解节点电压修正量for i=1:mUd2(i,i)=U(i);enddPQ=[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子程序四% filename:PQ_LJ.m% author:山东科技大学罗江% 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 (使用时此括号删去。

P-Q分解法潮流计算

P-Q分解法潮流计算

(3)系数矩阵B’和B’’是对称矩阵。因此,只需要 形成并贮存因子表的上三角或下三角部分,这 样又减少了三角分解的计算量并节约了内存。
P-Q分解法的收敛特性
P-Q分解法所采取的一系列简化假定只影响了修 正方程式的结构,也就是说只影响了 迭代过程, 并不影响最终结果。因为P-Q'分解法和牛顿法都 采用相同的数学模型式,最后计算功率误差和判 断收敛条件都是严格按照精确公式进行的,所以 P-Q分解法和 牛顿法一样可以达到很高的精度。
由图2-3可以看出,牛顿法在开始时收敛得比较慢, 当收敛到一定程度后,它的收敛速度就非常快, 而P-Q分解法几乎是按同一速度收敛的。如果给 出的收敛条件小于图中A点相应的误差,那么P-Q 分解法所需要的迭代次数要比牛顿法多几次。可 以粗略地认为P-Q分解法的选代次数与精度的要 求之间存在着线性关系。
H ij VV i j (Gij sin ij Bij cos ij ) Nij VV i j (Gij cos ij Bij sin ij ) M ij VV i j (Gij cos ij Bij sin ij ) Lij VV i j (Gij sin ij Bij cos ij )
(1)一般情况下,线路两端电压的相角差不大(不 超过10°~20°),因此可以认为
cos ij 1,
Gij sin ij Bij
(2)与系统各节点无功功率相对应的导纳 通常远小于该节点自导纳的虚部 ,即
B Li Qi 2 Bii Vi
Qi Vi2Bii
考虑到上述关系,略去相关项可将系数矩阵
P-Q分解法潮流计算
P-Q分解法潮流计算
PQ分解法是由极坐标形式的牛顿法演 化而来,以有功功率作为修正电压向 量角度的依据,以无功功率作为修正 电压幅值的依据,把有功功率和无功 功率迭代分开进行。

第四节PQ分解法潮流计算

第四节PQ分解法潮流计算

第四节 PQ 分解法潮流计算一 、PQ 分解法的基本方程式60年代以来N —R 法曾经是潮流计算中应用比较普遍的方法,但随着网络规模的扩大(从计算几十个节点增加到几百个甚至上千个节点)以及计算机从离线计算向在线计算的发展,N —R 法在内存需要量及计算速度方面越来越不 适应要求。

70年代中期出现的快速分解法比较成功的解决了上述问题,使潮流计算在N —R 法的基础上向前迈进了一大步,成为取代N —R 法的算法之一。

快速分解法(又称P —Q 分解法)是从简化牛顿法极坐标形式计算潮流程序的基础上提出来的。

它的基本思想是根据电力系统实际运行特点:通常网络上的电抗远大于电阻值 ,则系统母线电压副值的微小变化V ∆对母线有功功率的改变P ∆影响很小。

同样,母线电压相角的少许改变θ∆,也不会引起母线无功功率的明显改变Q ∆。

因此,节点功率方程在用极坐标形式表示时,它的修正方程式可简化为:⎥⎦⎤⎢⎣⎡∆∆⎥⎦⎤⎢⎣⎡=⎥⎦⎤⎢⎣⎡∆∆V V L H Q P /00θ (4—19) 这就是把2(n —1)阶的线性方程组变成了两个n —1阶的线性方程组,将P 和Q 分开来进行迭代计算,因而大大地减少了计算工作量。

但是,H ,L 在迭代过程中仍然在不断的变化,而且又都是不对称的矩阵。

对牛顿法的进一步简化(也是最关键的一步),即把(4—19)中的系数矩阵简化为在迭代过程中不变的对称矩阵。

在一般情况下,线路两端电压的相角ij θ是不大的(不超过10○~20○)。

因此,可以认为:⎭⎬⎫<<≈ij ij ij ij B G θθsin 1cos (4—20)此外,与系统各节点无功功率相应的导纳B LDi 远远小于该节点自导纳的虚部,即 ii iiLDi B V Q B <<=2 因而 ii i i B V Q 2<< (4—21) 考虑到以上关系,式(4—19)的系数矩阵中的各元素可表示为: ij j i ij B V V H = (i,j=1,2,………,n-1) (4—22)ij j i ij B V V L = (i,j=1,2,……………,m ) (4—23)而系数矩阵H 和L 则可以分别写成:⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎣⎡=------------11,1122,1111,1111,222222121211,1121211111n n n n n n n n n n n n V B V V B V V B V V B V V B V V B V V B V V B V V B V H =⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡--------1211,12,11,11,222211,11211121n n n n n n n n V V V B B B B B B B B B V V V =11D D BV V (4—24)⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡=m mm m m m m m m m m m m V B V V B V V B V V B V V B V V B V V B V V B V V B V L 22122222212121121211111 =⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡m mm m m m m m V V V B B B B B B B B B V V V2121222211121121=22''D D V B V (4—25) 将(4—24)和(4—25)式代入(4—19)中,得到[][][][][]θ∆'-=∆11D D V B V P[][][][]V B V Q D ∆-=∆''2用[]11-D V 和[]12-D V 分别左乘以上两式便得:[][][][][]θ∆-=∆-111'D D V B P V (4—26)[][][][]V B Q V D ∆-=∆-''12 (4—27)这就是简化了的修正方程式,它们也可展开写成:⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡∆∆∆⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡-=⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡∆∆∆----------1122111,12,11,11,222211,11211112211n n n n n n n n n n V V V B B B B B B B B B V P V P V P θθθ(4—28)⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡∆∆∆⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡-=⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡∆∆∆m mm m m m m m mV V V B B B B B B B B B V Q V Q V Q 212122221112112211 (4—29) 在这两个修正方程式中系数矩阵元素就是系统导纳矩阵的虚部,因而系数矩阵是对称矩阵,且在迭代过程中保持不变。

复杂 电力系统潮流计算的牛拉法和 pq 分解法

复杂 电力系统潮流计算的牛拉法和 pq 分解法

复杂电力系统潮流计算的牛拉法和 pq 分解法下载提示:该文档是本店铺精心编制而成的,希望大家下载后,能够帮助大家解决实际问题。

文档下载后可定制修改,请根据实际需要进行调整和使用,谢谢!本店铺为大家提供各种类型的实用资料,如教育随笔、日记赏析、句子摘抄、古诗大全、经典美文、话题作文、工作总结、词语解析、文案摘录、其他资料等等,想了解不同资料格式和写法,敬请关注!Download tips: This document is carefully compiled by this editor. I hope that after you download it, it can help you solve practical problems. The document can be customized and modified after downloading, please adjust and use it according to actual needs, thank you! In addition, this shop provides you with various types of practical materials, such as educational essays, diary appreciation, sentence excerpts, ancient poems, classic articles, topic composition, work summary, word parsing, copy excerpts, other materials and so on, want to know different data formats and writing methods, please pay attention!一、引言在电力系统中,潮流计算是一项重要的工作。

基于PQ分解法的潮流计算程序设计

基于PQ分解法的潮流计算程序设计

基于PQ分解法的潮流计算程序设计摘要电力系统潮流计算,在实际的电力设计工作中是一种选择电气设备和选线的方法。

在具体的电力运转过程当中,主要功能是对运转模式进行明确,从而确定相应的维修与保养计划,同时为电压的统计、运行经济性统计、稳定性统计等给予相应的数据信息。

流量计算方法包括分析方法、手工计算和计算机算法。

手动算法适用于简单的电力系统,可以加深对物理概念的理解,并为计算机方法提供原始数据。

大多数实际的电力系统计算都使用计算机算法。

本文重点研究了基于P-Q分解法潮流计算的计算机算法。

P-Q分解是潮流计算中最常用的方法之一。

它主要来源于牛顿 - 拉夫森法当中的极坐标,是对该方法的简单化表达。

P-Q分解法的核心思路是通过极坐标的形式以电压矢量通过节点功率进行表达,从而对其中的核心冲突进行掌握,同时依据有功功率的偏差及无功功率的电压矢量进行调整。

在电压幅度的校正过程中,速度偏差是为其打基础的,此外有功及无功功率两者是分别进行升级的。

将其与现有的传统潮流计算方法进行比较。

该算法有效地提高了运算速度。

本文详细介绍了pq分解法的形成过程及其计算过程。

结合一个具有代表性的网络示例,采用p-q分解方法计算趋势。

然后,举一个例子,用MATLAB编程软件开发通用功率流计算程序。

该程序已调试和修改。

将已知参数输入程序并计算。

程序的准确度控制在0.01,结果通过迭代和输出获得。

迭代后给出了节点电压的振幅和相位角,并将通过各分支的有功功率和无功功率参考值与计算结果进行了比较。

通过比较可知,得到的电压和相角均在误差范围内。

结果表明,该程序是稳定的,分支电流误差略大。

通过对计算结果的分析,可以清楚地看到电压幅值不超过系统电压的 5%偏移极限,表明实际程序满足电力系统运行的要求,从而证明计算结果合理的。

最后,验证了该程序的有效性。

关键词: 电力系统潮流计算; P-Q分解法; MATLAB软件AbstractPower flow calculation is an important method to study the stable operation of power system. In the study of power system planning and design and existing power system operation modes, it is necessary to quantitatively analyze and compare the real-time operation modes of power supply schemes. Rationality, reliability and economy. In the operation of power system, it is used to determine the operation mode, formulate maintenance plan, and provide necessary data for voltage regulation calculation, economic operation calculation and stability calculation. The flow calculation method includes analysis method, manual calculation and computer algorithm. Manual algorithms are suitable for simple power systems, which can deepen the understanding of physical concepts and provide raw data for computer methods. Most practical power system calculations use computer algorithms. P-Q decomposition is one of the most commonly used methods in power flow calculation. It comes from the Newton Lawson method in polar coordinates. This is a simplification of the Newton Lawson method. The basic idea of P-Q decomposition method is to represent node power as polar coordinate equation of voltage vector, master the main contradictions, and correct voltage vector angle according to active power error and reactive power. It is compared with the existing traditional power flow calculation methods. The algorithm improves the operation speed effectively.The program has been debugged and modified. Input the known parameters into the program and calculate them. The accuracy of the program is controlled at 0.01, and the results are obtained by iteration and output. The amplitude and phase angle of node voltage are given after iteration, and the reference values of active power and reactive power ofeach branch are compared with the calculated results.it can be clearly seen that the voltage amplitude does not exceed the 5% offset limit of the system voltage, which shows that the actual program meets the requirements of the operation of the power system, thus proving the calculation results are reasonable. Finally, the validity of the program is verified.KEY WORDS: Power System Flow Calculation;P-Q Decomposition -Method;C-Free 5.0目录摘要 (1)第一章绪论 (6)1.1 课题背景 (6)1.2 潮流计算的意义 (7)1.3本次毕业设计的主要工作内容 (7)第二章潮流计算 (8)2.1潮流计算的目的 (8)2.2潮流计算的基本方程 (8)2.2.1 电力系统的组成 (8)2.2.2节点的分类 (9)2.2.3节点功率方程式 (9)2.3节点导纳矩阵 (10)2.4电力系统潮流计算方法 (12)2.4.1 高斯-赛德尔迭代法 (12)2.4.2潮流计算的牛顿法 (12)2.4.3 PQ分解法 (14)第三章基于P-Q分解法的潮流计算程序设计 (16)3.1 P-Q分解法潮流计算步骤 (16)3.2 P-Q分解法的潮流程序设计框图 (16)3.3 程序编译语言介绍 (18)3.3变量的定义 (18)3.3.1原始数据规定 (18)3.3.2节点信息变量的定义 (19)3.3.3节点导纳矩阵的定义 (19)3.3.4支路信息变量的定义 (19)3.3.5其他变量的定义 (20)3.4程序分模块设计 (20)3.4.1主程序的设计 (20)3.4.2子程序的设计 (21)第四章程序有效性的验证 (23)4.1实际例子及其参考参数 (23)4.2实际程序计算出的结果 (24)4.3结果比较与分析 (26)4.4 程序的不足 (26)参考文献 (27)致谢 ................................................................................................................... 错误!未定义书签。

电力系统潮流分析与计算设计(P Q分解法)

电力系统潮流分析与计算设计(P Q分解法)

电力系统潮流分析与计算设计(P Q分解法)电力系统潮流分析与计算设计(p-q分解法)摘要潮流排序就是研究电力系统的一种最基本和最重要的排序。

最初,电力系统潮流排序就是通过人工手算的,后来为了适应环境电力系统日益发展的须要,使用了交流排序台。

随着电子数字计算机的发生,1956年ward等人基本建设了实际可取的计算机潮流排序程序。

这样,就为日趋繁杂的大规模电力系统提供更多了极其有力的排序手段。

经过几十年的时间,电力系统潮流排序已经发展得十分明朗。

潮流排序就是研究电力系统稳态运转情况的一种排序,就是根据取值的运转条件及系统接线情况确认整个电力系统各个部分的运转状态,例如各母线的电压、各元件中穿过的功率、系统的功率损耗等等。

电力系统潮流排序就是排序系统动态平衡和静态平衡的基础。

在电力系统规划设计和现有电力系统运转方式的研究中,都须要利用电力系统潮流排序去定量的比较供电方案或运转方式的合理性、可靠性和经济性。

电力系统潮流计算分为离线计算和在线计算,离线计算主要用于系统规划设计、安排系统的运行方式,在线计算则用于运行中系统的实时监测和实时控制。

两种计算的原理在本质上是相同的。

实际电力系统的潮流技术主要使用pq水解法。

1974年,由scottb.在文献(@)中首次提出pq分解法,也叫快速解耦法(fastdecoupledloadflow,简写为fdlf)。

本设计就是使用pq水解法排序电力系统潮流的。

关键词:电力系统潮流排序pq水解法第一章概论1.1详述电力系统潮流计算是研究电力系统稳态运行情况的一种计算,它是根据给定的运行条件及系统接线情况确定整个电力系统各个部分的运行状态,如各母线的电压、各元件中流过的功率、系统的功率损耗等等。

电力系统潮流计算是计算系统动态稳定和静态稳定的基础。

在电力系统规划设计和现有电力系统运行方式的研究中,都需要利用电力系统潮流计算来定量的比较供电方案或运行方式的合理性、可靠性和经济性。

电力系统分析潮流计算C语言编程-pq分解法2

电力系统分析潮流计算C语言编程-pq分解法2
void factor();/*求因子表*/
void solve(float **B,float *X,int N);/*解方程组*/
void PrtNode();/*打印输出节点参数*/
void ErrorMsg(int Flag);/*错误信息*/
int Node;/*节点数*/
int num;/*原始节点序号*/
kp=0;
for(i=0;i<NP;i++)
{
dPi=dP+i;
Yi=*(Y+i)-i;
Dltai=*(Dlta+i);
*dPi=0;
for(j=0;j<Node;j++)
{
temp=Dltai-*(Dlta+j);
if(i>j)*dPi+=*(V+j)*(Pji);
tP=*(V+j)*(Pij);
tP=*(V+i)*Yij.G-tP;
tP*=*(V+i);
tQ=*(V+j)*(Qij);
tQ-=*(V+i)*(Yij.B-Yij.B0);
tQ*=*(V+i);
}
fprintf(out,"S[%d,%d]=(%10.6f,%10.6f)\n",k+1,m+1,-tP,-tQ)
*(num+i)=k;
fscanf(in,"%d",&k);
}
if(NQ+j!=Node)ErrorMsg(4);
fprintf(out,"【节点参数表】\n");
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

function PQ%用PQ分解法计算大电网潮流% %bus数组 1.节点编号 2.节点电压 3.节点电压角度 4.注入有功 5.注入无功 6.节点类型(1PQ 2PV 3平衡)%line数组 1.始端节点编号 2.末端节点编号 3.电阻 4电抗 5电导G 6电纳B 7.变比%打开数据文件clearclcbus=load('ieee14bus.txt');line=load('ieee14line.txt');linenum(:,[1,2])=line(:,[1,2]);[nb,~]=size(bus);[nl,~]=size(line);% nodenum=[(1:nb)' bus(:,1)];%带入子函数数据处理[bus,line,nPQ,nPV,nSW,nodenum] =change1_busline( bus,line );%对节点重新编号Y = admittance(bus,line,1 );%生成节点导纳矩阵Y1= admittance(bus,line,2 );%生成化简条件3的矩阵B1Y2=admittance(bus,line,3 );%生成化简条件3的矩阵B2%-----------------------------------------------------% %临时添加的测试数据% nPQ=4; nPV=0;nSW=1;nb=5;% Y=[10.834-32.5i -1.667+5i -1.667+5i -2.5+7.5i -5+15i% -1.667+5i 12.917-38.75i -10+30i 0 -1.25+3.75i% -1.667+5i -10+30i 12.917-38.75i -1.25+3.75i 0% -2.5+7.5i 0 -1.25+3.75i 3.75-11.25i 0% -5+15i -1.25+3.75i 0 0 6.25-18.75i];%% Y1=[10.834-32.5i -1.667+5i -1.667+5i -2.5+7.5i -5+15i% -1.667+5i 12.917-38.75i -10+30i 0 -1.25+3.75i% -1.667+5i -10+30i 12.917-38.75i -1.25+3.75i 0% -2.5+7.5i 0 -1.25+3.75i 3.75-11.25i 0% -5+15i -1.25+3.75i 0 0 6.25-18.75i];%% bus=[1 1 0 0.2 0.2 1% 2 1 0 -0.45 -0.15 1% 3 1 0 -0.4 -0.05 1% 4 1 0 -0.6 -0.1 1% 5 1.06 0 0 0 3];%% line=[5 2 1.25 -3.75 0 0 0% 2 3 10 -30 0 0 0% 3 4 1.25 -3.75 0 0 0% 4 1 2.5 -7.5 0 0 0% 1 2 1.667 -5 0 0 0% 1 3 1.667 -5 0 0 0% 1 5 5 -15 0 0 0];%-------------------------------------------------------bus_PV0=bus((nPQ+1):end,2)';%1.05*ones(1,nPV+nSW);bus_U=[ones(1,nPQ) bus_PV0]';%电压幅值bus_e=zeros(nb,1); %电压角度delta_P=zeros(nPQ+nPV,1);delta_Q=zeros(nPQ,1);% delta_e=zeros(nb-1,1);%delta_U=zeros(nPQ,1);c=0;KP=1;KQ=1;%KP KQ用来判断有功、无功是否收敛G=real(Y);B=imag(Y);B10=imag(Y1);B20=imag(Y2);%矩阵B0是进行化简三后的节点导纳矩阵虚部%形成解耦潮流的系数矩阵B1和B2B1=B10(1:nb-1,1:nb-1);B2=B20(1:nPQ,1:nPQ);while c<80%求解P Q的不平衡量for ii=1:nPQ+nPVdelta_P(ii)=bus(ii,4);for jj=1:nbdelta_P(ii)=delta_P(ii)-bus_U(ii)*bus_U(jj)*(G(ii,jj)*cos(bus_e(ii)-bus _e(jj))+B(ii,jj)*sin(bus_e(ii)-bus_e(jj)));endendUP=diag(bus_U(1:(nb-1)));%U矩阵利用各节点电压形成对角阵,来计算修正方程,对角线上的元素与bus_U列元素一一对应error_P=UP\delta_P;if max(abs(error_P))>0.00001delta_e=-(UP*B1)\error_P;bus_e=bus_e+[delta_e;0];c=c+1;KQ=1;else KP=0;if KQ~=0elsebreakendendfor ii=1:nPQdelta_Q(ii)=bus(ii,5);for jj=1:nbdelta_Q(ii)=delta_Q(ii)-bus_U(ii)*bus_U(jj)*(G(ii,jj)*sin(bus_e(ii)-bus _e(jj))-B(ii,jj)*cos(bus_e(ii)-bus_e(jj)));endendUQ=diag(bus_U(1:(nb-nPV-nSW)));error_Q=UQ\delta_Q;if max(abs(error_Q))>0.00001delta_U=-B2\error_Q;bus_U=bus_U+[delta_U;zeros((nPV+nSW),1)];c=c+1;KP=1;else KQ=0;if KP~=0elsebreakendendend%至此得到收敛的节点电压值%----------------------------------------------%--------------------------------------------% 对计算结果进行数据处理%将节点结果用原节点编号表示bus_Ue=zeros(nb,3);bus_Ue(:,[1,2,3])=[nodenum(:,2) bus_U bus_e/pi*180];for ii=1:nbfor jj=ii+1:nbif bus_Ue(ii,1)>bus_Ue(jj,1)t=bus_Ue(ii,:);bus_Ue(ii,:)=bus_Ue(jj,:);bus_Ue(jj,:)=t;endendend%r_U是收敛的电压表达成复数的形式r_U=zeros(nb,1);for k=1:nbr_U(k)=bus_U(k)*(cos(bus_e(k))+1i*sin(bus_e(k)));end%计算平衡节点功率SW_S=0;SW_S=SW_S+r_U(nb)*conj(Y(nb,:))*conj(r_U);%计算各支路功率Sijline_S=zeros(nb,nb);line_S0=zeros(nb,nb);for ii=1:nbfor jj=1:nbline_S(ii,jj)=r_U(ii)*(conj(r_U(ii))*conj(Y(ii,ii))+(conj(r_U(ii))-conj (r_U(jj)))*conj(Y(ii,jj)));endend%------------------------------------------%把线路结果还原成原节点编号对应的结果for ii=1:nbfor jj=1:nbline_S0(nodenum(ii,2),nodenum(jj,2))=line_S(ii,jj);endendline_P=real(line_S0);line_Q=imag(line_S0);%计算各支路损耗delta_S=zeros(nl,1);for k=1:nla=linenum(k,1);b=linenum(k,2);delta_S(k)=line_S0(a,b)+line_S(b,a);end%计算网络总损耗S0=sum(delta_S);%-------------------------------------------------%将计算结果输入指定文件fid=fopen('C:\Users\lr\Desktop\matlab练习\训练题\大电网潮流计算\ieee14_out.txt','wt');fprintf(fid,'节点号\t节点电压幅值\t节点电压角度\n');for k=1:nbfprintf(fid,'%d\t%f\t%f\n',k,bus_Ue(k,1),bus_Ue(k,2));endfprintf(fid,'支路首端\t支路末端\t支路有功\t支路无功\t支路损耗\n');for k=1:nlfprintf(fid,'%d\t\t%d\t\t%f\t%f\t%f\n',linenum(k,1),linenum(k,2),line_P (linenum(k,1),linenum(k,2)),line_Q(linenum(k,1),linenum(k,2)),delta_S(k ));endfprintf(fid,'平衡节点功率=%f\n',SW_S);fprintf(fid,'网络总损耗=%f\n',S0);fclose(fid);endfunction [bus,line,nPQ,nPV,nSW,nodenum] =change1_busline( bus,line )%此函数用来对原始输入节点、线路数据进行重新编号% %bus数组 1.节点编号 2.节点电压 3.节点电压角度 4.注入有功 5.注入无功 6.节点类型(1PQ 2PV 3平衡)%line数组 1.始端节点编号 2.末端节点编号 3.电阻 4电抗 5电导G 6电纳B 7.变比[nb,~]=size(bus);[nl,~]=size(line);% nodenum=[(1:nb)' bus(:,1)];nPQ=0;nPV=0;nSW=0;%PQ=[];PQ=zeros(nb,6);PV=zeros(nb,6);SW=zeros(nb,6);%PQ PV 平衡节点的个数for k=1:nbswitch bus(k,6)case 1nPQ=nPQ+1;PQ(nPQ,:)=bus(k,:);case 2nPV=nPV+1;PV(nPV,:)=bus(k,:);case 3nSW=nSW+1;SW(nSW,:)=bus(k,:);otherwisedisp('节点数据类型出错!');endend%生成重新编号后的节点数据矩阵bus=[PQ;PV;SW];nodenum=[(1:nb)' bus(:,1)];%第一列为新的节点编号,第二列为对应的旧节点编号bus(:,1)=(1:nb)'; %至此实现了节点数据的重新编号%------------------------------------------------------%对线路数据重新编号% nodenum=[(1:nb)' bus(:,1)];%第一列为新的节点编号,第二列为对应的旧节点编号for ii=1:nl[r1,~]=find(nodenum(:,2)==line(ii,1));line(ii,1)=nodenum(r1,1);[r2,~]=find(nodenum(:,2)==line(ii,2));line(ii,2)=nodenum(r2,1);endendfunction Y = admittance(bus,line,c )%此函数用来形成节点导纳矩阵% %bus数组 1.节点编号 2.节点电压 3.节点电压角度 4.注入有功 5.注入无功 6.节点类型(1PQ 2PV 3平衡)%line数组 1.始端节点编号 2.末端节点编号 3.电阻 4电抗 5电导 6电纳B/2 7.变比%c是用来控制形成节点导纳矩阵的方式的,c=1 形成一般的节点导纳矩阵,可以用来确定B2,c=2,形成化简条件3的节点导纳矩阵,确定B1[nb,~]=size(bus);[nl,~]=size(line);Y=zeros(nb,nb);zt=zeros(nl,1);yt=zeros(nl,1);ym=zeros(nl,1);I=zeros(nl,1);J=zeros(nl,1 );K=zeros(nl,1);switch ccase 1for k=1:nlzt(k)=line(k,3)+1i*line(k,4);yt(k)=1/zt(k);ym(k)=line(k,5)+1i*line(k,6);I(k)=line(k,1);J(k)=line(k,2);K(k)=line(k,7);endcase 2for k=1:nlyt(k)=1/(line(k,3)+1i*line(k,4));ym=zeros(nl,1);I(k)=line(k,1);J(k)=line(k,2);if line(k,7)~=1K(k)=1;else K(k)=line(k,7);endendcase 3for k=1:nlyt(k)=1/(1i*line(k,4));ym(k)=line(k,5)+1i*line(k,6);I(k)=line(k,1);J(k)=line(k,2);K(k)=line(k,7);endend%针对不同线路设置节点导纳值for k=1:nlif (K(k)==1)&&(J(k)~=0) %普通线路Y(I(k),I(k))=Y(I(k),I(k))+yt(k)+ym(k);Y(J(k),J(k))=Y(J(k),J(k))+yt(k)+ym(k);Y(I(k),J(k))=Y(I(k),J(k))-yt(k);Y(J(k),I(k))=Y(I(k),J(k));endif (K(k)==1)&&(J(k)==0) %对地支路Y(I(k),I(k))=Y(I(k),I(k))+ym(k);endif (K(k)>1)&&(J(k)~=0) %非标准变比在j侧的变压器支路,zt ym为折算到i侧的值 Y(I(k),I(k))=Y(I(k),I(k))+yt(k)+ym(k);Y(J(k),J(k))=Y(J(k),J(k))+yt(k)/K(k)^2;Y(I(k),J(k))=Y(I(k),J(k))-yt(k)/K(k);Y(J(k),I(k))=Y(I(k),J(k));endif (K(k)<1)&&(J(k)~=0)Y(I(k),I(k))=Y(I(k),I(k))+yt(k)+ym(k);Y(J(k),J(k))=Y(J(k),J(k))+yt(k)*K(k)^2;Y(I(k),J(k))=Y(I(k),J(k))-yt(k)*K(k);Y(J(k),I(k))=Y(I(k),J(k));endendend。

相关文档
最新文档