MATLAB下的潮流计算实现-稀疏技术毕业设计

合集下载

潮流计算(matlab)实例计算

潮流计算(matlab)实例计算

潮流例题:根据给定的参数或工程具体要求(如图),收集和查阅资料;学习相关软件(软件自选:本设计选择Matlab进行设计)。

2.在给定的电力网络上画出等值电路图。

3.运用计算机进行潮流计算。

4.编写设计说明书。

一、设计原理1.牛顿-拉夫逊原理牛顿迭代法是取x0 之后,在这个基础上,找到比x0 更接近的方程的跟,一步一步迭代,从而找到更接近方程根的近似跟。

牛顿迭代法是求方程根的重要方法之一,其最大优点是在方程f(x) = 0 的单根附近具有平方收敛,而且该法还可以用来求方程的重根、复根。

电力系统潮流计算,一般来说,各个母线所供负荷的功率是已知的,各个节点电压是未知的(平衡节点外)可以根据网络结构形成节点导纳矩阵,然后由节点导纳矩阵列写功率方程,由于功率方程里功率是已知的,电压的幅值和相角是未知的,这样潮流计算的问题就转化为求解非线性方程组的问题了。

为了便于用迭代法解方程组,需要将上述功率方程改写成功率平衡方程,并对功率平衡方程求偏导,得出对应的雅可比矩阵,给未知节点赋电压初值,一般为额定电压,将初值带入功率平衡方程,得到功率不平衡量,这样由功率不平衡量、雅可比矩阵、节点电压不平衡量(未知的)构成了误差方程,解误差方程,得到节点电压不平衡量,节点电压加上节点电压不平衡量构成新的节点电压初值,将新的初值带入原来的功率平衡方程,并重新形成雅可比矩阵,然后计算新的电压不平衡量,这样不断迭代,不断修正,一般迭代三到五次就能收敛。

牛顿—拉夫逊迭代法的一般步骤:(1)形成各节点导纳矩阵Y。

(2)设个节点电压的初始值U和相角初始值e 还有迭代次数初值为0。

(3)计算各个节点的功率不平衡量。

(4)根据收敛条件判断是否满足,若不满足则向下进行。

(5)计算雅可比矩阵中的各元素。

(6)修正方程式个节点电压(7)利用新值自第(3)步开始进入下一次迭代,直至达到精度退出循环。

(8)计算平衡节点输出功率和各线路功率2.网络节点的优化1)静态地按最少出线支路数编号这种方法由称为静态优化法。

电力系统潮流计算matlab程序

电力系统潮流计算matlab程序

电力系统潮流计算matlab程序电力系统潮流计算是电力系统运行和规划中的重要环节,它用于计算电力系统中各节点的电压、功率和电流等参数。

随着电力系统规模的不断扩大和复杂性的增加,传统的手工计算方法已经无法满足需求,因此,利用计算机编程进行潮流计算成为了一种必要的选择。

Matlab是一种功能强大的科学计算软件,它提供了丰富的数学函数和工具箱,可以方便地进行电力系统潮流计算。

下面我将介绍一下如何使用Matlab编写电力系统潮流计算程序。

首先,我们需要建立电力系统的节点模型。

节点模型是电力系统中各节点的电压、功率和电流等参数的数学表示。

在Matlab中,我们可以使用矩阵来表示节点模型。

假设电力系统有n个节点,我们可以定义一个n×n的复数矩阵Y来表示节点之间的导纳关系,其中Y(i,j)表示节点i和节点j之间的导纳。

同时,我们还需要定义一个n×1的复数向量V来表示各节点的电压,其中V(i)表示节点i的电压。

接下来,我们需要编写潮流计算的主程序。

主程序的主要功能是根据节点模型和潮流计算算法,计算出各节点的电压、功率和电流等参数。

在Matlab中,我们可以使用循环语句和矩阵运算来实现潮流计算。

具体的计算过程可以参考电力系统潮流计算的算法。

在编写主程序之前,我们还需要定义一些输入参数,如电力系统的节点数、发电机节点和负荷节点等。

这些参数可以通过用户输入或者读取文件的方式获取。

同时,我们还需要定义一些输出参数,如各节点的电压、功率和电流等。

这些参数可以通过矩阵运算和循环语句计算得到,并输出到文件或者显示在屏幕上。

最后,我们需要进行程序的测试和调试。

可以通过输入一些测试数据,运行程序并检查输出结果是否正确。

如果发现程序有错误或者结果不准确,可以通过调试工具和打印调试信息的方式进行调试。

总之,利用Matlab编写电力系统潮流计算程序可以提高计算效率和准确性,为电力系统的运行和规划提供有力的支持。

当然,编写一个完整的潮流计算程序需要考虑很多细节和特殊情况,这需要有一定的电力系统和编程知识。

运用MATLAB软件进行潮流计算论文

运用MATLAB软件进行潮流计算论文

摘要本文运用MATLAB软件进行潮流计算,对给定题目进行分析计算,再应用DDRTS软件,构建系统图进行仿真,最终得到合理的系统潮流。

潮流计算是电力系统最基本最常用的计算。

根据系统给定的运行条件,网络接线及元件参数,通过潮流计算可以确定各母线的电压幅值和相角,各元件流过的功率,整个系统的功率损耗。

潮流计算是实现电力系统安全经济发供电的必要手段和重要工作环节。

因此,潮流计算在电力系统的规划计算,生产运行,调度管理及科学计算中都有着广泛的应用。

