潮流计算(matlab)实例计算
matlab潮流计算仿真方法
matlab潮流计算仿真方法
MATLAB 是一种强大的编程语言和环境,可用于执行各种仿真和计算任务,包括电力系统潮流计算。
以下是一个简单的 MATLAB 潮流计算仿真方法的
示例:
1. 定义系统参数:首先,你需要定义电力系统的参数,如发电机、负荷、变压器等。
这些参数通常包括额定电压、额定功率、电抗、电阻等。
2. 建立系统模型:使用这些参数,你可以在 MATLAB 中建立电力系统的模型。
这通常涉及到定义节点和支路,以及为它们分配相应的参数。
3. 编写潮流计算函数:接下来,你需要编写一个用于执行潮流计算的函数。
这个函数应该能够接收系统的模型和参数,并返回计算出的潮流结果,如电压、电流、功率等。
4. 运行仿真:最后,你可以运行仿真并调用你编写的潮流计算函数。
这将返回计算出的潮流结果,你可以使用这些结果进行进一步的分析或可视化。
这只是一个简单的示例,实际上在编写 MATLAB 潮流计算仿真方法时可能
需要考虑更多因素,例如系统的约束条件、初始条件、迭代算法的收敛性等。
如果你需要具体的 MATLAB 代码示例或更详细的指导,我建议你查阅MATLAB 的官方文档或相关的教程和文献。
电力系统潮流计算matlab程序
电力系统潮流计算matlab程序电力系统潮流计算是电力系统运行和规划中的重要环节,它用于计算电力系统中各节点的电压、功率和电流等参数。
随着电力系统规模的不断扩大和复杂性的增加,传统的手工计算方法已经无法满足需求,因此,利用计算机编程进行潮流计算成为了一种必要的选择。
Matlab是一种功能强大的科学计算软件,它提供了丰富的数学函数和工具箱,可以方便地进行电力系统潮流计算。
下面我将介绍一下如何使用Matlab编写电力系统潮流计算程序。
首先,我们需要建立电力系统的节点模型。
节点模型是电力系统中各节点的电压、功率和电流等参数的数学表示。
在Matlab中,我们可以使用矩阵来表示节点模型。
假设电力系统有n个节点,我们可以定义一个n×n的复数矩阵Y来表示节点之间的导纳关系,其中Y(i,j)表示节点i和节点j之间的导纳。
同时,我们还需要定义一个n×1的复数向量V来表示各节点的电压,其中V(i)表示节点i的电压。
接下来,我们需要编写潮流计算的主程序。
主程序的主要功能是根据节点模型和潮流计算算法,计算出各节点的电压、功率和电流等参数。
在Matlab中,我们可以使用循环语句和矩阵运算来实现潮流计算。
具体的计算过程可以参考电力系统潮流计算的算法。
在编写主程序之前,我们还需要定义一些输入参数,如电力系统的节点数、发电机节点和负荷节点等。
这些参数可以通过用户输入或者读取文件的方式获取。
同时,我们还需要定义一些输出参数,如各节点的电压、功率和电流等。
这些参数可以通过矩阵运算和循环语句计算得到,并输出到文件或者显示在屏幕上。
最后,我们需要进行程序的测试和调试。
可以通过输入一些测试数据,运行程序并检查输出结果是否正确。
如果发现程序有错误或者结果不准确,可以通过调试工具和打印调试信息的方式进行调试。
总之,利用Matlab编写电力系统潮流计算程序可以提高计算效率和准确性,为电力系统的运行和规划提供有力的支持。
当然,编写一个完整的潮流计算程序需要考虑很多细节和特殊情况,这需要有一定的电力系统和编程知识。
matpower潮流计算实例
matpower潮流计算实例matpower是一款用于电力系统潮流计算的软件包,它是基于MATLAB 开发的工具。
潮流计算是电力系统运行和规划中的重要任务,它用于分析电力系统中各节点的电压、功率和电流等参数的分布情况,以及各发电机和负荷之间的潮流分布情况。
matpower的使用非常灵活,可以用于不同规模和复杂度的电力系统潮流计算。
在进行潮流计算前,需要准备好电力系统的数据,包括发电机的参数、负荷的参数、输电线路的参数等。
matpower提供了丰富的函数和工具,可以方便地导入和处理这些数据。
潮流计算的目的是确定电力系统中各节点的电压和相角,以及各发电机和负荷的潮流分布情况。
通过潮流计算,可以评估电力系统的稳定性和可靠性,优化电力系统的运行和规划。
潮流计算的结果可以用于发电机的出力控制、负荷的调度、输电线路的优化等。
matpower提供了多种潮流计算算法,包括牛顿-拉夫森法、快速潮流法、直流潮流法等。
这些算法具有不同的适用范围和计算速度,用户可以根据具体情况选择合适的算法进行计算。
matpower还提供了丰富的可视化工具,可以直观地展示潮流计算的结果。
除了潮流计算,matpower还可以进行电力系统的稳定性分析、最优潮流计算、无功优化等。
这些功能使matpower成为了电力系统分析和优化的重要工具。
下面以一个简单的实例来介绍matpower的潮流计算功能。
假设有一个由3个节点、3台发电机和3个负荷组成的电力系统,节点之间通过输电线路相连。
我们希望计算出各节点的电压和相角,以及各发电机和负荷的功率和潮流分布情况。
我们需要准备好电力系统的数据。
发电机的参数包括发电机编号、发电机容量、发电机电压、发电机无功功率等。
负荷的参数包括负荷编号、负荷功率、负荷电压等。
输电线路的参数包括线路编号、起始节点、终止节点、线路阻抗等。
将这些数据整理成matpower所需的格式,并导入matpower。
接下来,我们可以使用matpower提供的潮流计算函数进行计算。
潮流计算matlab程序
clear;%各节点参数:节点编号,类型,电压幅值,电压相位,注入有功,注入无功%类型:1=PQ节点,2=PV节点,3=平衡节点%本程序中将最后一个节点设为平衡节点R_1=[1 1 1.0 0 0.2 0.2j;2 1 1.0 0 -0.45 -0.15j;3 1 1.0 0 -0.45 -0.05j;4 1 1.0 0 -0.6 -0.1j;5 3 1.0 0 0 0];%支路号首端节点末端节点支路导纳R_2=[1 5 2 1.25-3.75j;2 23 10.00-30.00j;3 34 1.25-3.75j;4 1 4 2.50-7.50j;5 1 5 5.00-15.00j;6 1 2 1.667-5.00j];n=5;L=6;%需要改变的到此为止i=0;j=0;a=0;precision=1;k=0;Y=zeros(n,n);u=zeros(1,n);delt=zeros(1,n);P=zeros(1,n);Q=zeros(1,n);G=[];B=[];PP=[];uu=[];U=[];dp=[];dq=[];for a=1:Li=R_2(a,2);j=R_2(a,3);Y(i,j)=-R_2(a,4);Y(j,i)=Y(i,j);endfor a=1:nfor b=1:nif a~=bY(a,a)=Y(a,a)+Y(a,b);endendendfor i=1:nfor j=1:nif i==jY(i,j)=-Y(i,j);endendendY %形成导纳矩阵for i=1:nfor j=1:nG(i,j)=real(Y(i,j));B(i,j)=imag(Y(i,j));endendfor a=1:nu(a)=R_1(a,3);P(a)=R_1(a,5);Q(a)=R_1(a,6);delt(a)=R_1(a,4);endwhile precision>0.0001 %判断是否满足精度要求for a=1:n-1for b=1:npt(b)=u(a)*u(b)*(G(a,b)*cos(delt(a)-delt(b))+B(a,b)*sin(delt(a)-delt(b)));qt(b)=u(a)*u(b)*(G(a,b)*sin(delt(a)-delt(b))-B(a,b)*cos(delt(a)-delt(b))); endpt,qtpi(a)=sum(pt);qi(a)=sum(qt); %计算PQ节点的注入功率dp(a)=P(a)-pi(a);dq(a)=Q(a)-qi(a); %计算PQ节点的功率不平衡量endfor a=1:n-1for b=1:n-1if a==bH(a,a)=-qi(a)-u(a)^2*B(a,a); N(a,a)=pi(a)+u(a)^2*G(a,a);J(a,a)=pi(a)-u(a)^2*G(a,a); L(a,a)=qi(a)-u(a)^2*B(a,a);JJ(2*a-1,2*a-1)=H(a,a); JJ(2*a-1,2*a)=N(a,a);JJ(2*a,2*a-1)=J(a,a); JJ(2*a,2*a)=L(a,a);elseH(a,b)=u(a)*u(b)*(G(a,b)*sin(delt(a)-delt(b))-B(a,b)*cos(delt(a)-delt(b)));J(a,b)=-u(a)*u(b)*(G(a,b)*cos(delt(a)-delt(b))+B(a,b)*sin(delt(a)-delt(b)));N(a,b)=-J(a,b);L(a,b)=H(a,b);JJ(2*a-1,2*b-1)=H(a,b);JJ(2*a-1,2*b)=N(a,b);JJ(2*a,2*b-1)=J(a,b); JJ(2*a,2*b)=L(a,b);endendend %计算jocbi各项,并放入统一矩阵JJ中,对JJ下标统一编号JJfor a=1:n-1PP(2*a-1)=dp(a);PP(2*a)=dq(a);end %按统一矩阵形成功率不平衡uu=inv(JJ)*PP';precision=max(abs(uu)); %判断是否收敛for b=1:n-1delt(b)=delt(b)+uu(2*b-1);u(b)=u(b)+uu(2*b)*u(b); %将结果分解为电压幅值和角度end %求解修正方程,得电压幅值变化量(标幺值)和角度变化量k=k+1;endfor a=1:nU(a)=u(a)*(cos(delt(a))+j*sin(delt(a)));endfor b=1:nI(b)=Y(n,b)*U(b);%求平衡节点的注入电流endS5=U(n)*sum(conj(I))%求平衡节点的注入功率for a=1:nfor b=1:nS(a,b)=U(a)*(conj(U(a))-conj(U(b)))*conj(-Y(a,b));endend %求节点i,j节点之间的功率,方向为由i指向j,S %显示支路功率。
基于MATLAB进行潮流计算
基于MATLAB进行潮流计算本文介绍了基于MATLAB软件的潮流计算方法。
电力系统潮流计算方法分为手算潮流和计算机潮流计算两类。
手算潮流主要适用于规模较小的辐射型电力潮流计算,而计算机潮流计算有两种途径:编程实现网络方程的迭代求解和借助电力系统分析仿真软件搭建系统模型完成潮流计算。
MATLAB具有强大的矩阵运算功能和电力系统仿真平台,可以为实现潮流计算提供更便捷的手段。
本文采用极坐标形式牛顿─拉夫逊法进行潮流计算,为其他形式的潮流计算提供借鉴。
Abstract: The power flow n method can be divided into two categories: hand n of tidal current and computer power flow XXX simplified equivalent circuits。
making it XXX: programming XXX ns。
or using power system XXX system model for power flow n。
MATLAB are has strong matrix ns and its power system XXX-Raphson method of power flow n in polar coordinates with MATLAB are。
and can serve as a reference for other forms of power flow n.1.电力系统中的牛顿法潮流计算是一种常用的电力系统分析方法。
该方法基于节点电压的相等条件和潮流方程的等式条件,通过迭代求解电压和相位的不平衡量,最终得到各节点的电压、相位和功率等参数。
2.牛顿法潮流计算的步骤包括输入系统原始数据、形成节点导纳矩阵、给定各节点电压初值、计算功率偏差向量、判断收敛条件、计算雅克比矩阵、解修正方程、计算节点电压和相位的修正值、迭代计算直至满足收敛条件、计算各节点功率等参数并输出计算结果。
matlab电力系统潮流计算程序
matlab电力系统潮流计算程序电力系统潮流计算是电力系统分析的关键步骤之一,用于确定电力系统各节点的电压和相角分布。
以下是一个简单的MATLAB电力系统潮流计算的基本步骤和代码示例:1.定义电力系统参数:-定义系统节点数量、支路数据、发电机数据、负荷数据等电力系统参数。
```matlab%电力系统参数busdata=[1,1.05,0,0,0,0,0,0;2,1.02,0,0,0,0,0,0;%...其他节点数据];linedata=[1,2,0.02,0.06,0.03;%...其他支路数据];gendata=[1,2,100,0,999,1.05,0.95;%...其他发电机数据];loaddata=[1,50,20;%...其他负荷数据];```2.构建潮流计算矩阵:-利用节点支路导纳、节点负荷和发电机功率等信息构建潮流计算的阻抗矩阵。
```matlabYbus=buildYbus(busdata,linedata);```3.迭代求解潮流方程:-利用迭代算法(如牛顿-拉夫森法)求解潮流方程,更新节点电压和相角。
```matlab[V,delta]=powerflow(Ybus,gendata,loaddata,busdata);```4.结果分析和可视化:-分析计算结果,可视化电压和相角分布。
```matlabplotVoltageProfile(busdata,V,delta);```这只是一个简单的潮流计算示例。
具体的程序实现可能涉及更复杂的算法和工程细节,取决于电力系统的复杂性和精确性要求。
您可能需要根据实际情况和数据格式进行调整和改进。
在实际工程中,也可以考虑使用专业的电力系统仿真软件。
潮流计算MATLAB 粗略程序
%========================================================================== %========================================================================== %========================================================================== %潮流计算MATLAB 粗略程序 C.zhou 2009.3.27%========================================================================== %========================================================================== %========================================================================== %creat a new_datat=0;s=0;r=0;w=0;number=input('How many node are there=');% Convert Pq to a new arrayfor ii=1:numberif data(ii,4)==1t=t+1;for jj=1:14new_data1(t,jj)=data(ii,jj);end;a(1,t)=ii;s=s+1; %record the number of the PQ node end;end;%Convert pv to a new arrayfor ii=1:numberif data(ii,4)==2t=t+1;for jj=1:14new_data1(t,jj)=data(ii,jj);end;a(1,t)=ii;r=r+1; %record the number of the PV node end;end;%Convert set_v to a new arrayfor ii=1:numberif data(ii,4)==3t=t+1;for jj=1:14new_data1(t,jj)=data(ii,jj);end;a(1,t)=ii;w=w+1;end;end;%creat a new_data2[x,y]=size(data2)for ii=1:xfor jj=1:2for mm=1:numberif data2(ii,jj)==a(1,mm)new_data2(ii,jj)=mm;end;end;end;end;for ii=1:xfor jj=3:14new_data2(ii,jj)=data2(ii,jj);end;end;%creat a YY=zeros(number,number);YY=zeros(number,number);yy=zeros(number,number);for ii=1:x% for jj=1:14iii=new_data2(ii,1);jjj=new_data2(ii,2);if new_data2(ii,5)==2sub=new_data2(ii,6)./(new_data2(ii,7).*new_data2(ii,7)+new_data2(ii,6).*new_data2(ii,6 ))-new_data2(ii,7)./(new_data2(ii,7).*new_data2(ii,7)+new_data2(ii,6).*new_data2(ii,6))*i;Y(iii,jjj)=-sub./new_data2(ii,14);YY(iii,jjj)=sub./new_data2(ii,14);Y(jjj,iii)=-sub/new_data2(ii,14);YY(jjj,iii)=sub./new_data2(ii,14);yy(iii,jjj)=(1.-new_data2(ii,14))./(new_data2(ii,14).*new_data2(ii,14)).*sub;yy(jjj,iii)=(new_data2(ii,14)-1)./(new_data2(ii,14)).*sub;elseY(iii,jjj)=-new_data2(ii,6)./(new_data2(ii,7).*new_data2(ii,7)+new_data2(ii,6).*new_data2 (ii,6))+new_data2(ii,7)./(new_data2(ii,7).*new_data2(ii,7)+new_data2(ii,6).*new_data2(ii,6))*i;YY(iii,jjj)=new_data2(ii,6)./(new_data2(ii,7).*new_data2(ii,7)+new_data2(ii,6).*new_data 2(ii,6))-new_data2(ii,7)./(new_data2(ii,7).*new_data2(ii,7)+new_data2(ii,6).*new_data2(ii,6))*i;Y(jjj,iii)=-new_data2(ii,6)./(new_data2(ii,7).*new_data2(ii,7)+new_data2(ii,6).*new_data2 (ii,6))+new_data2(ii,7)./(new_data2(ii,7).*new_data2(ii,7)+new_data2(ii,6).*new_data2(ii,6))*i;YY(jjj,iii)=new_data2(ii,6)./(new_data2(ii,7).*new_data2(ii,7)+new_data2(ii,6).*new_data2(ii,6))-new_data2(ii,7)./(new_data2(ii,7).*new_data2(ii,7)+new_data2(ii,6).*new_data2(ii,6))*i;yy(iii,jjj)=new_data2(ii,8)./2.*i;yy(jjj,iii)=new_data2(ii,8)./2.*i;end;%end;end;for iii=1:numberY(iii,iii)=0;end;%for ii=1:x% for jj=1:14for iii=1:numberfor jj=1:number% if iii~=jjY(iii,iii)=Y(iii,iii)+YY(iii,jj)+yy(iii,jj);% end;end;end;%creat B, Gfor ii=1:numberfor jj=1:numberG(ii,jj)= real(Y(ii,jj));B(ii,jj)= imag(Y(ii,jj));end;end;%creat Initial_P Initial_Q Initial_Vfor ii=1:(s+r)set_P(ii,1)=(new_data1(ii,9)-new_data1(ii,7))./100;end;for ii=1:s;set_Q(ii,1)=(new_data1(ii,10)-new_data1(ii,8))./100;end;for ii=1:rset_V(ii,1)=new_data1(ii+s,12).*new_data1(ii+s,12);%try to modify for sike of correcting end;Initial_p_q_v=[set_P;set_Q;set_V];disp(Initial_p_q_v);%creat Initial_e,Initial_ffor ii=1:number-1e(ii,1)=1;f(ii,1)=0.0;%change f to test used to be 1.0end;e(number,1)=new_data1(number,12);f(number,1)=0;% e(64,1)=0.88;%test 118ieee% f(64,1)=0.39395826829394;% f(14,1)=0;% e(10,1)=1.045;%e(11,1)=1.01;%e(12,1)=1.07;%e(13,1)=1.09;%//////////////////////////////////////////////////////////////////////////%/////////////////////////////////////////////////////////////////////////%//////////////////////////////////////////////////////////////////////////%//////////////////////////////////////////////////////////////////////////% Start NEWTOWN CALULATIONfor try_time=1:25%Creat every node consume P Q and Un=s;m=r;for ii=1:(n+m)sum1=0;for jj=1:(n+m+1)sum1=sum1+e(ii,1).*(G(ii,jj).*e(jj,1)-B(ii,jj).*f(jj,1))+f(ii,1).*(G(ii,jj).*f(jj,1)+B(ii,jj).*e(jj,1));end;p(ii,1)=sum1;end;for ii=1:nsum2=0;for jj=1:(n+m+1)sum2=sum2+f(ii,1).*(G(ii,jj).*e(jj,1)-B(ii,jj).*f(jj,1))-e(ii,1).*(G(ii,jj).*f(jj,1)+B(ii,jj).*e(jj,1));end;q(ii,1)=sum2;end;disp('q=');disp(q);u=zeros((n+m),1);for ii=(n+1):(n+m)u(ii,1)=e(ii,1).*e(ii,1)+f(ii,1).*f(ii,1);end;for ii=n+1:(n+m)extra_u((ii-n),1)=u(ii,1);end;disp('extra_u=');disp(extra_u);sum=[p;q;extra_u];disp(sum)disp(s);disp(p);%creat Jacobiandisp(n);disp(m);for ii=1:(n+m)for jj=1:(n+m)if (ii~=jj)PF(ii,jj)=B(ii,jj).*e(ii,1)-G(ii,jj).*f(ii,1);PE(ii,jj)=-G(ii,jj).*e(ii,1)-B(ii,jj).*f(ii,1);elsess=0;qq=0;for num=1:(n+m+1)ss=ss+G(ii,num).*f(num,1)+B(ii,num).*e(num,1);qq=qq+G(ii,num).*e(num,1)-B(ii,num).*f(num,1);end;PF(ii,jj)=-ss+B(ii,jj).*e(ii,1)-G(ii,jj).*f(ii,1);%TEST+1PE(ii,jj)=-qq-G(ii,jj).*e(ii,1)-B(ii,jj).*f(ii,1);%TEST+1end;end;end;copy=3.14159;disp('================copy================')for ii=1:nfor jj=1:m+nif (ii~=jj)QE(ii,jj)=B(ii,jj).*e(ii,1)-G(ii,jj).*f(ii,1);%TEST+1QF(ii,jj)=G(ii,jj).*e(ii,1)+B(ii,jj).*f(ii,1);%TEST+1elsess=0;qq=0;for num=1:(n+m+1)ss=ss+G(ii,num).*f(num,1)+B(ii,num).*e(num,1);qq=qq+G(ii,num).*e(num,1)-B(ii,num).*f(num,1);end;QF(ii,jj)=-qq+G(ii,jj).*e(ii,1)+B(ii,jj).*f(ii,1);%TEST+1QE(ii,jj)=ss+B(ii,jj).*e(ii,1)-G(ii,jj).*f(ii,1);%TEST+1end;end;end;%disp('QF');%disp(QF);%disp('QE');%disp(QE);UE=zeros((n+m),(n+m));UF=zeros((n+m),(n+m));for ii=n+1:n+mfor jj=1:(n+m)if (ii~=jj)UE(ii,jj)=0;UF(ii,jj)=0;elsess=0;qq=0;for num=1:(n+m+1)ss=ss+G(ii,num).*f(num,1)+B(ii,num).*e(num,1);qq=qq+G(ii,num).*e(num,1)-B(ii,num).*f(num,1);end;UF(ii,jj)=-2.*f(ii,1);UE(ii,jj)=-2.*e(ii,1);end;end;end;for ii=(n+1):(n+m)for jj=1:(n+m)extra_UE((ii-n),jj)=UE(ii,jj);extra_UF((ii-n),jj)=UF(ii,jj);end;end;%disp('extra_UE');%disp(extra_UE);%disp('extra_Uf');%disp(extra_UF);Jacobian=[PF,PE;QF,QE;extra_UF,extra_UE];%disp('Jacobian=');%disp(Jacobian);%creat substract resultsubstract_result=Initial_p_q_v-sum;%disp('substract_result');%disp(substract_result);%calculate delta_f_edelta_f_e=-inv(Jacobian)*substract_result; %disp(delta_f_e);for ii=1:number-1;f(ii,1)=f(ii,1)+delta_f_e(ii,1);e(ii,1)=e(ii,1)+delta_f_e(ii+number-1,1); end;if max(substract_result)<1e-4break;end ;end;%disp('substract_result');%disp(substract_result);%disp('e=');%disp(e);%disp('f=');%disp(f);for ii=1:numberuuu(ii,1)= e(ii,1).*e(ii,1)+f(ii,1).*f(ii,1);U_RESULT(ii,1)=sqrt(uuu(ii,1));end;for ii=1:numberfor jj=1:numberif ii==a(1,jj)Old_Uresult(ii,1)=U_RESULT(jj,1)end;end;end;for ii=1:numberOld_Uresult(ii,2)=ii;end;%disp('U_result');%disp(U_RESULT);disp('====================================='); disp('The last result is :')disp('===========U===================BUS-NO.'); disp('U=')disp(Old_Uresult);%calculate the anglePI=3.141592for ii=1:numberAngle(ii,1)=atan(f(ii,1)./e(ii,1))./PI*180;end;for ii=1:numberfor jj=1:numberif ii==a(1,jj)Old_Angle(ii,1)=Angle(jj,1);Old_Angle(ii,2)=ii;end;end;end;disp('=======Angle===================BUS-NO.'); disp('Angle=');disp(Old_Angle);disp('=====Try-times=======================') disp('Try-times=')disp(try_time);%disp('p====================');%disp(p);% for jj=1:number% if a(1,jj)==118% man=jj% end;%end;%disp('man=========');%disp(man)sum4=0;for jj=1:numberY_conj(number,jj)=conj(Y(number,jj));sum4=sum4+Y_conj(number,jj).*(e(jj,1)-f(jj,1)*i);end;%sum4=sum4*e(number,1);disp('===============Balance P Q=========BUS-NO');%disp(sum4);Blance_Q(1,1)=imag(sum4)*100;Blance_Q(1,2)=a(1,number);Blance_P(1,1)=real(sum4)*100;Blance_P(1,2)=a(1,number);disp('Q Of the Balance node= ');disp(Blance_Q);disp('P Of the Balance node= ')disp(Blance_P);disp('=================================BUS-NO');%calculate the Q of the P-V nodeQ_PV_node=zeros(number,2);Y_conj=conj(Y);for ii=(s+1):(s+r)for jj=1:numberQ_PV_node(ii,1)=Q_PV_node(ii,1)+(e(ii,1)+f(ii,1)*i).*(Y_conj(ii,jj).*(e(jj,1)-f(jj,1)*i));end;end;for ii=(s+1):(s+r);Q_PV_node(ii,1)=Q_PV_node(ii,1).*100+new_data1(ii,8)*i;end;disp('This program is from /breadwinner') ;for ii=1:numberold_number=a(1,ii);Q_PV_node_old(old_number,1)=Q_PV_node(ii,1);end;for ii=1:numberQ_PV_node_old(ii,1)=imag(Q_PV_node_old(ii,1));end;for ii=1:numberQ_PV_node_old(ii,2)=ii;end;disp('Q gen=');disp(Q_PV_node_old);。
22节点潮流计算matlab仿真程序
【22节点潮流计算matlab仿真程序详解】引言主题指定的22节点潮流计算matlab仿真程序是电力系统领域中的重要内容。
在本文中,我将以深入、广泛的方式来探讨这一主题,帮助您全面了解和掌握相关知识。
一、22节点潮流计算的概念1. 22节点潮流计算的基本介绍22节点潮流计算是电力系统分析中的重要部分,它是对电力系统节点之间功率、电压、相角等参数进行计算和分析的过程。
通过22节点潮流计算,可以有效评估电力系统的稳定性和可靠性。
2. 22节点潮流计算的基本原理在进行22节点潮流计算时,需要考虑节点之间的功率平衡方程、电压平衡方程等基本原理。
这些原理是潮流计算的理论基础,也是实际仿真程序设计的重要依据。
二、22节点潮流计算matlab仿真程序的设计与实现1. matlab在电力系统仿真中的应用matlab作为一种功能强大的科学计算软件,在电力系统领域有着广泛的应用。
通过matlab,可以方便地进行潮流计算、稳定性分析、拓扑优化等工作。
2. 22节点潮流计算matlab仿真程序的设计要点在设计22节点潮流计算matlab仿真程序时,需要考虑程序的模块化、可扩展性、运行效率等要点。
通过合理的程序设计,可以提高仿真程序的稳定性和可靠性。
三、22节点潮流计算matlab仿真程序的应用实例1. 22节点潮流计算matlab仿真程序的基本框架通过一份完整的22节点潮流计算matlab仿真程序,来实际演示程序的结构和实现过程。
这样可以让读者更直观地理解程序的设计和应用。
2. 22节点潮流计算matlab仿真程序的实际应用案例以一个具体的电力系统实例为例,演示22节点潮流计算matlab仿真程序的实际应用过程。
这样可以让读者更清晰地了解程序在实际工程中的价值和作用。
结束语通过本文的深度探讨和广度展示,相信您已经对22节点潮流计算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中,使用推回代法可以快速地求解一些复杂的方程组、积分和微分等问题。
以求解方程组为例,假设有以下方程组:x + y = 52x – y = 1使用推回代法求解该方程组,可以先将第一个方程式化为y = 5 – x,然后将其代入第二个方程式中,得到:2x – (5 – x) = 1化简得到3x = 6,即x = 2。
将x = 2代入第一个方程式中,得到y = 3。
因此,该方程组的解为x = 2,y = 3。
在MATLAB中,可以使用syms命令定义符号变量,使用solve命令求解方程组。
例如,求解上述方程组的代码如下:syms x ysolve(x + y == 5, 2*x - y == 1)运行代码后,MATLAB会输出方程组的解:x = 2,y = 3。
除了求解方程组,推回代法在积分、微分等计算中也有广泛的应用。
例如,对于以下积分:∫(x2 + 2x + 1)dx可以使用推回代法将其化简为∫(x + 1)2dx,然后使用二次积分公式求解。
推回代法是一种常用的代数推导方法,在MATLAB中也有广泛的应用。
使用推回代法可以简化复杂的计算过程,提高计算效率,为科研工作提供有力的支持。
matlab潮流计算
jds=IEEE(1,1);%节点数phjdh=IEEE(1,2);%平衡节点号phv=IEEE(1,3);%平衡节点电压jd=IEEE(1,4);%精度IN=size(IEEE);aa=0;ln=1;for li=3:IN(1)%读取线路参数if IEEE(li,1)>0Line(ln,:)=IEEE(li,:); ln=ln+1;endif IEEE(li,1)==0breakendendLI=li;%读取变压器参数cn=1;for ci=LI+1:IN(1)if IEEE(LI+1,1)==0trans=0;endif IEEE(ci,1)>0trans(cn,:)=IEEE(ci,:); cn=cn+1;endif IEEE(ci,1)==0breakendendif ci==LI+1CI=ci+1;else CI=ci;end%接地支路数jdn=1;for jdi=CI+1:IN(1)if IEEE(CI+1,1)==0jdzls=0;endif IEEE(jdi,1)>0jdzls(jdn,:)=IEEE(jdi,:);jdn=jdn+1;endif IEEE(jdi,1)==0breakendendif jdi==CI+1JDI=jdi+1;else JDI=jdi;end%读取节点功率数据ppn=1;for ppi=JDI+1:IN(1)if IEEE(ppi,1)>0jdgl(ppn,:)=IEEE(ppi,:);ppn=ppn+1;endif IEEE(ppi,1)==0breakendendPPI=ppi;%读取PV节点数据pvn=1;for pvi=PPI+1:IN(1)if IEEE(pvi,1)>0pvsj(pvn,:)=IEEE(pvi,:);pvn=pvn+1;endif IEEE(pvi,1)==0breakendendnline=size(Line,1);%读取线路个数ntrans=size(trans,1);%变压器个数npq=size(jdgl);Y=zeros(jds);if nline>=1for k=1:nlinet1=Line(k,2); t2=Line(k,3); b2=Line(k,6); Yl=1/(Line(k,4)+j*Line(k,5));Y(t1,t1)=Y(t1,t1)+Yl+j*b2;Y(t1,t2)=Y(t1,t2)-Yl;Y(t2,t1)=Y(t2,t1)-Yl;Y(t2,t2)=Y(t2,t2)+Yl+j*b2;endendif ntrans>=1for k=1:ntranst1=trans(k,2);t2=trans(k,3);t3=trans(k,6); Yt=1/(trans(k,4)+j*trans(k,5));Yt1=Yt/t3;Yt2=Yt*(1-t3)/(t3*t3);Yt3=Yt*(t3-1)/t3;Y(t1,t1)=Y(t1,t1)+Yt1+Yt2;Y(t1,t2)=Y(t1,t2)-Yt1;Y(t2,t1)=Y(t2,t1)-Yt1;Y(t2,t2)=Y(t2,t2)+Yt1+Yt3;endendG=real(Y);B=imag(Y);%设各个节点电压for ii=1:jdsf(ii)=0;u(ii)=1;endfor ii=1:pvsju(pvsj(ii,2))=pvsj(ii,3);endu(phjdh)=real(phv);f(phjdh)=imag(phv);npv=size(pvsj);npq=size(jdgl)-npv(1);for ii=1:size(jdgl)p0(jdgl(ii,2))=jdgl(ii,3)-jdgl(ii,5);q0(jdgl(ii,2))=jdgl(ii,4)-jdgl(ii,6);enddmax=1;%误差上限kn=0;while dmax>IEEE(1,4)for i1=1:jdsp(i1)=0;q(i1)=0;for j1=1:jdsif i1==phjdhbreakendp1(j1)=u(i1)*(G(i1,j1)*u(j1)-B(i1,j1)*f(j1))+f(i1)*(G(i1,j1)*f(j1 )+B(i1,j1)*u(j1));p(i1)=p1(j1)+ p(i1);q1(j1)=f(i1)*(G(i1,j1)*u(j1)-B(i1,j1)*f(j1))-u(i1)*(G(i1,j1)*f(j1 )+B(i1,j1)*u(j1));q(i1)=q1(j1)+ q(i1);endend%计算PQ节点有功,无功功率不平衡量for i1=1:jdsif i1==phjdhii1=i1;breakenddp(i1)=p0(i1)-p(i1);dq(i1)=q0(i1)-q(i1);U1(i1)=u(i1)-f(i1)*i;I(i1)=(p(i1)-q(i1)*i)./U1(i1);a(i1)=real(I(i1));b(i1)= imag(I(i1));endfor i1=ii1+1:jdsdp(i1-1)=p0(i1)-p(i1);dq(i1-1)=q0(i1)-q(i1);U1(i1-1)=u(i1)-f(i1)*i;I(i1-1)=(p(i1)-q(i1)*i)./U1(i1-1);a(i1-1)=real(I(i1-1));b(i1-1)= imag(I(i1-1));end%pq对角元素for i1=1:jds-1if i1<=npq(1)H(i1,i1)=-B(i1,i1)*u(i1)+G(i1,i1)*f(i1)+b(i1);N(i1,i1)=G(i1,i1)*u(i1)+B(i1,i1)*f(i1)+a(i1);J(i1,i1)=-G(i1,i1)*u(i1)-B(i1,i1)*f(i1)+a(i1);L(i1,i1)=-B(i1,i1)*u(i1)+G(i1,i1)*f(i1)-b(i1);YKB(i1*2-1,i1*2-1)= H(i1,i1);YKB(i1*2-1,i1*2)= N(i1,i1);YKB(i1*2,i1*2-1)= J(i1,i1);YKB(i1*2,i1*2)=L(i1,i1);endif i1>npq(1)H(i1,i1)=-B(i1,i1)*u(i1)+G(i1,i1)*f(i1)+b(i1); N(i1,i1)=G(i1,i1)*u(i1)+B(i1,i1)*f(i1)+a(i1); R(i1,i1)=2*f(i1);S(i1,i1)=2*u(i1);YKB(i1*2-1,i1*2-1)= H(i1,i1);YKB(i1*2-1,i1*2)= N(i1,i1);YKB(i1*2,i1*2-1)= R(i1,i1);YKB(i1*2,i1*2)=S(i1,i1);endend%pq非对角元素for i1=1:jds-1for j1=1:jds-1if i1~=j1if i1<=npqH(i1,j1)=-B(i1,j1)*u(i1)+G(i1,j1)*f(i1);N(i1,j1)=G(i1,j1)*u(i1)+B(i1,j1)*f(i1);J(i1,j1)=-B(i1,j1)*f(i1)-G(i1,j1)*u(i1);L(i1,j1)=G(i1,j1)*f(i1)-B(i1,j1)*u(i1);YKB(i1*2-1,j1*2-1)= H(i1,j1);YKB(i1*2-1,j1*2)= N(i1,j1);YKB(i1*2,j1*2-1)= J(i1,j1);YKB(i1*2,j1*2)=L(i1,j1);endif i1>npq(1)H(i1,j1)=-B(i1,j1)*u(i1)+G(i1,j1)*f(i1);N(i1,j1)=G(i1,j1)*u(i1)+B(i1,j1)*f(i1);R(i1,j1)=0;S(i1,j1)=0;YKB(i1*2-1,j1*2-1)= H(i1,j1);YKB(i1*2-1,j1*2)= N(i1,j1);YKB(i1*2,j1*2-1)= R(i1,j1);YKB(i1*2,j1*2)=S(i1,j1);endendendendYKB%求修正向量for i1=1:jds-1if i1<=npqdpq(2*i1-1,1)=dp(i1);dpq(2*i1,1)=dq(i1);elsedpq(2*i1-1)=dp(i1);dpq(2*i1,1)=0;endenddfu=YKB\dpqdmax=max(abs(dfu));nn=1;%nn避免与平衡节点重叠for i1=1:jdsif i1==phjdhii1=i1+1;breakendif i1~=phjdhdf(nn)=dfu(2*i1-1,1);du(nn)=dfu(2*i1,1);endnn=nn+1;endfor i1=ii1:jdsdf(i1-1)=dfu(2*i1-1,1); du(i1)=dfu(2*i1-1,1);endfor i1=1:jdsf(i1)=f(i1)+df(i1);u(i1)=u(i1)+du(i1);endkn=kn+1end%while的%求平衡节点功率for i1=1:jdsU(i1)=u(i1)+f(i1)*i;endS11=0;for i1=1:jdsss=conj(Y(1,i1)).*conj(U(i1));S11=S11+ss;endS1=u(1)*S11;%平衡节点功率nn=1;for i1=1:jdsif i1~=phjdhp0(nn)=p0(i1);q0(nn)=q0(i1);endif i1==phjdhp0(nn)=real(S1);q0(nn)=imag(S1);endnn=nn+1;endP(i1)=p0(i1)+q0(i1)*i;%求网络总损耗SP=0;for i1=1:jdsSP=P(i1)+SP;enddS=S1+SP;%网络总损耗%求输电效率a=0;b=0;for i1=1:jdsif p0(i1)>0a=a+p0(i1);elseb=b+p0(i1);endendn=abs(b)/(real(S1)+a)*100;%输电效率%求线路功率for i1=1:jdsfor j1=1:jdsS(i1,j1)=U(i1)*(conj(U(i1))-conj(U(j1)))*conj(-Y(i1,j1));%线路功率endendS。
matlab电力系统潮流计算
电力系统潮流计算是电力系统分析和运行中的重要环节。
潮流计算主要用于确定电力系统中各个节点的电压、功率和潮流方向,以便进行功率平衡、电压稳定和线路负荷等方面的分析和评估。
MATLAB作为一种强大的数学建模和仿真工具,被广泛应用于电力系统潮流计算的研究和实际工程中。
本文将介绍MATLAB在电力系统潮流计算中的应用,包括算法原理、建模步骤和实例分析等内容。
一、潮流计算的基本原理潮流计算是指在给定电力网拓扑结构、负荷信息和发电机功率的情况下,通过迭代计算求解节点电压的复数值,以确定各节点的电压幅值和相角,进而计算各支路和各节点上的有功和无功功率。
潮流计算的基本原理是基于电力系统的潮流方程和节点功率平衡等基本理论,通过建立节点电压的复数方程组,利用迭代计算方法求解该方程组,从而得到节点的电压和功率信息。
二、MATLAB在潮流计算中的应用MATLAB作为一种功能强大的数学建模和仿真工具,具有丰富的数学计算函数和图形显示功能,适合于电力系统潮流计算的建模和仿真。
在MATLAB环境下,可以利用其矩阵运算、方程求解和数据可视化等功能,实现电力系统潮流计算的数学模型和算法的实现。
下面将介绍MATLAB在电力系统潮流计算中的具体应用步骤。
1. 建立电力系统潮流计算的数学模型在MATLAB环境下,首先需要建立电力系统潮流计算的数学模型,包括节点电压方程、支路潮流方程、节点功率平衡方程等。
利用MATLAB的矩阵运算和符号计算工具,可以将电力系统的节点和支路参数、负荷信息、发电机功率等数据表示为矩阵形式,建立电力系统潮流计算的数学模型。
2. 编写潮流计算的求解算法在建立电力系统潮流计算的数学模型后,需要编写潮流计算的求解算法。
在MATLAB环境下,可以利用其丰富的数学计算函数和优化工具,实现潮流计算的迭代求解算法,包括高斯-赛德尔迭代法、牛顿-拉夫逊迭代法等。
通过编写求解算法,可以实现电力系统潮流计算的数值求解过程。
3. 进行潮流计算的仿真实验在完成潮流计算的求解算法后,可以利用MATLAB进行潮流计算的仿真实验。
基于MATLAB的潮流计算
目录1.摘要 (3)2.题目原始资料 (4)3.题目分析 (6)4.题目求解 (7)1)根据题意要求画出等值电路 (7)2)读程序画出拉夫逊法的流程图 (8)3)变电所负荷为题目所给数据进行求解 (8)4)编写程序并运行 (10)5)具体调压调损耗过程 (10)1.改变变压器变比调压 (10)2.改变发电机机端电压调压 (12)3.负荷按照一定比例变化的潮流计算分析 (15)4.轮流断开支路双回线中的一条的潮流计算 (19)5.仿真并比较 (28)6.设计心得 (30)7.参考文献 (31)摘要本文运用MATLAB软件进行潮流计算,对给定题目进行分析计算,再应用DDRTS软件,构建系统图进行仿真,最终得到合理的系统潮流。
潮流计算是电力系统最基本最常用的计算。
根据系统给定的运行条件,网络接线及元件参数,通过潮流计算可以确定各母线的电压幅值和相角,各元件流过的功率,整个系统的功率损耗。
潮流计算是实现电力系统安全经济发供电的必要手段和重要工作环节。
因此,潮流计算在电力系统的规划计算,生产运行,调度管理及科学计算中都有着广泛的应用。
首先,画出系统的等效电路图,在计算出各元件参数的基础上,应用牛顿—拉夫逊Newton-Raphson法以及MATLAB软件进行计算对给定系统图进行了四种不同负荷下的潮流计算,经过调节均得到符合电压限制及功率限制的潮流分布。
其次,牛顿—拉夫逊Newton-Raphson法具有较好的收敛性,上述计算过程经过四到五次迭代后均能收敛。
根据运算结果,分析各支路损耗和系统总损耗。
最后,应用DDRTS软件,构建系统图,对给定负荷重新进行分析,潮流计算后的结果也能满足相应的参数要求。
关键词:牛顿-拉夫逊法 MATLAB DDRTS 潮流计算一、 题目原始资料:1.系统图:两个发电厂分别通过变压器和输电线路与四个变电所相连。
2、发电厂资料:母线1和2为发电厂发高压母线,发电厂一总装机容量为(300MW ),母线3为机压母线上装机容量为(100MW ),最大负荷和最小负荷分别为50MW 和20MW ,发电厂二总装机容量为(200MW )3、变电所资料:(一)变电所1、2、3、4低压母线的电压等级分别为:35KV 10KV 35KV 10KV (二)变电所的负荷分别为: 50MW 50MW 40MW 70MW变电所1 变电所2母线电厂一 电厂二(三)每个变电所的功率因数均为cos φ=0.85;(四)变电所1和变电所3分别配有两台容量为75MVA 的变压器,短路损耗414KW ,短路电压(%)=16.7;变电所2和变电所4分别配有两台容量为63MVA 的变压器,短路损耗为245KW ,短路电压(%)=10.5;4、输电线路资料:发电厂和变电所之间的输电线路的电压等级及长度标于图中,单位长度的电阻为Ω17.0,单位长度的电抗为Ω0.402,单位长度的电纳为S -610*2.78。
(完整版)基于MATLAB牛顿拉夫逊法进行潮流计算
>> %本程序的功能是用牛顿拉夫逊法进行潮流计算n=input('请输入节点数:n=');nl=input('请输入支路数:nl=');isb=input('请输入平衡母线节点号:isb=');pr=input('请输入误差精度:pr=');B1=input('请输入由各支路参数形成的矩阵:B1='); B2=input('请输入各节点参数形成的矩阵:B2=');Y=zeros(n); e=zeros(1,n);f=zeros(1,n);V=zeros(1,n); O=zeros(1,n);S1=zeros(nl);for i=1:nlif B1(i,6)==0p=B1(i,1);q=B1(i,2);else p=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;Y(p,p)=Y(p,p)+1./B1(i,3)+B1(i,4)./2;end%求导纳矩阵disp('导纳矩阵Y=');disp(Y);G=real(Y);B=imag(Y);for i=1:ne(i)=real(B2(i,3));f(i)=imag(B2(i,3));V(i)=B2(i,4);endfor i=1:nS(i)=B2(i,1)-B2(i,2);B(i,i)=B(i,i)+B2(i,5);endP=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~=isbC(i)=0;D(i)=0;for j1=1:nC(i)= C(i)+G(i,j1)*e(j1)-B(i,j1)*f(j1);D(i)= D(i)+G(i,j1)*f(j1)+B(i,j1)*e(j1);endP1=C(i)*e(i)+f(i)*D(i);Q1=f(i)*C(i)-D(i)*e(i);V2=e(i)^2+f(i)^2;%117页malihong打if B2(i,6)~=3DP=P(i)-P1;DQ=Q(i)-Q1;for j1=1:nif j1~=isb&j1~=iX1=-G(i,j1)*e(i)-B(i,j1)*f(i);X2=B(i,j1)*e(i)-G(i,j1)*f(i);X3=X2;X4=-X1;p=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~=isbX1=-C(i)-G(i,i)*e(i)-B(i,i)*f(i);X2=-D(i)+B(i,i)*e(i)-G(i,i)*f(i);X3=D(i)+B(i,i)*e(i)-G(i,i)*f(i);X4=-C(i)+G(i,i)*e(i)+B(i,i)*f(i);p=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;endendelseDP=P(i)-P1;DV=V(i)^2-V2;for j1=1:nif j1~=isb&j1~=iX1=-G(i,j1)*e(i)-B(i,j1)*f(i);X2=B(i,j1)*e(i)-G(i,j1)*f(i);X5=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~=isbX1=-C(i)-G(i,i)*e(i)-B(i,i)*f(i);X2=-D(i)+B(i,i)*e(i)-G(i,i)*f(i);%118页孟打印X5=-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:N0k1=k+1;N1=N;for k2=k1:N1J(k,k2)=J(k,k2)./J(k,k);endJ(k,k)=1;if k~=3;k4=k-1;for k3=3:k4for k2=k1:N1J(k3,k2)= J(k3,k2)-J(k3,k)*J(k,k2);endJ(k3,k)=0;endif k==N0,break;endfor 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 %119页zhengtong打%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);endfor k=3:N0DET=abs(J(k,N));if DET>=prIT2=IT2+1;endendICT2(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);shita(k)=atan(f(k)./e(k))*180/pi;E(k)=e(k)+f(k)*j;enddisp('各节点的实际电压标么值E为(节点号从小到大排列):');disp(E);disp('各节点的电压大小V为(节点号从小到大排列):');disp(V);disp('各节点的电压相角时shita为(节点号从小到大排列):');disp(shita);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);end %120页打disp('各节点的功率S为(节点号从小到大排列):');disp(S);disp('各条支路的首端功率Si为(顺序同您输入B1时一样):');for i=1:nlif B1(i,6)==0p=B1(i,1);q=B1(i,2);else p=B1(i,2);q=B1(i,1);endSi(p,q)=E(p)*(conj(E(p))*conj(B1(i,4)./2)+(conj(E(p)*B1(i,5))-conj(E(q)))*conj(1./(B1(i,3)*B1(i, 5))));disp(Si(p,q));enddisp ('各条支路的末端功率Sj为(顺序同您输入B1时一样):');for i=1:nlif B1(i,6)==0p=B1(i,1);q=B1(i,2);else p=B1(i,2);q=B1(i,1);endSj(q,p)=E(q)*(conj(E(q))*conj(B1(i,4)./2)+(conj(E(q)./B1(i,5))-conj(E(p)))*conj(1./(B1(i,3)*B1(i, 5))));disp(Sj(q,p));enddisp('各条支路的功率损耗DS为(顺序同您输入B1时一样):' );for i=1:nlif B1(i,6)==0p=B1(i,1);q=B1(i,2);else p=B1(i,2);q=B1(i,1);endDS(i)=Si(p,q)+Sj(q,p);disp(DS(i));end。
matlab实验 电力系统潮流计算
实验一 电力系统潮流计算一、一元非线性方程求解例1-1 试求非线性方程 )(x f =0 的解。
解:(1)取一个合理的初值)0(x 作为方程)(x f =0的解,如果正好0)()0(=xf ,则方程的解*x =)0(x。
否则做下一步。
(2)取)0()0(x x∆+为第一次修正值。
)0(x ∆充分小,将)()0()0(x x f ∆+在)0(x 附近展开成泰勒级数,并且将的高次项略去,取其线性部分,得到)()0()0(x x f ∆+≈)0()0()0()()(x x f x f ∆'+=0 (1-1)上式表明,在)0(x处把非线性方程0)(=x f 线性化,变成求)0(x附近修正量)0(x∆的线性方程,这个方程也称为修正方程式。
从而可求得)()()0()0()0(x f x f x'-=∆ (1-2) 所以,可以确定第一次修正值)0()0()1(x x x∆+=。
若0)()1(=x f ,则)1(*x x =。
(3)若0)()1(≠x f ,则用步骤(2)阐述的方法由)1(x 确定出第二次修正值)2(x 。
如此迭代下去,在第)1(+k 次迭代时,)1(+k x应为)()()1(k k k xxx∆+=+=)()()()()(k k k x f x f x'- (1-3) 式中k 为迭代次数。
如果ε<+)()1(k x f (ε是预设的一个小的正数,如510-=ε),则方程的解)1(*+=k x x ,迭代停止。
例1-2 应用牛顿—拉夫逊法求解非线性方程0122)(23=-+-=x x x x f解:设初始近似解0.2)0(=x,首先根据(1-1)计算)()0(x f10)()0(-=x f然后计算)()0(xf '5)()0(='x f根据(1-2)式计算)0(x∆2510)()()0()0()0(=--='-=∆x f x f x再根据(1-3)式计算)1(x ∆422)0()0()1(=+=∆+=x x x重复以上计算直到5)1(10)(-+<k x f ,得到的计算过程量和结果见表1-1。
潮流计算(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潮流计算%线路数据line=[1-节点编号2-线路首端节点号3-线路末端节点号4-支路电阻5-支路电抗6-支路电纳(注意:此处取的是b/2)]line=[1120.040.250.252130.10.3503230.080.300.25];%变压器数据transform=[1-支路编号2-支路首节点编号3-支路末节点编号4-支路电阻(p.u.)5-支路电抗(p.u.)6-变压器变比(p.u.)]transform=[12400.0151.0523500.031.05];%数据预处理nbus=5;%节点数nline=size(line,1);%线路个数ntrans=size(transform,1);%变压器个数slack=5;%均衡节点号npq=4;%pq节点的个数ss=0;%计算节点导纳矩阵y=zeros(nbus);ifnline>=1%推论与否存有线路fork=1:nline%以下处理线路t1=line(k,2);t2=line(k,3);b2=line(k,6);%分别抽出线路的首端节点编号t1、末端节点编号t2和对地电纳b2yl=1/(line(k,4)+j*line(k,5));%计算线路的支路电导yly(t1,t1)=y(t1,t1)+yl+j*b2;%修正第k条线路首端节点的自导纳y(t1,t2)=y(t1,t2)-yl;%修正第k条线路首端节点与末端节点之间的互磁滞y(t2,t1)=y(t2,t1)-yl;%修正第k条线路末端节点与首端节点之间的互磁滞y(t2,t2)=y(t2,t2)+yl+j*b2;%修正第k条线路末端节点的自磁滞endendifntrans>=1%判断是否存在变压器fork=1:ntrans%以下处理变压器t1=transform(k,2);t2=transform(k,3);t3=transform(k,6);%分别抽出变压器的首端节点编号t1、末端节点编号t2和变比t3yt=1/(transform(k,4)+j*transform(k,5));yt1=yt/t3;yt2=yt*(1-t3)/(t3*t3);yt3=yt*(t3-1)/t3;y(t1,t1)=y(t1,t1)+yt1+yt2;y(t1,t2)=y(t1,t2)-yt1;y(t2,t1)=y(t2,t1)-yt1;y(t2,t2)=y(t2,t2)+yt1+yt3;endendg=real(y);b=imag(y);%区分节点磁滞矩阵的实部和虚部gb%赋初值delt(1)=0;delt(2)=0;delt(3)=0;delt(4)=0;u(1)=1;u(2)=1;u(3)=1;u(4)=1;p(1)=-0.30;q(1)=-0.18;p(2)=-0.55;q(2)=-0.13;p(3)=0;q(3)=0;p(4)=0.5;q(4)=1.10;p(5)=0.8;q(5)=0.50;k=0;precision=1;npq=4;%npq分别就是网络中的pq节点数%[unbalance]=-[jacobi][correction]whileprecision>0.00001%设定误差上限,判断是否继续迭代u(5)=1.06;delt(5)=0;%设定平衡节点电压相角与幅值k;u;delt;form=1:npqforn=1:nbuspt(n)=u(m)*u(n)*(g(m,n)*cos(delt(m)-delt(n))+b(m,n)*sin(delt(m)-delt(n)));%由节点电压求出的pq节点转化成军功功率qt(n)=u(m)*u(n)*(g(m,n)*sin(delt(m)-delt(n))-b(m,n)*cos(delt(m)-delt(n)));%由节点电压求得的pq节点注入无功功率endunbalance(2*m-1)=p(m)-sum(pt);%排序pq节点军功功率不平来衡量unbalance(2*m)=q(m)-sum(qt);%排序pq节点无功功率不平来衡量end%[unbalance]是节点不平衡量矩阵form=1:npqforn=1:nbush0(n)=u(m)*u(n)*(g(m,n)*sin(delt(m)-delt(n))-b(m,n)*cos(delt(m)-delt(n)));n0(n)=-u(m)*u(n)*(g(m,n)*cos(delt(m)-delt(n))+b(m,n)*sin(delt(m)-delt(n)));j0(n)=-u(m)*u(n)*(g(m,n)*cos(delt(m)-delt(n))+b(m,n)*sin(delt(m)-delt(n)));l0(n)=-u(m)*u(n)*(g(m,n)*sin(delt(m)-delt(n))-b(m,n)*cos(delt(m)-delt(n)));endh(m,m)=sum(h0)-u(m)^2*(g(m,m)*sin(delt(m)-delt(m))-b(m,m)*cos(delt(m)-delt(m)));n(m,m)=sum(n0)+u(m)^2*(g(m,m)*cos(delt(m)-delt(m))+b(m,m)*sin(delt(m)-delt(m)))-2*u(m)^2*g(m,m);j(m,m)=sum(j0)+u(m)^2*(g(m,m)*cos(delt(m)-delt(m))+b(m,m)*sin(delt(m)-delt(m)));l(m,m)=sum(l0)+u(m)^2*(g(m,m)*sin(delt(m)-delt(m))-b(m,m)*cos(delt(m)-delt(m)))+2*u(m)^2*b(m,m);jacobi(2*m-1,2*m-1)=h(m,m);jacobi(2*m-1,2*m)=n(m,m);jacobi(2*m,2*m-1)=j(m,m);jacobi(2*m,2*m)=l(m,m);end%计算m=n情况下的jacobi矩阵中的子矩阵元素form=1:npqforn=1:npqifm==nelseh(m,n)=-u(m)*u(n)*(g(m,n)*sin(delt(m)-delt(n))-b(m,n)*cos(delt(m)-delt(n)));j(m,n)=u(m)*u(n)*(g(m,n)*cos(delt(m)-delt(n))+b(m,n)*sin(delt(m)-delt(n)));n(m,n)=-j(m,n);l(m,n)=h(m,n);jacobi(2*m-1,2*n-1)=h(m,n);jacobi(2*m-1,2*n)=n(m,n);jacobi(2*m,2*n-1)=j(m,n);jacobi(2*m,2*n)=l(m,n);endendend%排序m≠n情况下的jacobi矩阵中的子矩阵元素correction=-jacobi\\(unbalance');%计算电压相角和幅值的修正量precision=max(abs(correction));%取误差最大值form=1:npqdelt(m)=delt(m)+correction(2*m-1);%修正pq节点电压相角u(m)=u(m)+correction(2*m);%修正pq节点电压幅值endk=k+1;%运算轮数+1endk,u,delt,jacobi,precisionform=1:nbusu(m)=u(m)*(cos(delt(m))+j*sin(delt(m)));%采用直角坐标系表示电压i(m)=y(nbus,m)*u(m);%计算注入平衡节点的电流endsslack=u(nbus)*sum(conj(i))%排序转化成均衡节点的功率form=1:nbusforn=1:nbuss(m,n)=u(m)*(conj(u(m))-conj(u(n)))*conj(-y(m,n));%排序线路功率ploss(m,n)=u(m)*u(n)*(g(m,n)*cos(delt(m)-delt(n))+b(m,n)*sin(delt(m)-delt(n)));endends%表明线路功率矩阵,s(m,n)则表示假设功率由节点m流向节点n%若数值为+则说明实际功率流向与假设方向相同,若数值为-则说明实际功率流向与假设方向相反。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
潮流例题:根据给定的参数或工程具体要求(如图),收集和查阅资料;学习相关软件(软件自选:本设计选择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)静态地按最少出线支路数编号
这种方法由称为静态优化法。
在编号以前。
首先统计电力网络个节点的出线支路数,然后,按出线支路数有少到多的节点顺序编号。
当由n 个节点的出线支路相同时,则可以按任意次序对这n 个节点进行编号。
这种编号方法的根据是导纳矩阵中,出线支路数最少的节点所对应的行中非零元素也2)动态地按增加出线支路数最少编号在上述的方法中,各节点的出线支路数是按原始网络统计出来的,在编号过程中认为固定不变的,事实上,在节点消去过程中,每消去一个节点以后,与该节点相连的各节点的出线支路数将发生变化(增加,减少或保持不变)。
因此,如果每消去一个节点后,立即修正尚未编号节点的出线支路数,然后选其中支路数最少的一个节点进行编号,就可以预期得到更好的效果,动态按最少出线支路数编号方法的特点就是按出线最少原则编号时考虑了消去过程中各节点出线支路数目的变动情况。
3.MATLAB编程应用
Matlab 是“Matrix Laboratory”的缩写,主要包括:一般数值分析,矩阵运算、数字信号处理、建模、系统控制、优化和图形显示等应用程序。
由于使用Matlab 编程运算与人进行科学计算的思路和表达方式完全一致,所以不像学习高级语言那样难于掌握,而且编程效率和计算效率极高,还可在计算机上直接输出结果和精美的图形拷贝,所以它的确为一高效的科研助手。
二、设计内容
1.设计流程图
2.程序
clear;clc
%重新编号,把原题中的节点1,2,3,4,5重新依次编号为5,1,2,3,4,其中1-4号为PQ节点,5号为平衡节点
y=0;
%输入原始数据,求节点导纳矩阵
y (1,2)=1/+; y (1,3)=1/+; y (1,4)=1/+;
y(1,5)=1/+;
y(2,3)=1/+;y(2,5)=1/+;
y(3,4)=1/+;
y(4,5)=0;
for i=1:5
for j=i:5
y(j,i)=y(i,j);
end
end
Y=0;
%求互导纳
for i=1:5
for j=1:5
if i~=j
Y(i,j)=-y(i,j);
end
end
end
%求自导纳
for i=1:5
Y(i,i)=sum(y(i,:));
end
Y %Y 为导纳矩阵
G=real(Y);
B=imag(Y);
%原始节点功率
S(1)=+;
S(2)=赋初值
U=ones(1,5);U(5)=;
e=zeros(1,5);
ox=ones(8,1);fx=ones(8,1);
count=0 %计算迭代次数
while max(fx)>1e-5
for i=1:4
for j=1:4
H(i,j)=0;N(i,j)=0;M(i,j)=0;L(i,j)=0;oP(i)=0;oQ(i)=0;
end
end
for i=1:4
for j=1:5 oP(i)=oP(i)-U(i)*U(j)*(G(i,j)*cos(e(i)-e(j))+B(i,j)*sin(e(i)-e(j)));
oQ(i)=oQ(i)-U(i)*U(j)*(G(i,j)*sin(e(i)-e(j))-B(i,j)*cos(e(i)-e(j)));
end
oP(i)=oP(i)+P(i); oQ(i)=oQ(i)+Q(i);
end
fx=[oP,oQ]';
%求雅克比矩阵
%当i~=j时候求H,N,M,L 如下:
for i=1:4
for j=1:4
if i~=j H(i,j)=-U(i)*U(j)*(G(i,j)*sin(e(i)-e(j))-B(i,j)*cos(e(i)-e(j)));
N(i,j)=-U(i)*U(j)*(G(i,j)*cos(e(i)-e(j))+B(i,j)*sin(e(i)-e(j)));
L(i,j)=H(i,j);
M(i,j)=-N(i,j);
end
end
end
H,N,M,L
%当i=j 时H,N,M,L如下:
for i=1:4
for j=1:5
if i~=j
H(i,i)=H(i,i)+U(i)*U(j)*(G(i,j)*sin(e(i)-e(j))-B(i, j)*cos (e(i)-e(j)));
N(i,i)=N(i,i)-U(i)*U(j)*(G(i, j)*cos(e(i)-e(j))+B(i,j)*sin(e(i)-e(j)));
M(i,i)=M(i,i)-U(i)*U(j)*(G(i,j)*cos(e(i)-e(j))+B(i,j)*sin(e(i)-e(j)));
L(i,i)=L(i,i)-U(i)*U(j)*(G(i,j)*sin(e(i)-e(j))-B(i,j)*cos(e(i)-e(j)));
end
end
N(i,i)=N(i,i)-2*(U(i))^2*G(i,i);
L(i,i)=L(i,i)+2*(U(i))^2*B(i,i);
end
J=[H,N;M,L] %J 为雅克比矩阵
ox=-((inv(J))*fx);
for i=1:4
oe(i)=ox(i); oU(i)=ox(i+4)*U(i);
end
for i=1:4
e(i)=e(i)+oe(i); U(i)=U(i)+oU(i);
end
count=count+1;
end
ox,U,e,count
%求节点注入的净功率
i=5;
for j=1:5
P(i)=U(i)*U(j)*(G(i,j)*cos(e(i)-e(j))+B(i,j)*sin(e(i)-e(j)))+P(i);
Q(i)=U(i)*U(j)*(G(i,j)*sin(e(i)-e(j))-B(i,j)*cos(e(i)-e(j)))+Q(i);
end
S(5)=P(5)+Q(5)*sqrt(-1);
S
%求节点注入电流
I=Y*U'
3.运行结果
Y值:
迭代过程:
电压值:
平衡节点注入功率及电流:。