(完整word版)潮流计算方法
- 格式:doc
- 大小:66.50 KB
- 文档页数:15
一、PQ 分解法的原理P —Q 分解法是牛顿-拉夫逊法潮流计算的一种简化方法。
P-Q 分解法利用了电力系统的一些特有的运行特性,对牛顿-拉夫逊法做了简化,以改进和提高计算速度。
的基本思想是根据电力系统实际运行特点:通常网络上的电抗远大于电阻,则系统母线电压幅值的微小变化对用功功率的改变影响很小。
同样,母线电压相角的的改变对无功功率的影响较小.因此,节点功率方程在用极坐标形式表示时。
它的修正方程式可简化为:00P H Q L U U θ∆∆⎡⎤⎡⎤⎡⎤=⎢⎥⎢⎥⎢⎥∆∆⎣⎦⎣⎦⎣⎦将P 、Q 分开来迭代计算,因此大大地减少了计算工作量.但是H 、L 在迭代过程中仍将不断变化,而且又都是不对称矩阵。
对牛顿法的进一步简化。
为把上式中的系数矩阵简化成迭代过程中不变的对称矩阵。
在一般情况下线路两端的电压相角ij θ是不大的,因此可以认为:cos 1sin ij ij ijijG B θθ≈2ii ii Q U B考虑到上述关系,可以得到:ij i ij j ij i ij jH U B U L U B U ==节点的功率增量为:11(cos sin )(sin cos )ni is i j ij ij ij ij j ni is i j ij ij ij ij j P P U U G B Q Q U U G B θθθθ==∆=-+∆=--∑∑P —Q 分解法的特点:以一个n-1阶和一个n —m —1阶线性方程组代替原有的2n —m —1阶线性方程组;修正方程的系数矩阵B'和B”为对称常数矩阵,且在迭代过程中保持不变;P —Q 分解法具有线性收敛特性,与牛顿—拉夫逊法相比,当收敛到同样的精度时需要的迭代次数较多。
二、程序说明1.数据说明Branch1。
txt:支路参数矩阵第1列为支路的首端编号;第2列为支路的末端编号(首端编号小于末端编号);第3列为之路的阻抗;第4为支路的对地容抗;第5列为支路的变比;第6列为折算到那一侧的标志Branch2。
由于本人参加我们电气学院的电气小课堂,主讲的是计算机算法计算潮流这章,所以潜心玩了一个星期,下面整理给大家分享下。
本人一个星期以来的汗水,弄清楚了计算机算法计算潮流的基础,如果有什么不懂的可以发信息到邮箱:zenghao616@接下来开始弄潮流的优化问题,吼吼!电力系统的潮流计算的计算机算法:以MATLAB为环境这里理论不做过多介绍,推荐一本专门讲解电力系统分析的计算机算法的书籍---------《电力系统分析的计算机算法》—邱晓燕、刘天琪编著。
这里以这本书上的例题【2-1】说明计算机算法计算的过程,分别是牛顿拉弗逊算法的直角坐标和极坐标算法、P-Q分解算法。
主要是简单的网络的潮流计算,其实简单网络计算和大型网络计算并无本质区别,代码里面只需要修改循环迭代的N即可,这里旨在弄清计算机算法计算潮流的本质。
代码均有详细的注释.其中简单的高斯赛德尔迭代法是以我们的电稳教材为例子讲,其实都差不多,只要把导纳矩阵Y给你,节点的编号和分类给你,就可以进行计算了,不必要找到原始的电气接线图。
理论不多说,直接上代码:简单的高斯赛德尔迭代法:这里我们只是迭代算出各个节点的电压值,支路功率并没有计算。
S_ij=P_ij+Q_ij=V_i(V_i* - V_j*) * y_ij*可以计算出各个线路的功率在显示最终电压幅角的时候注意在MATLAB里面默认的是弧度的形式,需要转化成角度显示。
clear;clc;%电稳书Page 102 例题3-5%计算网络的潮流分布 --- 高斯-赛德尔算法%其中节点1是平衡节点%节点2、3是PV节点,其余是PQ节点% 如果节点有对地导纳支路%需将对地导纳支路算到自导纳里面%------------------------------------------------%%输入原始数据,每条支路的导纳数值,包括自导和互导纳;y=zeros(5,5);y(1,2)=1/(0.0194+0.0592*1i);y(1,5)=1/(0.054+0.223*1i);y(2,3)=1/(0.04699+0.198*1i);y(2,4)=1/(0.0581+0.1763*1i);%由于电路网络的互易性,导纳矩阵为对称的矩阵for i=1:1:5for j=1:1:5y(j,i)=y(i,j);endend%节点导纳矩阵的形成Y=zeros(5,5);%求互导纳for i=1:1:5for j=1:1:5if i~=jY(i,j)=-y(i,j);endendend%求自导纳for i=1:1:5%这句话是说将y矩阵的第i行的所有元素相加,得到自导纳的值 Y(i,i)=sum(y(i,:));end%上面求得的自导纳不包含该节点的对地导纳数值,需要加上Y(2,2)=Y(2,2)+0.067*1i;Y(3,3)=Y(3,3)+0.022*1i;Y(4,4)=Y(4,4)+0.0187*1i;Y(5,5)=Y(5,5)+0.0246*1i;%导纳矩阵的实部和虚部G = real(Y);B = imag(Y);Qc2=0;Qc3=0;%原始节点功率%这里电源功率为正,负荷功率为负S(1)=0;S(2)=-0.217-0.121*1i+Qc2*1i;S(3)=-0.749-0.19*1i+Qc3*1i;S(4)=-0.658+0.039*1i;S(5)=-0.076-0.016*1i;%节点功率的P QP = real(S);Q = imag(S);%下面是两个PV节点的无功初始值Q(2) = 0;Q(3) = 0;U=ones(5,1); %1列5行的‘1’矩阵%节点电压初始值U(1)=1.06;U(2)=1.045;U(3)=1.01;U_reg=U;Sum_YU0=0;%中间变量Sum_YU1=0;%中间变量for cont=1:1:6 %这里的cont是迭代次数for i=2:1:5for j=1:1:iif i~=jSum_YU0 = Sum_YU0 + Y(i,j)*U_reg(j);endendfor j=i+1:1:5Sum_YU1 = Sum_YU1 + Y(i,j)*U(j);endU(i)=( (P(i)-Q(i)*1i ) / conj(U(i)) - Sum_YU0 - Sum_YU1 ) / Y(i,i); U_reg(i)=U(i);%PV节点计算%下面是把求出的U2、U3只保留其相位,幅值不变if i==2angle_U2 = angle(U(2));U(2)=1.045*cos(angle_U2)+1.045*sin(angle_U2)*1i;Q(2)=imag( U(2)*( conj(Sum_YU0) + conj(Sum_YU1) + conj(Y(2,2)*U(2)) ) );endif i==3angle_U3 = angle(U(3));U(3)=1.01*cos(angle_U3)+1.01*sin(angle_U3)*1i;Q(3)=imag( U(3)*( conj(Sum_YU0) + conj(Sum_YU1) + conj(Y(3,3)*U(3)) ) );end% 下面做越界检查%if Q(4)>Q_Max% Q(4) = Q_Max;%end%if Q(4)<Q_Min% Q(4) = Q_Min;%end%下面可以做PV节点收敛判断Sum_YU0 = 0;Sum_YU1 = 0;endend%节点注入无功,流入为正,流出为负Qc2=Q(2)+0.121-1.045^2 * 0.067;Qc3=Q(3)+0.19-1.01^2 * 0.022;%电压幅值和相角angle_U=angle(U)*180/pi;U=abs(U);S_Line=zeros(5,5);%计算平衡节点功率S_BalanceNode=0;for j=1:1:5S_BalanceNode = S_BalanceNode + U(1) * conj(Y(1,j)*U(j));end%下面由上面算出的电压值求线路的功率%这里计算出来的线路功率的有功、无功%for i=1:1:5% for j=i:1:5% if i~=j% S_Line(i,j)=U(i)*( conj(U(i))-conj(U(j)) ) * conj(y(i,j));% end% if i==2% %S_Line(2,j)=S_Line(2,j)+U(2)*conj(0.067*1i);% end% if i==3% %S_Line(3,j)=S_Line(3,j)+U(3)*conj(0.022*1i);% end% end%end计算网络的潮流分布 ---- Newton算法(直角坐标)clear;clc;%电稳书Page 102 例题3-5%计算网络的潮流分布 ---- Newton算法(直角坐标)%其中节点1是平衡节点%节点2、3是PV节点,其余是PQ节点% 如果节点有对地导纳支路%需将对地导纳支路算到自导纳里面%------------------------------------------------%%输入原始数据,每条支路的导纳数值,包括自导和互导纳;y=zeros(5,5);y(1,2)=1/(0.0194+0.0592*1i);y(1,5)=1/(0.054+0.223*1i);y(2,3)=1/(0.04699+0.198*1i);y(2,4)=1/(0.0581+0.1763*1i);%由于电路网络的互易性,导纳矩阵为对称的矩阵for i=1:1:5for j=1:1:5y(j,i)=y(i,j);endend%节点导纳矩阵的形成Y=zeros(5,5);%求互导纳for i=1:1:5for j=1:1:5if i~=jY(i,j)=-y(i,j);endendend%求自导纳for i=1:1:5%这句话是说将y矩阵的第i行的所有元素相加,得到自导纳的值Y(i,i)=sum(y(i,:));end%上面求得的自导纳不包含该节点的对地导纳数值,需要加上Y(2,2)=Y(2,2)+0.067*1i;Y(3,3)=Y(3,3)+0.022*1i;Y(4,4)=Y(4,4)+0.0187*1i;Y(5,5)=Y(5,5)+0.0246*1i;%导纳矩阵的实部和虚部G = real(Y);B = imag(Y);%节点2、3需补偿的无功Qc2=0;Qc3=0;%原始节点功率%这里电源功率为正,负荷功率为负S(1)=0;S(2)=-0.217-0.121*1i+Qc2*1i;S(3)=-0.749-0.19*1i+Qc3*1i;S(4)=-0.658+0.039*1i;S(5)=-0.076-0.016*1i;%节点功率的P QP = real(S);Q = imag(S);%下面是两个PV节点的无功初始值Q(2) = 0;Q(3) = 0;%给点电压初始值e=[1.06,1.045,1.01,1,1];f=[0,0,0,0,0];U=e+f*1i;delta_U=zeros(1,5);delta_P=zeros(1,5);delta_Q=zeros(1,5);delta_PQV=ones(8,1);Sum_GB1=0;Sum_GB2=0;cont=0;while max(delta_PQV > 1e-6),cont=cont+1;%for cont=1:1:3%下面开始计算delta_P/delta_Q/delta_Ufor i=2:1:5for j=1:1:5Sum_GB1=Sum_GB1 + ( G(i,j)*e(j) - B(i,j)*f(j) );Sum_GB2=Sum_GB2 + ( G(i,j)*f(j) + B(i,j)*e(j) );enddelta_P(i)=P(i)-e(i)*Sum_GB1-f(i)*Sum_GB2;if i~=2 && i~=3 %不为节点2,3则计算无功delta_Q(i)=Q(i)-f(i)*Sum_GB1+e(i)*Sum_GB2;endif i==2 || i==3 %这里计算delta_U的值,始终为零delta_U(i)=U(i)^2-( e(i)^2 + f(i)^2 );endSum_GB1=0;Sum_GB2=0;end%___________________________________%%下面计算雅克比矩阵J=zeros(8,8);for ii=2:1:5i=ii-1;for j=1:1:5Sum_GB1=Sum_GB1 + ( G(ii,j)*e(j) - B(ii,j)*f(j) );Sum_GB2=Sum_GB2 + ( G(ii,j)*f(j) + B(ii,j)*e(j) );endfor jj=2:1:5j=jj-1;if ii~=2 && ii~=3 %PQ节点if ii==jjJ(2*i-1,2*i-1)=-Sum_GB1-G(ii,ii)*e(ii)-B(ii,ii)*f(ii);J(2*i-1,2*i)=-Sum_GB2+B(ii,ii)*e(ii)-G(ii,ii)*f(ii);J(2*i,2*i-1)=Sum_GB2+B(ii,ii)*e(ii)-G(ii,ii)*f(ii);J(2*i,2*i)=-Sum_GB1+G(ii,ii)*e(ii)+B(ii,ii)*f(ii);elseJ(2*i-1,2*j-1)=-(G(ii,jj)*e(ii)+B(ii,jj)*f(ii)); J(2*i-1,2*j)=B(ii,jj)*e(ii)-G(ii,jj)*f(ii);J(2*i,2*j-1)=B(ii,jj)*e(ii)-G(ii,jj)*f(ii);J(2*i,2*j)=(G(ii,jj)*e(ii)+B(ii,jj)*f(ii));endelse%PV节点if ii==jjJ(2*i-1,2*i-1)=-Sum_GB1-G(ii,ii)*e(ii)-B(ii,ii)*f(ii);J(2*i-1,2*i)=-Sum_GB2+B(ii,ii)*e(ii)-G(ii,ii)*f(ii);J(2*i,2*i-1)=-2*e(ii);J(2*i,2*i)=-2*f(ii);elseJ(2*i-1,2*j-1)=-(G(ii,jj)*e(ii)+B(ii,jj)*f(ii)); J(2*i-1,2*j)=B(ii,jj)*e(ii)-G(ii,jj)*f(ii);J(2*i,2*j-1)=0;J(2*i,2*j)=0;endendendSum_GB1=0;Sum_GB2=0;end%在求解修正方程之前建议把delta_P和delta_Q,delta_U全部放在一个矩阵delta_PQV=[delta_P(2);delta_U(2);delta_P(3);delta_U(3);delta_P(4) ;delta_Q(4);delta_P(5);delta_Q(5)];%下面求解修正方程;注意矩阵运算时候的左除和右除的区别delta_ef=-J\delta_PQV;%下面修正各个节点的电压for i=2:1:5e(i)=e(i)+delta_ef(2*(i-1)-1);f(i)=f(i)+delta_ef(2*(i-1));end%到这里第一轮迭代完成end%电压幅值和相角U=e+f*1i;angle_U=angle(U)*180/pi;%节点注入无功,流入为正,流出为负Sum_YU=0;for i=2:1:3for j=1:1:5Sum_YU = Sum_YU + Y(i,j)*U(j);endQ(i)=imag( U(i)*conj( Sum_YU ) );Sum_YU=0;endQc2=Q(2)+0.121-1.045^2 * 0.067;Qc3=Q(3)+0.19-1.01^2 * 0.022;U=abs(U);disp(['Iteration times : ' num2str(cont)]);%显示最终的迭代次数牛顿算法求解潮流 (极坐标):clear;clc;%牛顿算法求解潮流 (极坐标)%计算网络的潮流分布%其中节点5是平衡节点%节点1、2、3是PQ节点,节点4是PV节点% 如果节点有对地导纳支路%需将对地导纳支路算到自导纳里面%------------------------------------------------%%输入原始数据,每条支路的导纳数值,包括自导和互导纳;Y=[0.8381-3.7899*1i,-0.4044+1.6203*1i,0,0,-0.4337+2.2586*1i;...-0.4044+1.6203*1i,0.7769-3.3970*1i,-0.3726+1.8557*1i,0,0;...0,-0.3726+1.8557*1i,1.1428-7.0210*1i,-0.5224+4.1792*1i,-0.2739+1. 2670*1i;...0,0,-0.5224+4.1792*1i,0.5499-4.3591*1i,0;...-0.4337+2.2586*1i,0,-0.2739+1.2670*1i,0,0.7077-3.4437*1i];%导纳矩阵的实部和虚部G = real(Y);B = imag(Y);%给点电压初始值U = [1,1,1,1,1.05];angle_U=[0,0,0,0,0];%for i=1:1:5% U(i)=U_abs(i)*cos(angle_U(i))+U_abs(i)*sin(angle_U(i))*1i;%end%原始节点功率%这里电源功率为正,负荷功率为负%下面给点PQ PV节点功率值S=[-0.22-0.14*1i,-0.18-0.09*1i,-0.27-0.13*1i,0.35,0];%节点功率的P QP = real(S);Q = imag(S);%下面是PV节点的无功初始值Q(4) = 0;delta_P=zeros(1,5);delta_Q=zeros(1,5);%delta_angleU=zeros(1,4);%delta_absU=zeros(1,4);delta_PQ=ones(8,1);Sum_GB1=0;Sum_GB2=0;cont=0;%最外层循环,cont代表迭代的次数,这里可以用约束条件来代替%for cont=1:1:4while max(delta_PQ)>1e-6,%下面计算delta_P/delta_Q/delta_Ucont=cont+1;for i=1:1:4for j=1:1:5Sum_GB1=Sum_GB1 + U(j)*( G(i,j)*cos(angle_U(i)-angle_U(j)) + B(i,j)*sin(angle_U(i)-angle_U(j)) );Sum_GB2=Sum_GB2 + U(j)*( G(i,j)*sin(angle_U(i)-angle_U(j)) - B(i,j)*cos(angle_U(i)-angle_U(j)) );enddelta_P(i)=P(i)-U(i)*Sum_GB1;if i~=4 %不为节点四则计算无功delta_Q(i)=Q(i)-U(i)*Sum_GB2;endSum_GB1=0;Sum_GB2=0;end%_______________________________________________________%%下面计算雅克比矩阵J=zeros(7,7);for ii=1:1:4for jj=1:1:4if ii ~= 4 %PQ节点if ii==jjJ(2*ii-1,2*ii-1)=U(ii)^2*B(ii,ii)+Q(ii);J(2*ii-1,2*ii)=-U(ii)^2*G(ii,ii)-P(ii);J(2*ii,2*ii-1)=U(ii)^2*G(ii,ii)-P(ii);J(2*ii,2*ii)=U(ii)^2*B(ii,ii)-Q(ii);elseJ(2*ii-1,2*jj-1)=-U(ii)*U(jj)*( G(ii,jj)*sin(angle_U(ii)-angle_U( jj)) - B(ii,jj)*cos(angle_U(ii)-angle_U(jj)) );J(2*ii-1,2*jj)=-U(ii)*U(jj)*( G(ii,jj)*cos(angle_U(ii)-angle_U(jj)) + B(ii,jj)*sin(angle_U(ii)-angle_U(jj)) );J(2*ii,2*jj-1)=U(ii)*U(jj)*( G(ii,jj)*cos(angle_U(ii)-angle_U(jj)) + B(ii,jj)*sin(angle_U(ii)-angle_U(jj)) );J(2*ii,2*jj)=-U(ii)*U(jj)*( G(ii,jj)*sin(angle_U(ii)-angle_U(jj)) - B(ii,jj)*cos(angle_U(ii)-angle_U(jj)) );endelse%PV节点if ii==jjJ(2*ii-1,2*ii-1)=U(ii)^2*B(ii,ii)+Q(ii);J(2*ii-1,2*ii)=-U(ii)^2*G(ii,ii)-P(ii);elseJ(2*ii-1,2*jj-1)=-U(ii)*U(jj)*( G(ii,jj)*sin(angle_U(ii)-angle_U( jj)) - B(ii,jj)*cos(angle_U(ii)-angle_U(jj)) );J(2*ii-1,2*jj)=-U(ii)*U(jj)*( G(ii,jj)*cos(angle_U(ii)-angle_U(jj)) + B(ii,jj)*sin(angle_U(ii)-angle_U(jj)) );endendendend%在求解修正方程之前建议把delta_ef和delta_ef全部放在一个矩阵delta_PQ=[delta_P(1);delta_Q(1);delta_P(2);delta_Q(2);delta_P(3); delta_Q(3);delta_P(4)];%下面求解修正方程;注意矩阵运算时候的左除和右除的区别J=J(1:7,1:7);delta_ef=-J\delta_PQ;%下面修正各个节点的电压for i=1:1:4if i~=4U(i)=U(i)+delta_ef(2*i)*U(i);endangle_U(i)=angle_U(i)+delta_ef(2*i-1);end%到这里第一轮迭代完成end%下面显示出满足条件后的迭代的次数disp(['Iteration times : ' num2str(cont)]);%下面计算平衡节点5的功率PQfor j=1:1:5Sum_GB1=Sum_GB1 + U(j)*( G(5,j)*cos(angle_U(5)-angle_U(j)) + B(5,j)*sin(angle_U(5)-angle_U(j)) );Sum_GB2=Sum_GB2 + U(j)*( G(5,j)*sin(angle_U(5)-angle_U(j)) - B(5,j)*cos(angle_U(5)-angle_U(j)) );endP(5)=U(5)*Sum_GB1;Q(5)=U(5)*Sum_GB2;%下面将相角用角度表示for i=1:1:5angle_U(i)=angle_U(i)*180/pi;End计算计算法P-Q算法计算潮流:这个算法是由牛顿算法的极坐标形式简化而来。
(完整word版)简单环形网络的潮流计算.银川能源学院课程设计课程名称:电力系统分析设计题目:简单环形网络的潮流计算学院:电力学院专业:电气工程及其自动化班级:1301班姓名:张将(完整word版)简单环形网络的潮流计算.摘要电力系统分析是电气工程及其自动化专业的必修课.主要通过理论和仿真计算使我们掌握电力系统三大计算(电力系统短路计算、系统稳定计算、潮流计算)的基本方法,深化我们对电力系统基本理论和计算方法的理解,培养我们分析、解决问题的能力和电力系统计算软件的应用能力。
电力系统中的潮流计算是最基本和最重要的计算,主要通过理论和仿真计算使我们掌握这种基本的分析计算方法,它的任务是对给定运行条件的电力系统进行分析,如各母线上的电压(幅值及其相角)、网络中的功率及功率损耗等。
简单闭式潮流网络通常是指两端供电网络和简单环型网络.简单环型网络网络是指每一节点都只同两条支路相接的环形网络.单电源供电的简单环网中存在多个电源点是,给定功率的电源点可以当作负荷点处理,而把给定电压的电源点都一分为二,这样便得到若干个已知供电点电压的两端供电网络。
这时简单环型网络可以转化为大家熟悉的两端供电网络,灵活运用功率分点进行电流网络的潮流计算。
潮流计算是实现电力系统安全经济发供电的必要措施和重要工作环节,因此潮流计算在电力系统的规划计算,生产运行,调度管理及科学计算中都有着广泛的应用。
也就是说对于学习电气工程机器自动化专业来说,掌握潮流计算是非常重要和必要的。
摘要 (2)一、简单网络的潮流计算分析 (4)1。
1电压降落 (4)1.2 电压损耗 (5)1。
3电压偏移 (5)二、设计目的与要求 (5)2。
1设计目的 (5)2.2 设计要求 (5)三、计算步骤 (6)四丶分析结果 (10)五、小结 (11)六、心得体会 (12)七、参考文献 (13)一、简单网络的潮流计算分析潮流分析计算是电力系统分析中的一种最基本的分析计算,他的任务是对给定运行条件的电力系统行性分析,确定系统的运行状态,即求出各母线的电压、网络中的功率分布及功率的损耗。
潮流计算的基本算法及使用方法Company number:【0089WT-8898YT-W8CCB-BUUT-202108】潮流计算的基本算法及使用方法一、 潮流计算的基本算法1.牛顿-拉夫逊法1.1 概述牛顿-拉夫逊法是目前求解非线性方程最好的一种方法。
这种方法的特点就是把对非线性方程的求解过程变成反复对相应的线性方程求解的过程,通常称为逐次线性化过程,就是牛顿-拉夫逊法的核心。
牛顿-拉夫逊法的基本原理是在解的某一邻域内的某一初始点出发,沿着该点的一阶偏导数——雅可比矩阵,朝减小方程的残差的方向前进一步,在新的点上再计算残差和雅可矩阵继续前进,重复这一过程直到残差达到收敛标准,即得到了非线性方程组的解。
因为越靠近解,偏导数的方向越准,收敛速度也越快,所以牛顿法具有二阶收敛特性。
而所谓“某一邻域”是指雅可比方向均指向解的范围,否则可能走向非线性函数的其它极值点,一般来说潮流由平电压即各母线电压(相角为0,幅值为1)启动即在此邻域内。
1.2 一般概念对于非线性代数方程组即 ()0,,,21=n i x x x f ()n i ,2,1= (1-1)在待求量x 的某一个初始计算值()0x 附件,将上式展开泰勒级数并略去二阶及以上的高阶项,得到如下的线性化的方程组()()()()()0000=∆'+x x f x f (1-2)上式称之为牛顿法的修正方程式。
由此可以求得第一次迭代的修正量()()()[]()()0100x f x f x -'-=∆ (1-3)将()0x ∆和()0x 相加,得到变量的第一次改进值()1x 。
接着再从()1x 出发,重复上述计算过程。
因此从一定的初值()0x 出发,应用牛顿法求解的迭代格式为()()()()()k k k x f x x f -=∆' (1-4)()()()k k k x x x ∆+=+1 (1-5)上两式中:()x f '是函数()x f 对于变量x 的一阶偏导数矩阵,即雅可比矩阵J ;k 为迭代次数。
潮流计算的基本算法及使用方法一、二、潮流计算的基本算法1.牛顿-拉夫逊法1.1 概述牛顿-拉夫逊法是目前求解非线性方程最好的一种方法。
这种方法的特点就是把对非线性方程的求解过程变成反复对相应的线性方程求解的过程,通常称为逐次线性化过程,就是牛顿-拉夫逊法的核心。
牛顿-拉夫逊法的基本原理是在解的某一邻域内的某一初始点出发,沿着该点的一阶偏导数——雅可比矩阵,朝减小方程的残差的方向前进一步,在新的点上再计算残差和雅可矩阵继续前进,重复这一过程直到残差达到收敛标准,即得到了非线性方程组的解。
因为越靠近解,偏导数的方向越准,收敛速度也越快,所以牛顿法具有二阶收敛特性。
而所谓“某一邻域”是指雅可比方向均指向解的范围,否则可能走向非线性函数的其它极值点,一般来说潮流由平电压即各母线电压(相角为0,幅值为1)启动即在此邻域内。
1.2一般概念对于非线性代数方程组即 ()0,,,21=n i x x x f ()n i ,2,1= (1-1)在待求量x 的某一个初始计算值()0x 附件,将上式展开泰勒级数并略去二阶及以上的高阶项,得到如下的线性化的方程组()()()()()0000=∆'+x x f x f (1-2)上式称之为牛顿法的修正方程式。
由此可以求得第一次迭代的修正量()()()[]()()0100x f x f x -'-=∆ (1-3)将()0x ∆和()0x 相加,得到变量的第一次改进值()1x 。
接着再从()1x 出发,重复上述计算过程。
因此从一定的初值()0x 出发,应用牛顿法求解的迭代格式为()()()()()k k k x f x x f -=∆' (1-4)()()()k k k x x x ∆+=+1 (1-5)上两式中:()x f '是函数()x f 对于变量x 的一阶偏导数矩阵,即雅可比矩阵J ;k 为迭代次数。
由式(1-4)和式子(1-5)可见,牛顿法的核心便是反复形成求解修正方程式。
潮流计算的主要方法
最近几年,随着计算机仿真技术和复杂系统全面发展,潮流计算也受到越来越多的重视。
潮流计算是研究不同电力网络的物理特性和操作规律的一项重要工作。
针对潮流计算的主要方法,总结如下:
一、基于动力学的方法
1. 碰撞模型:根据动力学方法,计算电力系统的运行稳定性。
基于动力学的碰撞模型能够快速而精确地预测两个潮流的变化情况。
2. 时变快速收敛:在碰撞模型的基础上,为快速求解电力系统潮流,提出了时变快速收敛算法。
可以更快地获得潮流解。
二、基于牛顿迭代法的方法
1.牛顿迭代潮流计算方法:根据牛顿迭代法,采用迭代算法,求解电力系统潮流运行状态。
2. 功率流计算方法:计算机基于牛顿迭代法,快速求解节点电能的功率流公式。
可以有效的缩短潮流计算的时间,提高计算效率。
三、基于模糊聚类算法的方法
1. 基于模糊聚类的潮流计算方法:采用模糊聚类算法,对潮流计算进行多维度分析,可以得出最优的潮流结果。
2. 基于模糊划分的多目标模糊控制:根据模糊聚类理论,对潮流算法进行最佳控制,以满足电力网不同优化目标。
四、基于期望最大化的方法
1、基于粒子群优化的潮流计算方法:采用粒子群优化算法,将电力网潮流计算定义为多目标最优化问题,以期望最大化来求解潮流值,提高计算效率。
2、基于遗传算法的潮流计算方法:遗传算法利用进化过程来搜索全局最优解,使用遗传变异原则来改变候选解,以期望最大化来求解潮流计算问题。
潮流计算的基本算法及使用方法一、欧阳家百(2021.03.07)二、 潮流计算的基本算法1.牛顿-拉夫逊法1.1 概述牛顿-拉夫逊法是目前求解非线性方程最好的一种方法。
这种方法的特点就是把对非线性方程的求解过程变成反复对相应的线性方程求解的过程,通常称为逐次线性化过程,就是牛顿-拉夫逊法的核心。
牛顿-拉夫逊法的基本原理是在解的某一邻域内的某一初始点出发,沿着该点的一阶偏导数——雅可比矩阵,朝减小方程的残差的方向前进一步,在新的点上再计算残差和雅可矩阵继续前进,重复这一过程直到残差达到收敛标准,即得到了非线性方程组的解。
因为越靠近解,偏导数的方向越准,收敛速度也越快,所以牛顿法具有二阶收敛特性。
而所谓“某一邻域”是指雅可比方向均指向解的范围,否则可能走向非线性函数的其它极值点,一般来说潮流由平电压即各母线电压(相角为0,幅值为1)启动即在此邻域内。
1.2一般概念对于非线性代数方程组即 ()0,,,21=n i x x x f ()n i ,2,1= (1-1)在待求量x 的某一个初始计算值()0x 附件,将上式展开泰勒级数并略去二阶及以上的高阶项,得到如下的线性化的方程组()()()()()0000=∆'+x x f x f (1-2)上式称之为牛顿法的修正方程式。
由此可以求得第一次迭代的修正量()()()[]()()0100x f x f x -'-=∆ (1-3)将()0x ∆和()0x 相加,得到变量的第一次改进值()1x 。
接着再从()1x 出发,重复上述计算过程。
因此从一定的初值()0x 出发,应用牛顿法求解的迭代格式为()()()()()k k k x f x x f -=∆' (1-4)()()()k k k x x x ∆+=+1 (1-5)上两式中:()x f '是函数()x f 对于变量x 的一阶偏导数矩阵,即雅可比矩阵J ;k 为迭代次数。
由式(1-4)和式子(1-5)可见,牛顿法的核心便是反复形成求解修正方程式。
潮流计算的公式
近年来,人工智能在各个领域的应用日益广泛,其中有一项技术受到了众多关注,这就是潮流计算。
潮流计算是一种利用机器学习技术去解决复杂问题的方法,它可以帮助企业更好地洞察市场,根据市场潮流更好地定位和涵盖用户,改善用户体验,提高企业竞争力,实现可持续发展。
其核心概念主要集中在“潮流”上,它是一种从大量数据中挖掘出独特的模式,以更好地理解当前的行为模式和趋势的数据挖掘技术,它可以帮助企业分析历史趋势、市场规律以及趋势变化,以便更好地把握未来趋势。
潮流计算的基本公式为中心理念,也是潮流计算实施思路的基础,其原理分以下几步:
①首先,从主题中提取可用的数据,并利用一定的算法进行分类;
②其次,采用相应的数据挖掘技术,从中挖掘出特征,有助于理解模型的内容;
③第三,构建具有有效潮流计算的模型,并加以测试;
④最后,对潮流计算的有效性进行评估,提取出有效的潮流计算公式。
以上就是潮流计算的基本方法。
通过潮流计算技术可以看到更多有用信息,从而解决复杂的挑战,帮助企业发现有价值的信息,发掘潮流变化趋势,有助于企业提高竞争力。
同时,也可以帮助企业更好地洞察用户行为,为用户提供定制化的服务,改善用户体验,从而促
进可持续发展。
潮流计算的发展趋势也越来越明显,近年来,潮流计算的应用越来越广泛,其中包括市场分析、品牌经营和客户关系管理等等。
随着人工智能和机器学习技术的发展,潮流计算也将有更多的发展,它可以帮助企业更好地洞察市场,提高企业的竞争力。
总之,潮流计算公式是一种有效的技术,能够有效地发现和挖掘各种类型的数据,从而有助于企业在市场中发掘价值,提高竞争力,实现可持续发展。
潮流计算的三种方法
以下是 8 条关于“潮流计算的三种方法”的内容:
1. 潮流计算的第一种方法呀,就像是在茫茫人海中找到你的那个专属伙伴一样重要!比如说我们在规划城市电网的时候,通过这种方法能精准地掌握电力潮流的走向呢。
2. 第二种方法呢,可以类比成搭积木,一块一块地稳稳搭建起来,才能构建出稳固的潮流计算模型呀!就像在复杂的电路系统中,这种方法能让一切都清晰明了起来,厉害吧?
3. 嘿,第三种方法可是个厉害的角色哦!它就像一位超级侦探,能够把潮流中的各种细节都侦查得一清二楚!比如在分析大型工厂的能源分配时,这方法可立下了大功哟!
4. 哎呀呀,第一种方法真的很关键呢!想想看,如果没有它,不就像在黑暗中摸索一样迷茫吗?我们在研究交通流量的时候不也得靠它呀!
5. 第二种方法简直就是神来之笔呀!没有它,怎么能像指挥家一样精准地控制潮流的节奏呢?比如在设计智能电网时,它的作用可大了去啦!
6. 哇塞,第三种方法那可是不能小瞧的呀!这不就是像指南针一样给我们指引方向嘛!在优化能源布局时没有它可不行呢!
7. 瞧瞧这第一种方法,多厉害呀!难道不是相当于为潮流计算打开了一扇明亮的窗吗?在解决能源传输问题时它可太重要啦!
8. 第二种方法绝对是不可或缺的呀!就好像是为潮流计算这艘大船扬起了风帆一样!在构建高效能源系统时,它就是那关键的一环呐!
我的观点结论:这三种潮流计算方法都各有其独特之处和重要性,在不同的领域和情境中都发挥着极为关键的作用呢!。
电力系统潮流分析—基于牛拉法和保留非线性的随机潮流姓名:***学号:***1 潮流算法简介1.1 常规潮流计算常规的潮流计算是在确定的状态下.即:通过已知运行条件(比如节点功率或网络结构等)得到系统的运行状态(比如所有节点的电压值与相角、所有支路上的功率分布和损耗等)。
常规潮流算法中的一种普遍采用的方法是牛顿-拉夫逊法.当初始值和方程的精确解足够接近时,该方法可以在很短时间内收敛.下面简要介绍该方法。
1.1。
1牛顿拉夫逊方法原理对于非线性代数方程组式(1-1),在待求量x 初次的估计值(0)x 附近,用泰勒级数(忽略二阶和以上的高阶项)表示它,可获得如式(1-2)的线性化变换后的方程组,该方程组被称为修正方程组。
'()f x 是()f x 对于x 的一阶偏导数矩阵,这个矩阵便是重要的雅可比矩阵J 。
12(,,,)01,2,,i n f x x x i n ==(1-1)(0)'(0)(0)()()0f x f x x +∆=(1—2)由修正方程式可求出经过第一次迭代之后的修正量(0)x ∆,并用修正量(0)x ∆与估计值(0)x 之和,表示修正后的估计值(1)x ,表示如下(1—4).(0)'(0)1(0)[()]()x f x f x -∆=-(1—3)(1)(0)(0)x x x =+∆(1-4)重复上述步骤.第k 次的迭代公式为: '()()()()()k k k f x x f x ∆=-(1—5)(1)()()k k k x x x +=+∆(1-6)当采用直角坐标系解决潮流方程,此时待解电压和导纳如下式:i i i ij ij ijV e jf Y G jB =+=+ (1-7)假设系统的网络中一共设有n 个节点,平衡节点的电压是已知的,平衡节点表示如下.n n n V e jf =+(1-8)除了平衡节点以外的所有2(1)n -个节点是需要求解的量。
由于本人参加我们电气学院的电气小课堂,主讲的是计算机算法计算潮流这章,所以潜心玩了一个星期,下面整理给大家分享下。
本人一个星期以来的汗水,弄清楚了计算机算法计算潮流的基础,如果有什么不懂的可以发信息到邮箱:zenghao616@接下来开始弄潮流的优化问题,吼吼!电力系统的潮流计算的计算机算法:以MATLAB为环境这里理论不做过多介绍,推荐一本专门讲解电力系统分析的计算机算法的书籍---------《电力系统分析的计算机算法》—邱晓燕、刘天琪编著。
这里以这本书上的例题【2-1】说明计算机算法计算的过程,分别是牛顿拉弗逊算法的直角坐标和极坐标算法、P-Q分解算法。
主要是简单的网络的潮流计算,其实简单网络计算和大型网络计算并无本质区别,代码里面只需要修改循环迭代的N即可,这里旨在弄清计算机算法计算潮流的本质。
代码均有详细的注释.其中简单的高斯赛德尔迭代法是以我们的电稳教材为例子讲,其实都差不多,只要把导纳矩阵Y给你,节点的编号和分类给你,就可以进行计算了,不必要找到原始的电气接线图。
理论不多说,直接上代码:简单的高斯赛德尔迭代法:这里我们只是迭代算出各个节点的电压值,支路功率并没有计算。
S_ij=P_ij+Q_ij=V_i(V_i* - V_j*) * y_ij*可以计算出各个线路的功率在显示最终电压幅角的时候注意在MATLAB里面默认的是弧度的形式,需要转化成角度显示。
clear;clc;%电稳书Page 102 例题3-5%计算网络的潮流分布 --- 高斯-赛德尔算法%其中节点1是平衡节点%节点2、3是PV节点,其余是PQ节点% 如果节点有对地导纳支路%需将对地导纳支路算到自导纳里面%------------------------------------------------%%输入原始数据,每条支路的导纳数值,包括自导和互导纳;y=zeros(5,5);y(1,2)=1/(0.0194+0.0592*1i);y(1,5)=1/(0.054+0.223*1i);y(2,3)=1/(0.04699+0.198*1i);y(2,4)=1/(0.0581+0.1763*1i);%由于电路网络的互易性,导纳矩阵为对称的矩阵for i=1:1:5for j=1:1:5y(j,i)=y(i,j);endend%节点导纳矩阵的形成Y=zeros(5,5);%求互导纳for i=1:1:5for j=1:1:5if i~=jY(i,j)=-y(i,j);endendend%求自导纳for i=1:1:5%这句话是说将y矩阵的第i行的所有元素相加,得到自导纳的值 Y(i,i)=sum(y(i,:));end%上面求得的自导纳不包含该节点的对地导纳数值,需要加上Y(2,2)=Y(2,2)+0.067*1i;Y(3,3)=Y(3,3)+0.022*1i;Y(4,4)=Y(4,4)+0.0187*1i;Y(5,5)=Y(5,5)+0.0246*1i;%导纳矩阵的实部和虚部G = real(Y);B = imag(Y);Qc2=0;Qc3=0;%原始节点功率%这里电源功率为正,负荷功率为负S(1)=0;S(2)=-0.217-0.121*1i+Qc2*1i;S(3)=-0.749-0.19*1i+Qc3*1i;S(4)=-0.658+0.039*1i;S(5)=-0.076-0.016*1i;%节点功率的P QP = real(S);Q = imag(S);%下面是两个PV节点的无功初始值Q(2) = 0;Q(3) = 0;U=ones(5,1); %1列5行的‘1’矩阵%节点电压初始值U(1)=1.06;U(2)=1.045;U(3)=1.01;U_reg=U;Sum_YU0=0;%中间变量Sum_YU1=0;%中间变量for cont=1:1:6 %这里的cont是迭代次数for i=2:1:5for j=1:1:iif i~=jSum_YU0 = Sum_YU0 + Y(i,j)*U_reg(j);endendfor j=i+1:1:5Sum_YU1 = Sum_YU1 + Y(i,j)*U(j);endU(i)=( (P(i)-Q(i)*1i ) / conj(U(i)) - Sum_YU0 - Sum_YU1 ) / Y(i,i); U_reg(i)=U(i);%PV节点计算%下面是把求出的U2、U3只保留其相位,幅值不变if i==2angle_U2 = angle(U(2));U(2)=1.045*cos(angle_U2)+1.045*sin(angle_U2)*1i;Q(2)=imag( U(2)*( conj(Sum_YU0) + conj(Sum_YU1) + conj(Y(2,2)*U(2)) ) );endif i==3angle_U3 = angle(U(3));U(3)=1.01*cos(angle_U3)+1.01*sin(angle_U3)*1i;Q(3)=imag( U(3)*( conj(Sum_YU0) + conj(Sum_YU1) + conj(Y(3,3)*U(3)) ) );end% 下面做越界检查%if Q(4)>Q_Max% Q(4) = Q_Max;%end%if Q(4)<Q_Min% Q(4) = Q_Min;%end%下面可以做PV节点收敛判断Sum_YU0 = 0;Sum_YU1 = 0;endend%节点注入无功,流入为正,流出为负Qc2=Q(2)+0.121-1.045^2 * 0.067;Qc3=Q(3)+0.19-1.01^2 * 0.022;%电压幅值和相角angle_U=angle(U)*180/pi;U=abs(U);S_Line=zeros(5,5);%计算平衡节点功率S_BalanceNode=0;for j=1:1:5S_BalanceNode = S_BalanceNode + U(1) * conj(Y(1,j)*U(j));end%下面由上面算出的电压值求线路的功率%这里计算出来的线路功率的有功、无功%for i=1:1:5% for j=i:1:5% if i~=j% S_Line(i,j)=U(i)*( conj(U(i))-conj(U(j)) ) * conj(y(i,j));% end% if i==2% %S_Line(2,j)=S_Line(2,j)+U(2)*conj(0.067*1i);% end% if i==3% %S_Line(3,j)=S_Line(3,j)+U(3)*conj(0.022*1i);% end% end%end计算网络的潮流分布 ---- Newton算法(直角坐标)clear;clc;%电稳书Page 102 例题3-5%计算网络的潮流分布 ---- Newton算法(直角坐标)%其中节点1是平衡节点%节点2、3是PV节点,其余是PQ节点% 如果节点有对地导纳支路%需将对地导纳支路算到自导纳里面%------------------------------------------------%%输入原始数据,每条支路的导纳数值,包括自导和互导纳;y=zeros(5,5);y(1,2)=1/(0.0194+0.0592*1i);y(1,5)=1/(0.054+0.223*1i);y(2,3)=1/(0.04699+0.198*1i);y(2,4)=1/(0.0581+0.1763*1i);%由于电路网络的互易性,导纳矩阵为对称的矩阵for i=1:1:5for j=1:1:5y(j,i)=y(i,j);endend%节点导纳矩阵的形成Y=zeros(5,5);%求互导纳for i=1:1:5for j=1:1:5if i~=jY(i,j)=-y(i,j);endendend%求自导纳for i=1:1:5%这句话是说将y矩阵的第i行的所有元素相加,得到自导纳的值Y(i,i)=sum(y(i,:));end%上面求得的自导纳不包含该节点的对地导纳数值,需要加上Y(2,2)=Y(2,2)+0.067*1i;Y(3,3)=Y(3,3)+0.022*1i;Y(4,4)=Y(4,4)+0.0187*1i;Y(5,5)=Y(5,5)+0.0246*1i;%导纳矩阵的实部和虚部G = real(Y);B = imag(Y);%节点2、3需补偿的无功Qc2=0;Qc3=0;%原始节点功率%这里电源功率为正,负荷功率为负S(1)=0;S(2)=-0.217-0.121*1i+Qc2*1i;S(3)=-0.749-0.19*1i+Qc3*1i;S(4)=-0.658+0.039*1i;S(5)=-0.076-0.016*1i;%节点功率的P QP = real(S);Q = imag(S);%下面是两个PV节点的无功初始值Q(2) = 0;Q(3) = 0;%给点电压初始值e=[1.06,1.045,1.01,1,1];f=[0,0,0,0,0];U=e+f*1i;delta_U=zeros(1,5);delta_P=zeros(1,5);delta_Q=zeros(1,5);delta_PQV=ones(8,1);Sum_GB1=0;Sum_GB2=0;cont=0;while max(delta_PQV > 1e-6),cont=cont+1;%for cont=1:1:3%下面开始计算delta_P/delta_Q/delta_Ufor i=2:1:5for j=1:1:5Sum_GB1=Sum_GB1 + ( G(i,j)*e(j) - B(i,j)*f(j) );Sum_GB2=Sum_GB2 + ( G(i,j)*f(j) + B(i,j)*e(j) );enddelta_P(i)=P(i)-e(i)*Sum_GB1-f(i)*Sum_GB2;if i~=2 && i~=3 %不为节点2,3则计算无功delta_Q(i)=Q(i)-f(i)*Sum_GB1+e(i)*Sum_GB2;endif i==2 || i==3 %这里计算delta_U的值,始终为零delta_U(i)=U(i)^2-( e(i)^2 + f(i)^2 );endSum_GB1=0;Sum_GB2=0;end%___________________________________%%下面计算雅克比矩阵J=zeros(8,8);for ii=2:1:5i=ii-1;for j=1:1:5Sum_GB1=Sum_GB1 + ( G(ii,j)*e(j) - B(ii,j)*f(j) );Sum_GB2=Sum_GB2 + ( G(ii,j)*f(j) + B(ii,j)*e(j) );endfor jj=2:1:5j=jj-1;if ii~=2 && ii~=3 %PQ节点if ii==jjJ(2*i-1,2*i-1)=-Sum_GB1-G(ii,ii)*e(ii)-B(ii,ii)*f(ii);J(2*i-1,2*i)=-Sum_GB2+B(ii,ii)*e(ii)-G(ii,ii)*f(ii);J(2*i,2*i-1)=Sum_GB2+B(ii,ii)*e(ii)-G(ii,ii)*f(ii);J(2*i,2*i)=-Sum_GB1+G(ii,ii)*e(ii)+B(ii,ii)*f(ii);elseJ(2*i-1,2*j-1)=-(G(ii,jj)*e(ii)+B(ii,jj)*f(ii)); J(2*i-1,2*j)=B(ii,jj)*e(ii)-G(ii,jj)*f(ii);J(2*i,2*j-1)=B(ii,jj)*e(ii)-G(ii,jj)*f(ii);J(2*i,2*j)=(G(ii,jj)*e(ii)+B(ii,jj)*f(ii));endelse%PV节点if ii==jjJ(2*i-1,2*i-1)=-Sum_GB1-G(ii,ii)*e(ii)-B(ii,ii)*f(ii);J(2*i-1,2*i)=-Sum_GB2+B(ii,ii)*e(ii)-G(ii,ii)*f(ii);J(2*i,2*i-1)=-2*e(ii);J(2*i,2*i)=-2*f(ii);elseJ(2*i-1,2*j-1)=-(G(ii,jj)*e(ii)+B(ii,jj)*f(ii)); J(2*i-1,2*j)=B(ii,jj)*e(ii)-G(ii,jj)*f(ii);J(2*i,2*j-1)=0;J(2*i,2*j)=0;endendendSum_GB1=0;Sum_GB2=0;end%在求解修正方程之前建议把delta_P和delta_Q,delta_U全部放在一个矩阵delta_PQV=[delta_P(2);delta_U(2);delta_P(3);delta_U(3);delta_P(4) ;delta_Q(4);delta_P(5);delta_Q(5)];%下面求解修正方程;注意矩阵运算时候的左除和右除的区别delta_ef=-J\delta_PQV;%下面修正各个节点的电压for i=2:1:5e(i)=e(i)+delta_ef(2*(i-1)-1);f(i)=f(i)+delta_ef(2*(i-1));end%到这里第一轮迭代完成end%电压幅值和相角U=e+f*1i;angle_U=angle(U)*180/pi;%节点注入无功,流入为正,流出为负Sum_YU=0;for i=2:1:3for j=1:1:5Sum_YU = Sum_YU + Y(i,j)*U(j);endQ(i)=imag( U(i)*conj( Sum_YU ) );Sum_YU=0;endQc2=Q(2)+0.121-1.045^2 * 0.067;Qc3=Q(3)+0.19-1.01^2 * 0.022;U=abs(U);disp(['Iteration times : ' num2str(cont)]);%显示最终的迭代次数牛顿算法求解潮流 (极坐标):clear;clc;%牛顿算法求解潮流 (极坐标)%计算网络的潮流分布%其中节点5是平衡节点%节点1、2、3是PQ节点,节点4是PV节点% 如果节点有对地导纳支路%需将对地导纳支路算到自导纳里面%------------------------------------------------%%输入原始数据,每条支路的导纳数值,包括自导和互导纳;Y=[0.8381-3.7899*1i,-0.4044+1.6203*1i,0,0,-0.4337+2.2586*1i;...-0.4044+1.6203*1i,0.7769-3.3970*1i,-0.3726+1.8557*1i,0,0;...0,-0.3726+1.8557*1i,1.1428-7.0210*1i,-0.5224+4.1792*1i,-0.2739+1. 2670*1i;...0,0,-0.5224+4.1792*1i,0.5499-4.3591*1i,0;...-0.4337+2.2586*1i,0,-0.2739+1.2670*1i,0,0.7077-3.4437*1i];%导纳矩阵的实部和虚部G = real(Y);B = imag(Y);%给点电压初始值U = [1,1,1,1,1.05];angle_U=[0,0,0,0,0];%for i=1:1:5% U(i)=U_abs(i)*cos(angle_U(i))+U_abs(i)*sin(angle_U(i))*1i;%end%原始节点功率%这里电源功率为正,负荷功率为负%下面给点PQ PV节点功率值S=[-0.22-0.14*1i,-0.18-0.09*1i,-0.27-0.13*1i,0.35,0];%节点功率的P QP = real(S);Q = imag(S);%下面是PV节点的无功初始值Q(4) = 0;delta_P=zeros(1,5);delta_Q=zeros(1,5);%delta_angleU=zeros(1,4);%delta_absU=zeros(1,4);delta_PQ=ones(8,1);Sum_GB1=0;Sum_GB2=0;cont=0;%最外层循环,cont代表迭代的次数,这里可以用约束条件来代替%for cont=1:1:4while max(delta_PQ)>1e-6,%下面计算delta_P/delta_Q/delta_Ucont=cont+1;for i=1:1:4for j=1:1:5Sum_GB1=Sum_GB1 + U(j)*( G(i,j)*cos(angle_U(i)-angle_U(j)) + B(i,j)*sin(angle_U(i)-angle_U(j)) );Sum_GB2=Sum_GB2 + U(j)*( G(i,j)*sin(angle_U(i)-angle_U(j)) - B(i,j)*cos(angle_U(i)-angle_U(j)) );enddelta_P(i)=P(i)-U(i)*Sum_GB1;if i~=4 %不为节点四则计算无功delta_Q(i)=Q(i)-U(i)*Sum_GB2;endSum_GB1=0;Sum_GB2=0;end%_______________________________________________________%%下面计算雅克比矩阵J=zeros(7,7);for ii=1:1:4for jj=1:1:4if ii ~= 4 %PQ节点if ii==jjJ(2*ii-1,2*ii-1)=U(ii)^2*B(ii,ii)+Q(ii);J(2*ii-1,2*ii)=-U(ii)^2*G(ii,ii)-P(ii);J(2*ii,2*ii-1)=U(ii)^2*G(ii,ii)-P(ii);J(2*ii,2*ii)=U(ii)^2*B(ii,ii)-Q(ii);elseJ(2*ii-1,2*jj-1)=-U(ii)*U(jj)*( G(ii,jj)*sin(angle_U(ii)-angle_U( jj)) - B(ii,jj)*cos(angle_U(ii)-angle_U(jj)) );J(2*ii-1,2*jj)=-U(ii)*U(jj)*( G(ii,jj)*cos(angle_U(ii)-angle_U(jj)) + B(ii,jj)*sin(angle_U(ii)-angle_U(jj)) );J(2*ii,2*jj-1)=U(ii)*U(jj)*( G(ii,jj)*cos(angle_U(ii)-angle_U(jj)) + B(ii,jj)*sin(angle_U(ii)-angle_U(jj)) );J(2*ii,2*jj)=-U(ii)*U(jj)*( G(ii,jj)*sin(angle_U(ii)-angle_U(jj)) - B(ii,jj)*cos(angle_U(ii)-angle_U(jj)) );endelse%PV节点if ii==jjJ(2*ii-1,2*ii-1)=U(ii)^2*B(ii,ii)+Q(ii);J(2*ii-1,2*ii)=-U(ii)^2*G(ii,ii)-P(ii);elseJ(2*ii-1,2*jj-1)=-U(ii)*U(jj)*( G(ii,jj)*sin(angle_U(ii)-angle_U( jj)) - B(ii,jj)*cos(angle_U(ii)-angle_U(jj)) );J(2*ii-1,2*jj)=-U(ii)*U(jj)*( G(ii,jj)*cos(angle_U(ii)-angle_U(jj)) + B(ii,jj)*sin(angle_U(ii)-angle_U(jj)) );endendendend%在求解修正方程之前建议把delta_ef和delta_ef全部放在一个矩阵delta_PQ=[delta_P(1);delta_Q(1);delta_P(2);delta_Q(2);delta_P(3); delta_Q(3);delta_P(4)];%下面求解修正方程;注意矩阵运算时候的左除和右除的区别J=J(1:7,1:7);delta_ef=-J\delta_PQ;%下面修正各个节点的电压for i=1:1:4if i~=4U(i)=U(i)+delta_ef(2*i)*U(i);endangle_U(i)=angle_U(i)+delta_ef(2*i-1);end%到这里第一轮迭代完成end%下面显示出满足条件后的迭代的次数disp(['Iteration times : ' num2str(cont)]);%下面计算平衡节点5的功率PQfor j=1:1:5Sum_GB1=Sum_GB1 + U(j)*( G(5,j)*cos(angle_U(5)-angle_U(j)) + B(5,j)*sin(angle_U(5)-angle_U(j)) );Sum_GB2=Sum_GB2 + U(j)*( G(5,j)*sin(angle_U(5)-angle_U(j)) - B(5,j)*cos(angle_U(5)-angle_U(j)) );endP(5)=U(5)*Sum_GB1;Q(5)=U(5)*Sum_GB2;%下面将相角用角度表示for i=1:1:5angle_U(i)=angle_U(i)*180/pi;End计算计算法P-Q算法计算潮流:这个算法是由牛顿算法的极坐标形式简化而来。