首先,画出系统的等效电路图,在计算出各元件参数的基础上,应用牛顿—拉夫逊Newton-Raphson法以及MATLAB软件进行计算对给定系统图进行了四种不同负荷下的潮流计算,经过调节均得到符合电压限制及功率限制的潮流分布。

其次,牛顿—拉夫逊Newton-Raphson法具有较好的收敛性,上述计算过程经过四到五次迭代后均能收敛。

根据运算结果,分析各支路损耗和系统总损耗。

最后,应用DDRTS软件,构建系统图,对给定负荷重新进行分析,潮流计算后的结果也能满足相应的参数要求。

关键词:牛顿-拉夫逊法MATLAB DDRTS 潮流计算目录1.摘要 (2)2.题目原始资料 (2)3.题目分析 (5)4.题目求解 (6)1)根据题意要求画出等值电路 (6)2)读程序画出拉夫逊法的流程图 (7)3)变电所负荷为题目所给数据进行求解 (8)4)编写程序并运行 (10)5)具体调压调损耗过程 (10)1.改变变压器变比调压 (10)2.改变发电机机端电压调压 (12)3.负荷按照一定比例变化的潮流计算分析 (15)4.轮流断开支路双回线中的一条的潮流计算 (19)5.仿真并比较 (26)6.设计心得 (28)7.参考文献 (29)一、 题目原始资料:1.系统图:两个发电厂分别通过变压器和输电线路与四个变电所相连。

变电所1变电所2母线2、发电厂资料:母线1和2为发电厂高压母线,发电厂一总装机容量为(300MW ),母线3为机压母线,机压母线上装机容量为(100MW),最大负荷和最小负荷分别为50MW和20MW;发电厂二总装机容量为(200MW )。

基于MATLAB的电力系统潮流计算

基于MATLAB的电力系统潮流计算

MATPOWER电力潮流和最优潮流
电力潮流 •MATPOWER拥有 5种潮流计算方法,他们可以通过 runpf来调用。除了可以输出到屏 幕之外(作为默认方式),runpf还可以有以下的返回选项可以选择参数来输出解: >> [baseMVA,bus,gen,branch,success,et]=runpf(casename) ; •这些解的值被存储在以下的结果中: •bus(:,VM) bus voltage magnitudes(母线电压幅值) • bus(:,VA) bus voltage angles (母线电压相角) • gen(:,PG) generator real power injections(发电机有功输入) • gen(:,QG) generator reactive power injections(发电机无功输入) • branch(:,PF) real power injected into “from” end of branch(支路首端的 有功输入) • branch(:,PT) real power injected into “to” end of branch(支路末端的有 功输入) branch(:,QF) reactive power injected into “from” end of branch (支路首端的无功输 入) branch(:,QT) reactive power injected into “to” end of branch(支 路末端的无功输入) • success 1=solved successfully,0=unable to solve(1表示计算成功,0表示失败) •et computation time required for solution( 计算所用时间)

MATLAB潮流计算仿真

MATLAB潮流计算仿真

附录A MATLAB程序%本程序的功能是用牛顿——拉夫逊法进行潮流计算% B1矩阵:1、支路首端号;2、末端号;3、支路阻抗;4、支路对地电纳% 5、支路的变比;6、支路首端处于K侧为1,1侧为0% B2矩阵:1、该节点发电机功率;2、该节点负荷功率;3、节点电压初始值% 4、PV节点电压V的给定值;5、节点所接的无功补偿设备的容量% 6、节点分类标号clear;n=10;%input('请输入节点数:n=');nl=11;%input('请输入支路数:nl=');isb=1;%input('请输入平衡母线节点号:isb=');pr=0.00001;%input('请输入误差精度:pr=');B1=[1 2 1.755e-2+4.155e-2i 0.26i 1 0;1 4 3.159e-2+7.479e-2i 0.1215i 1 0;1 6 3.159e-2+7.479e-2i 0.1215i 1 0;2 3 3.68e-3+0.11135i 0 0.909 1;4 5 3.68e-3+0.11135i 0 0.909 1;4 6 2.808e-2+6.648e-2i 0.108i 1 0;6 7 3.0865e-3+0.0833i 0 0.909 1;6 8 3.159e-2+7.479e-2i 0.1215i 1 0;6 10 2.457e-2+5.817e-2i 0.0945i 1 0;8 9 3.0865e-3+0.0833i 0 0.909 1;8 10 2.808e-2+6.648e-2i 0.108i 1 0];%input('请输入由支路参数形成的矩阵: B1=');B2=[0 0 1.05 1.05 0 1;0 0 1 0 0 2;0 0.6+0.3718i 1 0 0 2;0 0 1 0 0 2;0 0.4+0.247i 1 0 0 2;0 0 1 0 0 2;0 0.35+0.2169i 1 0 0 2;0 0 1 0 0 2;0 0.5+0.3099i 1 0 0 2;0.8 0 1.05 1.05 0 3];%input('请输入各节点参数形成的矩阵: B2=');Y=zeros(n);e=zeros(1,n);f=zeros(1,n);V=zeros(1,n);sida=zeros(1,n) ;S1=zeros(nl);%-------修改部分------------ym=0;SB=100;UB=220;%ym=input('您输入的参数是标么值?(若不是则输入一个不为零的数值)');if ym~=0%SB=input('请输入功率基准值:SB=');%UB=input('请输入电压基准值:UB=');YB=SB./UB./UB;BB1=B1;BB2=B2;for i=1:nlB1(i,3)=B1(i,3)*YB;B1(i,4)=B1(i,4)./YB;enddisp('B1矩阵B1=');disp(B1)for i=1:nB2(i,1)=B2(i,1)./SB;B2(i,2)=B2(i,2)./SB;B2(i,3)=B2(i,3)./UB;B2(i,4)=B2(i,4)./UB;B2(i,5)=B2(i,5)./SB;enddisp('B2矩阵B2=');disp(B2)end% % %---------------------------------------------------for i=1:nl %支路数if B1(i,6)==0 %左节点处于低压侧p=B1(i,1);q=B1(i,2);elsep=B1(i,2);q=B1(i,1);endY(p,q)=Y(p,q)-1./(B1(i,3)*B1(i,5)); %非对角元Y(q,p)=Y(p,q);Y(q,q)=Y(q,q)+1./(B1(i,3)*B1(i,5)^2)+B1(i,4)./2; %对角元K侧 Y(p,p)=Y(p,p)+1./B1(i,3)+B1(i,4)./2; %对角元1侧end%求导纳矩阵disp('导纳矩阵 Y=');disp(Y)%----------------------------------------------------------G=real(Y);B=imag(Y); %分解出导纳阵的实部和虚部for i=1:n %给定各节点初始电压的实部和虚部e(i)=real(B2(i,3));f(i)=imag(B2(i,3));V(i)=B2(i,4); %PV节点电压给定模值endfor i=1:n %给定各节点注入功率S(i)=B2(i,1)-B2(i,2); %i节点注入功率SG-SLB(i,i)=B(i,i)+B2(i,5); %i节点无功补偿量end%================================================================ ===P=real(S);Q=imag(S);ICT1=0;IT2=1;N0=2*n;N=N0+1;a=0;while IT2~=0IT2=0;a=a+1;for i=1:nif i~=isb %非平衡节点C(i)=0;D(i)=0;for j1=1:nC(i)=C(i)+G(i,j1)*e(j1)-B(i,j1)*f(j1);%Σ(Gij*ej-Bij*fj)D(i)=D(i)+G(i,j1)*f(j1)+B(i,j1)*e(j1);%Σ(Gij*fj+Bij*ej)endP1=C(i)*e(i)+f(i)*D(i);%节点功率P计算eiΣ(Gij*ej-Bij*fj)+fiΣ(Gij*fj+Bij*ej)Q1=C(i)*f(i)-e(i)*D(i);%节点功率Q计算fiΣ(Gij*ej-Bij*fj)-eiΣ(Gij*fj+Bij*ej)%求P',Q'V2=e(i)^2+f(i)^2; %电压模平方%========= 以下针对非PV节点来求取功率差及Jacobi矩阵元素 =========if B2(i,6)~=3 %非PV节点DP=P(i)-P1; %节点有功功率差DQ=Q(i)-Q1; %节点无功功率差%=============== 以上为除平衡节点外其它节点的功率计算 ================= %================= 求取Jacobi矩阵 ===================for j1=1:nif j1~=isb&j1~=i %非平衡节点&非对角元X1=-G(i,j1)*e(i)-B(i,j1)*f(i); % dP/de=-dQ/dfX2=B(i,j1)*e(i)-G(i,j1)*f(i); % dP/df=dQ/deX3=X2; % X2=dp/df X3=dQ/deX4=-X1; % X1=dP/de X4=dQ/dfp=2*i-1;q=2*j1-1;J(p,q)=X3;J(p,N)=DQ;m=p+1;J(m,q)=X1;J(m,N)=DP;q=q+1;J(p,q)=X4;J(m,q)=X2;elseif j1==i&j1~=isb %非平衡节点&对角元X1=-C(i)-G(i,i)*e(i)-B(i,i)*f(i);% dP/deX2=-D(i)+B(i,i)*e(i)-G(i,i)*f(i);% dP/dfX3=D(i)+B(i,i)*e(i)-G(i,i)*f(i); % dQ/deX4=-C(i)+G(i,i)*e(i)+B(i,i)*f(i);% dQ/dfp=2*i-1;q=2*j1-1;J(p,q)=X3;J(p,N)=DQ;%扩展列△Qm=p+1;J(m,q)=X1;q=q+1;J(p,q)=X4;J(m,N)=DP;%扩展列△PJ(m,q)=X2;endendelse%=============== 下面是针对PV节点来求取Jacobi矩阵的元素===========DP=P(i)-P1; % PV节点有功误差DV=V(i)^2-V2; % PV节点电压误差for j1=1:nif j1~=isb&j1~=i %非平衡节点&非对角元X1=-G(i,j1)*e(i)-B(i,j1)*f(i); % dP/deX2=B(i,j1)*e(i)-G(i,j1)*f(i); % dP/dfX5=0;X6=0;p=2*i-1;q=2*j1-1;J(p,q)=X5;J(p,N)=DV;m=p+1;J(m,q)=X1;J(m,N)=DP;q=q+1;J(p,q)=X6;J(m,q)=X2;elseif j1==i&j1~=isb %非平衡节点&对角元X1=-C(i)-G(i,i)*e(i)-B(i,i)*f(i);% dP/deX2=-D(i)+B(i,i)*e(i)-G(i,i)*f(i);% dP/dfX5=-2*e(i);X6=-2*f(i);p=2*i-1;q=2*j1-1;J(p,q)=X5;J(p,N)=DV;m=p+1;J(m,q)=X1;J(m,N)=DP;q=q+1;J(p,q)=X6;J(m,q)=X2;endendendendend%========= 以上为求雅可比矩阵的各个元素 =====================for k=3:N0 % N0=2*n (从第三行开始,第一、二行是平衡节点)k1=k+1;N1=N; % N=N0+1 即 N=2*n+1扩展列△P、△Q for k2=k1:N1 % 扩展列△P、△QJ(k,k2)=J(k,k2)./J(k,k); % 非对角元规格化endJ(k,k)=1; % 对角元规格化if k~=3 % 不是第三行%============================================================k4=k-1;for k3=3:k4 % 用k3行从第三行开始到当前行前的k4行消去for k2=k1:N1 % k3行后各行下三角元素J(k3,k2)=J(k3,k2)-J(k3,k)*J(k,k2);%消去运算endJ(k3,k)=0;endif k==N0break;end%==========================================for k3=k1:N0for k2=k1:N1J(k3,k2)=J(k3,k2)-J(k3,k)*J(k,k2);%消去运算endJ(k3,k)=0;endelsefor k3=k1:N0for k2=k1:N1J(k3,k2)=J(k3,k2)-J(k3,k)*J(k,k2);%消去运算endJ(k3,k)=0;endendend%====上面是用线性变换方式将Jacobi矩阵化成单位矩阵=====for k=3:2:N0-1L=(k+1)./2;e(L)=e(L)-J(k,N); %修改节点电压实部k1=k+1;f(L)=f(L)-J(k1,N); %修改节点电压虚部end%------修改节点电压-----------for k=3:N0DET=abs(J(k,N));if DET>=pr %电压偏差量是否满足要求IT2=IT2+1; %不满足要求的节点数加1endendICT2(a)=IT2;ICT1=ICT1+1;end%用高斯消去法解"w=-J*V"disp('迭代次数:');disp(ICT1);disp('没有达到精度要求的个数:');disp(ICT2);for k=1:nV(k)=sqrt(e(k)^2+f(k)^2);sida(k)=atan(f(k)./e(k))*180./pi;E(k)=e(k)+f(k)*j;end%=============== 计算各输出量 ===========================disp('各节点的实际电压标幺值E为(节点号从小到大排列):');disp(E);EE=E*UB;disp(EE);disp('-----------------------------------------------------'); disp('各节点的电压大小V为(节点号从小到大排列):');disp(V);VV=V*UB;disp(VV);disp('-----------------------------------------------------'); disp('各节点的电压相角sida为(节点号从小到大排列):');disp(sida);for p=1:nC(p)=0;for q=1:nC(p)=C(p)+conj(Y(p,q))*conj(E(q));endS(p)=E(p)*C(p);enddisp('各节点的功率S为(节点号从小到大排列):');disp(S);disp('~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~');SS=S*SB;disp(SS);disp('-----------------------------------------------------'); disp('各条支路的首端功率Si为(顺序同您输入B1时一致):');for i=1:nlp=B1(i,1);q=B1(i,2);if B1(i,6)==0Si(p,q)=E(p)*(conj(E(p))*conj(B1(i,4)./2)+(conj(E(p)*B1(i,5))-con j(E(q)))*conj(1./(B1(i,3)*B1(i,5))));Siz(i)=Si(p,q);elseSi(p,q)=E(p)*(conj(E(p))*conj(B1(i,4)./2)+(conj(E(p)./B1(i,5))-co nj(E(q)))*conj(1./(B1(i,3)*B1(i,5))));Siz(i)=Si(p,q);enddisp(Si(p,q));SSi(p,q)=Si(p,q)*SB;ZF=['S(',num2str(p),',',num2str(q),')=',num2str(SSi(p,q))];disp(ZF);%disp(SSi(p,q));disp('-----------------------------------------------------'); enddisp('各条支路的末端功率Sj为(顺序同您输入B1时一致):');for i=1:nlp=B1(i,1);q=B1(i,2);if B1(i,6)==0Sj(q,p)=E(q)*(conj(E(q))*conj(B1(i,4)./2)+(conj(E(q)./B1(i,5))-co nj(E(p)))*conj(1./(B1(i,3)*B1(i,5))));Sjy(i)=Sj(q,p);elseSj(q,p)=E(q)*(conj(E(q))*conj(B1(i,4)./2)+(conj(E(q)*B1(i,5))-con j(E(p)))*conj(1./(B1(i,3)*B1(i,5))));Sjy(i)=Sj(q,p);enddisp(Sj(q,p));SSj(q,p)=Sj(q,p)*SB;ZF=['S(',num2str(q),',',num2str(p),')=',num2str(SSj(q,p))];disp(ZF);%disp(SSj(q,p));disp('-----------------------------------------------------'); enddisp('各条支路的功率损耗DS为(顺序同您输入B1时一致):');for i=1:nlp=B1(i,1);q=B1(i,2);DS(i)=Si(p,q)+Sj(q,p);disp(DS(i));DDS(i)=DS(i)*SB;ZF=['DS(',num2str(p),',',num2str(q),')=',num2str(DDS(i))]; disp(ZF);%disp(DDS(i));disp('-----------------------------------------------------'); endfigure(1);subplot(2,2,1);plot(V);xlabel('节点号');ylabel('电压标幺值');grid on;subplot(2,2,2);plot(sida);xlabel('节点号');ylabel('电压角度');grid on;subplot(2,2,3);bar(real(S));ylabel('节点注入有功');grid on;subplot(2,2,4);bar(Siz);ylabel('支路首端无功');grid on;。

利用M a t l a b进行电力系统潮流计算的研究

利用M a t l a b进行电力系统潮流计算的研究

利用M a t l a b进行电力系统潮流计算的研究摘要:随着现代化技术水平的稳步推进,计算机语言的技术运用也经历了逐步的成熟与发展,m a t l a b技术作为一种新颖的计算机技术软件在电力系统的潮流计算中得以广泛的运用。

本案通过p-q分解方法作为案例,详细阐述了b a s i c与f o r t r a n 和m a t l a b 等系列高级的语言潮流计算方法中存在的异同之处及运用的优缺点。

并针对潮流计算的结构模型特点,进行了基于m a t l a b的潮流算法提出。

关键词:电力系统;m a t l a b;潮流算法;分析研究abstract: with the steady advance of modern technology, the computer language technology has undergone gradual maturation and development, m a t l a b as an innovative computer technology software for load flow calculation of power system to be widely used. by p-q decomposition method in this case as a case, details b a s i c f o r t r a n a t l a b and m series high power flow calculation methods of language similarities and used in their strengths and weaknesses. characteristics and structure for load flow calculation model, power flow algorithm based on m a t l a b raised.keywords: power systems; m a t l a b; power flow algorithm; analysis and research[中图分类号] tm7 [文献标识码]a[文章编号]在电力系统传统的规划和运行研究中,潮流计算作为基本的研究方法,发挥着重要的现实意义,但是伴随现代的电力的发展,其系统的需求也越来越高,多原件和强非线性特点也愈发突出,面对其极端的复杂程度与计算量的大幅度增加,传统的处理软件在做潮流计算中,速度明显达不到大电网的模拟与仿真要求所需。

Matlab实现潮流计算程序

Matlab实现潮流计算程序

程序代码如下:111111.%读入数据clcclearfilename='123.txt';a=textread(filename)n=a(1,1);pinghengjd=a(1,2);phjddianya=a(1,3);jingdu=a(1,4);b=zeros(1,9);j1=0;[m1,n1]=size(a);for i1=1:m1if a(i1,1)==0j1=j1+1;b(j1)=i1;endendb;%矩阵分块a1=a(b(1)+1:b(2)-b(1)+1,1:n1);a2=a(b(2)+1:b(3)-1,1:n1);a3=a(b(3)+1:b(4)-1,1:n1);a4=a(b(4)+1:b(5)-1,1:n1);a5=a(b(5)+1:b(6)-1,1:n1);%设置初值vcz=1;dcz=0;kmax=20;k1=0;%求节点导纳矩阵a11=zeros(4,6);for i0=1:3for j0=1:6a11(i0,j0)=a1(i0,j0);a11(4,j0)=a2(1,j0);endenda11;linei=a11(1:4,2);linej=a11(1:4,3);liner=a11(1:4,4);linex=a11(1:4,5);lineb=a11(1:4,6);branchi=0;branchj=0;branchb=0;G=zeros(4,4);B=zeros(4,4);for k=1:4i2=linei(k,1);j2=linej(k,1);r=liner(k,1);x=linex(k,1);b=0;GIJ=r/(r*r+x*x);BIJ=-x/(r*r+x*x);if k>=4 & lineb(k)~=0k0=lineb(k);G(i2,j2)=-GIJ/k0;G(j2,i2)=G(i2,j2);B(i2,j2)=-BIJ/k0;B(j2,i2)=B(i2,j2);G(i2,i2)=G(i2,i2)+GIJ/k0/k0; B(i2,i2)=B(i2,i2)+BIJ/k0/k0;elseG(j2,i2)=-GIJ;G(i2,j2)=G(j2,i2);B(j2,i2)=-BIJ;B(i2,j2)=B(j2,i2);G(i2,i2)=G(i2,i2)+GIJ;b=lineb(k);B(i2,i2)=B(i2,i2)+BIJ+b;endG(j2,j2)=G(j2,j2)+GIJ;B(j2,j2)=B(j2,j2)+BIJ+b;endG;B;B=B.*i;Yf=G+BY=abs(Yf);alf=angle(Yf);%赋Jacobian矩阵参数P=zeros(n,1);Q=zeros(n,1);Pd=zeros(1,n);Qd=zeros(1,n);dP=zeros(1,n);dQ=zeros(1,n);PG=a4(:,3);PD=a4(:,5);QG=a4(:,4);QD=a4(:,6);i8=a4(:,2);for j8=1:length(i8)P(i8(j8))=PG(i8(j8))-PD(i8(j8));Q(i8(j8))=QG(i8(j8))-QD(i8(j8));enddelt=zeros(n,1);V=ones(n,1);V(3)=1.10;V(4)=1.05;ddelt=zeros(n,1);dV=zeros(n,1);A=zeros(2*n,2*n);B=zeros(2*n,1);Jacobian=Jaco(V,delt,n,Y,alf)%求取矩阵功率for j5=1:kmaxdisp(['第' int2str(j5) '次计算结果'])if k>=kmaxbreakendfor i10=1:4Pd(i10)=0;Qd(i10)=0;for j10=1:nPd(i10)=Pd(i10)+V(i10)*Y(i10,j10)*V(j10)*cos(d elt(i10)-delt(j10)-alf(i10,j10));Qd(i10)=Qd(i10)+V(i10)*Y(i10,j10)*V(j10)*sin(d elt(i10)-delt(j10)-alf(i10,j10));endendfor i4=1:3dP(i4)=P(i4)-Pd(i4);endfor j4=1:2dQ(j4)=Q(j4)-Qd(j4);endA=Jaco(V,delt,n,Y,alf)for i14=1:nB(i14*2-1)=-dP(i14);B(i14*2)=-dQ(i14);endif max(abs(B))>jingduX=A\B;for i16=1:nddelt(i16)=X(2*i16-1);dV(i16)=X(2*i16)*V(i16);endV=V+dVdelt=delt+ddeltelsebreakenddisp('----------------')end%流氓算法% for ii=1:2% V(ii)=V(ii)+dV(ii);% end% V222222.function A=Jaco(V,delt,n,Y,alf)%计算Jacobian矩阵for i7=1:nHd1(i7)=0;Jd1(i7)=0;for j7=1:nHd1(i7)=Hd1(i7)+V(i7)*Y(i7,j7)*V(j7)*sin(delt(i7)-delt(j7)-alf(i7,j7));Jd1(i7)=Jd1(i7)+V(i7)*Y(i7,j7)*V(j7)*cos(delt(i7)-delt(j7)-alf(i7,j7));endendfor i6=1:nfor j6=1:nif i6~=j6H(i6,j6)=-V(i6)*Y(i6,j6)*V(j6)*sin(delt(i6)-delt(j6)-alf(i6,j6));N(i6,j6)=-V(i6)*Y(i6,j6)*V(j6)*cos(delt(i6)-delt(j6)-alf(i6,j6));J(i6,j6)=-N(i6,j6);L(i6,j6)=H(i6,j6);elseH(i6,i6)=Hd1(i6)-V(i6)*Y(i6,i6)*V(i6)*sin(delt(i6)-delt(j6)-alf(i6,j6));J(i6,j6)=-Jd1(i6)+V(i6)*Y(i6,j6)*V(j6)*cos(delt(i6)-delt(j6)-alf(i6,j6));N(i6,j6)=-Jd1(i6)-V(i6)*Y(i6,i6)*V(i6)*cos(alf(i6,i6));L(i6,i6)=-Hd1(i6)+V(i6)*Y(i6,i6)*V(i6)*sin(alf(i6,i6));endendend%修正Jacobian矩阵for j9=3for i9=1:nN(i9,j9)=0;L(i9,j9)=0;J(j9,i9)=0;L(j9,i9)=0;endendL(j9,j9)=1;for j9=4for i9=1:nH(i9,j9)=0;N(i9,j9)=0;J(i9,j9)=0;L(i9,j9)=0;H(j9,i9)=0;N(j9,i9)=0;J(j9,i9)=0;L(j9,i9)=0;endendH(j9,j9)=1;L(j9,j9)=1;%Jaco=[H N;J L];%Jaco=zeros(2*n,2*n);for i11=1:nfor j11=1:nJaco(2*i11-1,2*j11-1)=H(i11,j11); Jaco(2*i11-1,2*j11)=N(i11,j11); Jaco(2*i11,2*j11-1)=J(i11,j11);Jaco(2*i11,2*j11)=L(i11,j11);endendA=Jaco;33333.数据:4 4 1.05 0.000011 12 0.1 0.40 0.015282 1 4 0.12 0.50 0.019203 24 0.08 0.40 0.014131 1 3 0 0.3 0.909090911 1 0 0 0.30 0.182 2 0 0 0.55 0.133 3 0.5 0 0 01 3 1.10 0 0。

基于MATLAB的电力系统潮流计算_毕业设计论文

基于MATLAB的电力系统潮流计算_毕业设计论文

基于MATLAB的电⼒系统潮流计算_毕业设计论⽂基于MATLAB的电⼒系统潮流计算摘要潮流计算是电⼒系统最基本、最常⽤的计算。

根据系统给定的运⾏条件、⽹络接线及元件参数,通过潮流计算可以确定各母线的电压(幅值及相⾓),各元件中流过的功率、整个系统的功率损耗等。

潮流计算是实现电⼒系统安全经济发供电的必要⼿段和重要⼯作环节。

因此潮流计算在电⼒系统的规划设计、⽣产运⾏、调度管理及科学研究中都有着⼴泛的应⽤。

本次设计的主要⽬的就是⾯向⼀般的电⼒⽹络,形成节点导纳矩阵,确定合适的算法,编写通⽤的计算程序,得到计算结果。

设计中主要介绍了⽜顿拉夫逊和PQ分解两种算法,PQ分解法虽然在结构上⽐⽜顿法更加简化,但是针对⼀般⽹络现代计算机在存储空间及计算速度上已经⼗分强⼤,鉴于对⽜顿法的熟悉与其算法的直观性,本次设计在编程时采⽤了⽜顿拉夫逊法的直⾓坐标形式。

解⽅程的过程利⽤Matlab的强⼤计算功能,编写M语⾔,合理设置变量,实现通⽤计算功能。

关键词: 电⼒系统,潮流计算,⽜顿—拉夫逊法,Matlab。

AbstractPower system load flow calculation is the most basic and commonly used calculations. Given according to the system operating conditions, the network connection and device parameters can be determined by power flow calculation of the bus voltage (magnitude and phase angle), the power flowing through the components, overall system power consumption and so on. Flow calculation is to achieve economic development of power system supply the necessary means and important part of the work. Therefore flow calculation in power system planning and design, production and operation, scheduling management, and scientific research have a wide range of applications.The main purpose of this design is for the general electricity network, the formation of the node admittance matrix, determine the appropriate method, the preparation of general-purpose computer program to get results. Introduces the design and the PQ decomposition Newton Raphson two algorithms, PQ decomposition although the structure is more streamlined than the Newton method, but for the general network of modern computer storage space and computing speed has been very strong, in view of the Newton Familiar with its intuitive algorithm, this design in programming using Newton Raphson polar form. The process of solving equations using matlab powerful computing capabilities, the preparation of M language, a reasonable set variables, to achieve general-purpose computing functions.Keywords: power system, power flow calculation, Newton - Raphson method, Matlab.⽬录摘要 (I)Abstract ................................................................................................................................................ II ⽬录.................................................................................................................................................... I II 1 引⾔ .. (1)1.1 潮流计算⽬的 (1)1.2 潮流计算意义 (1)1.3 潮流计算发展史 (1)1.4基于MATLAB 的电⼒系统潮流计算发展前景 (2)2简单电⼒系统潮流计算 (4)2.1简单辐射⽹络的潮流计算 (4)2.1.1简单⽀路的潮流分布和电压降落 (4)2.1.2 辐射型⽹络的⼿⼯潮流计算⽅法 (6)2.2 简单环⽹的潮流计算 (7)2.2.1两端电压相等 (7)2.2.2两端电压不相等 (8)3 复杂电⼒系统潮流计算的计算机算法 (10)3.1电⼒⽹络⽅程及等值电路 (10)3.2节点导纳矩阵形成及修改 (11)3.3节点的分类 (14)3.3.1 PQ节点 (14)3.3.2 PV节点 (14)3.3.3 平衡节点 (14)3.4潮流计算的约束条件 (15)3.5⽜顿-拉夫逊法(直⾓坐标) (15)3.5.1⽜顿-拉夫逊法的推导过程 (15)3.5.2潮流计算时的修正⽅程(直⾓坐标) (17) 3.5.3雅可⽐矩阵的特点: (19)3.5.4⽜顿-拉夫逊法计算步骤 (19)3.6 P-Q分解法潮流计算 (20)3.6.1 P-Q分解法潮流计算概述 (20)3.6.2 P-Q分解法的潮流计算步骤 (20)3.6.3 P-Q分解法的特点 (21)4 Matlab概述 (22)4.1Matlab简介 (22)4.2 Matlab中的变量 (22)4.3 Matlab编程 (23)4.3.1矩阵的输⼊ (23)4.3.2矩阵的运算 (24)4.3.3 MatLab的控制流 (24)5 ⽜顿法潮流计算程序设计及实例 (26)5.1⼿算 (26)5.2计算机算法的数据输⼊ (29)5.3潮流计算程序 (30)5.3 计算结果分析 (36)结论 (37)参考⽂献 (38)附录A 程序流程图 (39)附录B Matlab仿真 (40)致谢 (1)1 引⾔1.1 潮流计算⽬的电⼒系统潮流计算是研究电⼒系统稳态运⾏情况的⼀种基本电⽓计算。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

毕业设计(论文)MATLAB下的潮流计算实现-稀疏技术毕业设计(论文)原创性声明和使用授权说明原创性声明本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。

尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得及其它教育机构的学位或学历而使用过的材料。

对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。

作者签名:日期:指导教师签名:日期:使用授权说明本人完全了解大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。

作者签名:日期:摘要电力系统潮流计算是研究电力系统稳态运行情况的一种计算,它根据给定的运行条件及系统接线情况确定整个电力系统各部分的运行状态:各母线的电压,各元件中流过的功率,系统的功率损耗等等。

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

因此潮流计算是研究电力系统的一种很重要和很基础的计算。

由于电力系统结构及参数的一些特点,并且随着电力系统不断扩大,潮流问题的方程式阶数越来越高,对这样的方程式并不是任何数学方法都能保证给出正确答案的。

这种情况成为促使电力系统计算人员不断寻求新的更可靠方法的重要因素。

本文旨在于研究潮流计算的牛顿—拉夫逊法的基本原理,在Matlab环境中实现牛顿—拉夫逊法潮流计算的数学模型,程序流程以及编制相应程序,并在程序中融合了节点优化编号和稀疏技术,以提高计算效率。

最后用IEEE-3O节点标准测试系统验证所编程序。

关键词:潮流计算Newtom-Raphson法节点优化稀疏技术Matlab ABSTRACTPower flow calculation is fundanmental of analysis. Network reconfiguration,fault management,state estimator etc also need the data of electrial system power flow.There is important significance to develop power flow calculation in allusion to traits of distribution network.This paper introduces the principle of Newtom-Raphson algorithm, which is developed for calculation of power flow calculation ,where zero sequence network is open.With this algorithm,the three-phase load is resolved into positive/negative sequence power and coupling power,thus,decoupling three phase power flow into sequencet component power flow.The power flow can be obtained by just finding the positive sequence power flow and then finding the negative sequent component from the coupling pared with the existing methods,the jacobian matrix with the proposed algorithm is of much lower order,thus substantially reducing the computation burden.The proposed algorithm,together with a reference algorithm,has been simulated on an actual IEEE-30 system using statistic load date.And then it willanalyze on Matlab to test it accuracy.KEY WORDS: Power System Newtom-Raphson Flow Simulation Matlab目录摘要 (1)ABSTRACT (3)第一章绪论 (5)1 .1背景 (5)1.2 潮流计算的计算要求和分析要点 (5)1.3 潮流计算的发展 (6)1.4 本文的主要工作 (7)第二章潮流计算的数学模型 (8)2.1节点导纳矩阵的导出 (8)2.2潮流计算的定解条件 (10)2.3 潮流计算的约束条件 (11)第三章牛顿-拉夫逊法 (12)3.1 功率方程 (12)3.2修正方程式 (12)3.2.1 牛拉迭代法 (12)3.2.2潮流计算的修正方程 (13)3.3 绘制流程图 (15)第四章稀疏技术 (18)4.1稀疏矩阵的存贮 (18)4.2高斯消去法 (18)4.3因子表和三角分解 (20)4.4节点编号优化 (23)第五章算例分析 (26)5.1 MATLAB软件简介 (26)5.1.1 MA TLAB 的发展 (26)5.1.2 MA TLAB的主要功能 (26)5.1.3 MATLAB在电力系统中的应用 (27)5.2 IEEE-30系统算例分析 (28)5.2.1 IEEE-30节点系统的数据 (28)参考文献 (32)致谢 (34)附录A Matlab中的牛顿-拉夫逊法编程 (35)附录B IEEE-30节点详图 (44)第一章绪论1 .1背景电力系统潮流计算是电力系统分析中的一种最基本的计算,是对复杂电力系统正常和故障条件下稳态运行状态的计算。

潮流计算的目标是求取电力系统在给定运行状态的计算。

即节点电压和功率分布,用以检查系统各元件是否过负荷.各点电压是否满足要求,功率的分布和分配是否合理以及功率损耗等。

对现有电力系统的运行和扩建,对新的电力系统进行规划设计以及对电力系统进行静态和暂态稳定分析都是以潮流计算为基础。

潮流计算结果可用如电力系统稳态研究,安全估计或最优潮流等对潮流计算的模型和方法有直接影响。

在运行方式管理中,潮流是确定电网运行方式的基本出发点;在规划领域,需要进行潮流分析验证规划方案的合理性;在实时运行环境,调度员潮流提供了电完个在预想操作情况下电网的潮流分布以校验运行可靠性。

在电力系统调度运行的多个领域都涉及到电网潮流计算。

潮流是确定电力网络运行状态的基本因素,潮流问题是研究电力系统稳态问题的基础和前提。

1.2 潮流计算的计算要求和分析要点利用电子数字计算机进行电力系统潮流计算从50年代中期就已经开始。

在这20年内,潮流计算曾采用了各种不同的方法,这些方法的发展主要围绕着对潮流计算的一些基本要求进行的。

对潮流计算的要求可以归纳为下面几点:(1)计算方法的可靠性或收敛性;(2)对计算机内存量的要求;(3)计算速度;(4)计算的方便性和灵活性。

对潮流计算的分析主要根据计算的目的而定。

在电力系统运行方式中一般含高峰负荷和低谷负荷时运行方式下,在具有水力发电厂的电力系统中根据水电厂水文特点又有丰水期、平水期、枯水期的运行方式,此外,也需要研究事故运行方式和各种特殊运行方式。

在潮流计算中首先应效验网络枢纽点的电压水平及网络各节点的电压是否满足要求,其次效验各发电厂发电机的有功及无功出力是否符合技术要求,另外根据计算的要求对各线路、变压器的潮流进行分析。

1.3 潮流计算的发展电力系统潮流计算问题在数学上是一组多元非线性方程式求解问题,其解法都离不开迭代。

因此,对潮流计算方法,首先要求它能可靠地收敛,并给出正确答案。

由于电力系统结构及参数的一些特点,并且随着电力系统不断扩大,潮流问题的方程式阶数越来越高,对这样的方程式并不是任何数学方法都能保证给出正确答案的。

这种情况成为促使电力系统计算人员不断寻求新的更可靠方法的重要因素。

在用数字计算机解电力系统潮流问题的开始阶段,普遍采取以节点导纳矩阵为基础的逐次代入法。

这个方法的原理比较简单,要求的数字计算机内存量比较下,适应50年代电子计算机制造水平和当时电力系统理论水平。

但它的收敛性较差,当系统规模变大时,迭代次数急剧上升,在计算中往往出现迭代不收敛的情况。

这就迫使电力系统计算人员转向以阻抗矩阵为基础的逐次代入法。

60年代初,数字计算机已发展到第二代,计算机的内存和速度发生了很大的飞跃,从而为阻抗法的采用创造了条件。

阻抗法要求数字计算机储存表征系统接线和参数的阻抗矩阵,这就需要较大的内存量。

而且阻抗法每迭代一次都要求顺次取阻抗矩阵中的每一个元素进行运算,因此,每次迭代的运算量很大。

这两种情况是过去电子管数字计算机无法适应的。

阻抗法改善了系统潮流计算问题的收敛性,解决了导纳法无法求解的一些系统的潮流计算,在60年代获得了广泛的应用,曾为我国电力系统设计.运行和研究作出了很大的贡献。

目前,我国电力工业中仍有一些单位采用阻抗法计算潮流。

阻抗法的主要缺点是占用计算机内存大,每次迭代的计算量大。

当系统不断扩大时,这些缺点就更加突出。

一个内存16K的计算机在采用阻抗法时只能计算100以下的系统,32K内存的计算机也只能计算150个节点以下的系统。

这样,我国很多电力系统为了采用阻抗法计算潮流就不得不予先对系统进行相当的简化工作。

为了克服阻抗法在内存和速度方面的缺点,60年代中期发展了以阻抗矩阵为基础的分块阻抗法。

这个方法把一个大系统分割为几个小的地区系统,在计算机内只需要存储各个地区系统的阻抗矩阵及它们之间联络线的阻抗,这样不仅大幅度地节省了内存容量,同时也提高了计算速度。

克服阻抗法缺点的另一途径是采用牛顿-拉夫逊法。

这是数学中解决非线性方程式的典型方法,有较好的收敛性。

在解决电力系统潮流计算问题时,是以导纳矩阵为基础的,因此,只要我们能在迭代过程中尽可能保持方程式系数矩阵的稀疏性,就可以大大提高牛顿法潮流程序的效率。

自从60年代中期,在牛顿法中利用了最佳顺序消去法以后,牛顿法在收敛性.内存要求.速度方面都超过了阻抗法,成为60年代末期以后广泛采用的优秀方法。

相关文档
最新文档