收藏 分销(赏)

matlab三机九节点电力系统仿真(带程序).doc

上传人:天**** 文档编号:2645654 上传时间:2024-06-03 格式:DOC 页数:18 大小:607.54KB 下载积分:8 金币
下载 相关 举报
matlab三机九节点电力系统仿真(带程序).doc_第1页
第1页 / 共18页
matlab三机九节点电力系统仿真(带程序).doc_第2页
第2页 / 共18页


点击查看更多>>
资源描述
(完整版)matlab三机九节点电力系统仿真(带程序) 三机九节点电力系统 暂态仿真 学院:自动化学院 专业:电气工程专业 学号: 姓名: 授课教师:江宁强 一、摘要 电力系统仿真计算己经成为电力系统设计、运行与控制中不可缺少的手段。通过设置不同故障类型、不同故障地点运用仿真技术可以对电力系统的暂态稳定进行分析。本文采用IEEE 3机9节点的经典多机模型,基于隐式梯形积分法对系统发生三相金属性短路故障进行仿真,分析系统在这种情况下的暂态稳定。发电机模型采用经典的二阶模型;负荷采用恒定阻抗负荷。在Matlab2010上编写程序进行调试和运行。 电力系统是由不同类型的发电机组、多种电力负荷、不同电压等级的电力网络等组成的十分庞大复杂的动力学系统.其暂态过渡过程不仅包括电磁方面的过渡过程,而且还有机电方面的过渡过程。由此可见,电力系统的数学模型是一个强非线性的高维状态方程组.在动态稳定仿真中使用简单的电力系统模型,通过仿真计算分析说明,此仿真方法可以进行简单的电力系统暂态分析,对提高电力系统暂态稳定具有重要意义。 二、案例 本次课程主要应用P. M。 Anderson and A. A。 Fouad编写的《Power System Control and Stability》一书中所引用的Western System Coordinated Council (WSCC)三机九节点系统模型。 系统电路结构拓扑图如下: 图2-1 3机9节点系统 系统数据其中,节点数据如下: 节点号 有无负载 类型 电压 相角 有功负荷 无功负荷 有功出力 无功出力 电压基准 期望电压 N=[1 0 3 1.0400 0。00 0。00 0。00 71.60 27.00 16。50 1。040 2 0 2 1。0250 0.00 0。00 0。00 163.00 6。70 18.00 1.025 3 0 2 1。0250 0.00 0。00 0。00 85.00 -10.90 13.80 1.025 4 0 0 1。0000 0.00 0.00 0。00 0。00 0。00 230。00 1.026 5 1 0 1。0000 0。00 125。00 50。00 0.00 0.00 0.00 0.996 6 1 0 1.0000 0.00 90.00 30。00 0.00 0.00 0。00 1。013 7 0 0 1。0000 0.00 0.00 0.00 0。00 0。00 230。00 1。026 8 1 0 1.0000 0.00 100。00 35。00 0.00 0。00 0.00 1.016 9 0 0 1。0000 0.00 0。00 0.00 0。00 0.00 230.00 1。032]; %支路数据 % 从 到 电阻 电抗 容纳 类型 变比 B=[1 4 0。0 0。0576 0。0 1 1 2 7 0。0 0。0625 0。0 1 1 3 9 0.0 0。0586 0.0 1 1 4 5 0。010 0.085 0。176 0 0 4 6 0。017 0。092 0。158 0 0 5 7 0。032 0.161 0。306 0 0 6 9 0。039 0。170 0。358 0 0 7 8 0。0085 0。072 0.149 0 0 8 9 0。0119 0.1008 0。209 0 0]; 发电机数据如下: % 发电机 母线 Xd Xd' Td0' Xq Xq' Tq0’ Tj Xf Ge=[ 1 1 0.1460 0。0608 8。96 0。0969 0.0969 0 47。28 0。0576 2 2 0。8958 0。1198 6.00 0.8645 0.1969 0.535 12。80 0。0625 3 3 1.3125 0。1813 8。59 1.2578 0。2500 0.600 6.02 0.0585]; 三、仿真框图 在仿真之前,首先,应明确仿真的所要到达的结果,即仿真目标:本此仿真的结果主要是得到发电机攻角、转速随时间变化的值,包括故障前、故障中、故障后。故障前,系统处于稳定状态,发电机的攻角、转速基本稳定.而当系统发生故障以及故障切除,系统结构拓扑发生变化,系统的状态也将随时间发生变化,为了求取系统状态的变化,我们通过对系统进行简化建立数学模型,得到相关的代数一微分方程组,进行数值计算,从而得到系统状态的随时间的变化值。此次仿真的系统以发电机二阶经典模型来进行系统是数学建模,系统的 状态量为发电机攻角、发电机转速。 其次,当明确仿真目标后,我们就得明确大体的仿真框架流程. 仿真框架流程如下: 数据准备 (支路、节点、发电机) 后处理 调用ode45计算发电攻角、 转速变化情况 列写系统状态方程 (转子运动方程) 计算故障前中后发电机 内节点的导纳矩阵 发电机初值计算 潮流计算 图3—1仿真流程图 四、 仿真模型 在电力系统的机电暂态仿真中,常根据实际要求的不同,采用不同时间尺度的仿真模型,而仿真算法和采用的模型有直接的关系,下面就本次仿真实例机电暂态过程的仿真模型及其仿真算法。 一、 潮流计算 由于本文以三机九节点为模型,假定节点一为参考节点,这样就有2两个发电机的PV节点,6个PQ节点,未知量为8个节点(包括2个PV节点和6个PQ节点)的电压相角,还有6个节点(PQ节点)的电压幅值。 可以先求出Y矩阵 图4—1 Y矩阵 然后,我们列写方程,也就是利用各个节点的有功、无功功率的平衡关系,列写14个功率平衡方程。这样就能使用牛顿一拉夫逊算法来求解这14个非线性方程. 其中的关键是要计算出雅克比矩阵 图4-2雅克比矩阵 然后计算出修正量.在设定精度和最大迭代次数的前提下进行迭代,直到满足要求。 电力网络的节点功率方程可用一般形式表示如下: 牛顿拉夫逊算法修正方程 W = -JΔV 其中W是节点不平衡量向量,包括有功,无功,电压;J是雅克比矩阵;ΔV是节点电压修正量. 令 , 则极坐标形式的功率不平衡量方程 雅可比矩阵J各元素的表达式 当j≠i时: 当j=i时: 其中, 。 进行牛顿拉夫逊算法得到潮流结果 图4—3潮流结果 二、故障前中后仅含发电机内节点的导纳矩阵 图4—4故障前中后仅含发电机内节点的导纳矩阵 三、 求解电磁功率 得到故障前,故障中,故障后三个不同的导纳矩阵后,就开始计算电磁功率和机械功率,机械功率等于稳态的电磁功率中的有功分量。所以可以有 Pe=real(E*I) 如上中,E为发电机内电势,I为从发电机流出的电流. 但在参考文献Ramnarayan Patel, T. S。 Bhatti and D. P。 Kothari。MATLAB/Simulink-based transient stability analysis of a multimachine power system中给出的电磁功率计算公式为: 稳态情况下有,机械功率Pme=Pe 四、求解运动方程 发电机的运动方程可以写成常微分方程组: 其中Pmi为第i个机组故障前稳态的电磁功率.在本次仿真中Djωi为零,即阻尼为零.仿真开始,t=0时引入故障,0。083s后切除故障. 求解运动方程后得到曲线如下: 五、 结果分析 上图分别显示了各台发电机的转子角与时间的关系曲线,显示了发电机转速差的曲线,和、的曲线,由图可以看到,最大角差为,出现在处,无论是还是第二个摇摆都不大于第一个摇摆,可见系统是稳定的。 六、 程序代码 主程序: global Pm Yrun gen GenE %节点数据 %节点号 有无负载 类型 电压 相角 有功负荷 无功负荷 有功负荷 无功负荷 电压基准 期望电压 N=[1 0 3 1。0400 0.00 0。00 0.00 71.60 27。00 16。50 1.040 2 0 2 1.0250 0.00 0.00 0。00 163.00 6。70 18。00 1.025 3 0 2 1.0250 0.00 0。00 0。00 85.00 —10.90 13。80 1.025 4 0 0 1.0000 0。00 0。00 0.00 0.00 0.00 230.00 1。026 5 1 0 1。0000 0.00 125。00 50.00 0.00 0。00 0。00 0.996 6 1 0 1。0000 0.00 90。00 30.00 0.00 0.00 0.00 1。013 7 0 0 1。0000 0。00 0.00 0.00 0。00 0.00 230.00 1.026 8 1 0 1.0000 0.00 100.00 35。00 0.00 0。00 0.00 1.016 9 0 0 1.0000 0.00 0。00 0。00 0。00 0。00 230.00 1。032]; %支路数据 % 从 到 电阻 电抗 容纳 类型 变比 B=[1 4 0。0 0。0576 0.0 1 1 2 7 0。0 0.0625 0.0 1 1 3 9 0.0 0。0586 0。0 1 1 4 5 0。010 0.085 0。176 0 0 4 6 0。017 0。092 0。158 0 0 5 7 0.032 0。161 0。306 0 0 6 9 0。039 0.170 0.358 0 0 7 8 0.0085 0。072 0.149 0 0 8 9 0.0119 0.1008 0.209 0 0]; %发电机数据 % H MVA xd'*10000 node xd xq xl xad xaq xf td0' rf gen=[2364 247.5 608 1 0.1460 0。0969 0。0336 0。1124 0.0633 0.1483 8.96 0。0000439 640 192。0 1198 2 0。8958 0.8645 0.0521 0.8437 0。8124 0.9173 6.00 0.0004054 301 128。0 1813 3 1。3125 1。2578 0.0742 1.2383 1。2836 1。3555 5.89 0。0006105]; Y=zeros(9,9);%导纳矩阵 for i=1:9 a=B(i,1);b=B(i,2); if B(i,6)==0 Y(a,b)=-1。/(B(i,3)+B(i,4)*1i); Y(b,a)=—1./(B(i,3)+B(i,4)*1i); Y(a,a)=Y(a,a)+1./(B(i,3)+B(i,4)*j)+B(i,5)*1i。/2; Y(b,b)=Y(b,b)+1。/(B(i,3)+B(i,4)*j)+B(i,5)*1i./2; else Y(a,b)=—1./((B(i,3)+1i*B(i,4))*B(i,6)); Y(b,a)=—1。/((B(i,3)+1i*B(i,4))*B(i,6)); Y(a,a)=Y(a,a)+1./(B(i,3)+B(i,4)*1i); Y(b,b)=Y(b,b)+1。/(B(i,3)+B(i,4)*j*B(i,6)^2)+B(i,5)*1i./2; end end %导纳矩阵 for T=1:100 [dP,dQ]=Caoliu(N,Y);%潮流 J=Ykb(N,Y);%雅克比矩阵 U=zeros(6); for i=4:9 U(i-3,i—3)=N(i,4); end dAngU=J\[dP;dQ]; dAng=dAngU(1:8,1); dU=U*(dAngU(9:14,1)); N(4:9,4)=N(4:9,4)—dU; N(2:9,5)=N(2:9,5)-dAng; if(max(abs(dU))<0。00001)&&(max(abs(dAng))〈0。00001) break end end [Yc,Yb,Ya]=Ynew(gen,N,B,Y); GEgj=zeros(1,3); GenE=zeros(1,3); for i=1:3 GenE(1,i)=abs(N(i,4)*exp(1i*N(i,5))+1i*gen(i,3)/10000*conj(((N(i,8)/100+1i*N(i,9)/100)/(N(i,4)*exp(1i*N(i,5)))))); GEgj(1,i)=angle(N(i,4)*exp(1i*N(i,5))+1i*gen(i,3)/10000*conj(((N(i,8)/100+1i*N(i,9)/100)/(N(i,4)*exp(1i*N(i,5)))))); end Yrun=zeros(3); Pm=zeros(1,3); for i=1:3 Pm(1,i)=N(i,8)。/100; end options=odeset(’RElTOL’,1e-10); %设置精度 X0=[GEgj(1),GEgj(2),GEgj(3),2*pi*60*ones(1,3)]; t0=0; tc=0。083; tspan1=[t0,tc]; Yrun=Yb; [T1,Y1]=ode45('fzz',tspan1,X0,options); X1=Y1(end,:); tf=2; tspan2=[tc,tf]; Yrun=Ya; [T2,Y2]=ode45('fzz',tspan2,X1,options); T=[T1;T2]; Y12=[Y1;Y2]; subplot(3,1,1); plot(T,Y12(:,1)*180/pi,T,Y12(:,2)*180/pi,T,Y12(:,3)*180/pi); %发电机功角 subplot(3,1,2); plot(T,Y12(:,5)-Y12(:,4),T,Y12(:,6)—Y12(:,4)); %发电机转速差 subplot(3,1,3); plot(T,Y12(:,2)*180/pi-Y12(:,1)*180/pi,T,Y12(:,3)*180/pi-Y12(:,1)*180/pi) %发电机攻角差 雅克比矩阵: function J=Ykb(N,Y) H=zeros(8);N1=zeros(8,6);K=zeros(6,8);L=zeros(6); for i=2:9 for j=2:9 if i~=j H(i-1,j—1)=—N(i,4)*N(j,4)*(real(Y(i,j))*sin(N(i,5)-N(j,5))—imag(Y(i,j))*cos(N(i,5)—N(j,5))); else H(i-1,j—1)=(N(i,9)—N(i,7))/100+imag(Y(i,j))*((N(i,4))^2); end end end %H for i=2:9 for j=4:9 if i~=j N1(i—1,j-3)=—N(i,4)*N(j,4)*(real(Y(i,j))*cos(N(i,5)—N(j,5))+imag(Y(i,j))*sin(N(i,5)-N(j,5))); else N1(i-1,j—3)=—(N(i,8)-N(i,6))/100—real(Y(i,j))*((N(i,4))^2); end end end %N for i=4:9 for j=2:9 if i~=j K(i—3,j—1)=N(i,4)*N(j,4)*(real(Y(i,j))*cos(N(i,5)—N(j,5))+imag(Y(i,j))*sin(N(i,5)-N(j,5))); else K(i—3,j-1)=—(N(i,8)—N(i,6))/100+real(Y(i,j))*((N(i,4))^2); end end end %K for i=4:9 for j=4:9 if i~=j L(i-3,j—3)=—N(i,4)*N(j,4)*(real(Y(i,j))*sin(N(i,5)-N(j,5))-imag(Y(i,j))*cos(N(i,5)—N(j,5))); else L(i-3,j-3)=-(N(i,9)-N(i,7))/100+imag(Y(i,j))*((N(i,4))^2); end end end %L J=[H N1;K L]; 潮流计算 function [dP,dQ]=Caoliu(N,Y) dP=zeros(8,1); dQ=zeros(6,1); for i=2:9 dP(i—1,1)=(N(i,8)—N(i,6))/100; end for i=4:9 dQ(i—3,1)=(N(i,9)-N(i,7))/100; end for i=2:9 for j =1:9 dP(i-1,1)=dP(i—1,1)-N(i,4)*N(j,4)*(real(Y(i,j))*cos(N(i,5)-N(j,5))+imag(Y(i,j))*sin(N(i,5)-N(j,5))); end end for i=4:9 for j =1:9 dQ(i—3,1)=dQ(i—3,1)—N(i,4)*N(j,4)*(real(Y(i,j))*sin(N(i,5)—N(j,5))—imag(Y(i,j))*cos(N(i,5)—N(j,5))); end end 故障前中后仅含发电机内节点的导纳矩阵: function [Yp,Yd,Ya]=Ysim(gen,N,B,Y) Yp=zeros(3);Yd=zeros(3);Ya=zeros(3); Y1=zeros(12);Y2=zeros(11);Y3=zeros(12); Y1=[zeros(3),zeros(3,9);zeros(9,3),Y]; %故障前增广 Y5=N(5,6)/100/((N(5,4)^2))-(N(5,7)/100/((N(5,4)^2)))*1i; Y6=N(6,6)/100/((N(6,4)^2))—(N(6,7)/100/((N(6,4)^2)))*1i; Y8=N(8,6)/100/((N(8,4)^2))—(N(8,7)/100/((N(8,4)^2)))*1i; %负载等效导纳 for i=1:3 Y1(i,i)= -(1/gen(i,3)*10000)*1i; Y1(i,i+3)=(1/gen(i,3)*10000)*1i; Y1(i+3,i)=Y1(i,i+3); end for i=1:3 Y1(i+3,i+3)=Y1(i+3,i+3)-(1/gen(i,3)*10000)*1i; %发电机节点修改 end Y1(3+5,3+5)=Y1(3+5,3+5)+Y5; Y1(3+6,3+6)=Y1(3+6,3+6)+Y6; Y1(3+8,3+8)=Y1(3+8,3+8)+Y8; %负载节点修改 Ynn=zeros(3);Ynr=zeros(3,9);Ynr1=zeros(3,8);Yrn=zeros(9,3);Yrn1=zeros(8,3); Yrr=zeros(9);Yrr1=zeros(8); Ynn=Y1(1:3,1:3);Ynr=Y1(1:3,4:12);Yrn=Y1(4:12,1:3);Yrr=Y1(4:12,4:12); Yp=Ynn—Ynr*(Yrr^-1)*Yrn; Y3=Y1; Y3(8,8)=Y3(8,8)—(1./(B(6,3)+B(6,4)*1i)+B(6,5)*1i/2);Y3(10,10)=Y3(10,10)—(1./(B(6,3)+B(6,4)*1i)+B(6,5)*1i/2);Y3(8,10)=0;Y3(10,8)=0; %故障后增广 Y1(10,:)=[]; Y1(:,10)=[]; Y2=Y1; %故障中增广 Ynn=Y2(1:3,1:3);Ynr1=Y2(1:3,4:11);Yrn1=Y2(4:11,1:3);Yrr1=Y2(4:11,4:11); Yd=Ynn-Ynr1*(Yrr1^—1)*Yrn1; Ynn=Y3(1:3,1:3);Ynr=Y3(1:3,4:12);Yrn=Y3(4:12,1:3);Yrr=Y3(4:12,4:12); Ya=Ynn—Ynr*(Yrr^-1)*Yrn; 求解运动方程: function xtt=fouad3(T,DX) global Pm Yrun gen GenE xtt=[DX(4)—2*pi*60;DX(5)—2*pi*60;DX(6)—2*pi*60; (Pm(1)—GenE(1)*(real(Yrun(1,1))*GenE(1)+real(Yrun(1,2))*GenE(2)*cos(DX(1)-DX(2))+real(Yrun(1,3))*GenE(3)*cos(DX(1)-DX(3))。.. +imag(Yrun(1,2))*GenE(2)*sin(DX(1)-DX(2))+imag(Yrun(1,3))*GenE(3)*sin(DX(1)-DX(3))))/2/gen(1,1)*100*2*pi*60; (Pm(2)—GenE(2)*(real(Yrun(2,2))*GenE(2)+real(Yrun(2,1))*GenE(1)*cos(DX(2)—DX(1))+real(Yrun(2,3))*GenE(3)*cos(DX(2)—DX(3)).。. +imag(Yrun(2,1))*GenE(1)*sin(DX(2)-DX(1))+imag(Yrun(2,3))*GenE(3)*sin(DX(2)-DX(3))))/2/gen(2,1)*100*2*pi*60; (Pm(3)—GenE(3)*(real(Yrun(3,3))*GenE(3)+real(Yrun(3,1))*GenE(1)*cos(DX(3)—DX(1))+real(Yrun(3,2))*GenE(2)*cos(DX(3)—DX(2)).。. +imag(Yrun(3,1))*GenE(1)*sin(DX(3)-DX(1))+imag(Yrun(3,2))*GenE(2)*sin(DX(3)—DX(2))))/2/gen(3,1)*100*2*pi*60]; 七、 总结 首先感谢任课老师江宁强老师对我仿真的指导与帮助,还要感谢在程序编写过程中给过我无私帮助的其他同学。这次课程的仿真设计实验让我学到了很多,本文中切断时间在0.083s,最终的图形和老师的有一定的误差,这是我今后要完善的地方。 刚开始y举证先是求的不准确,少了对地导纳。之后求解雅克比矩阵分块求解不是太准确。对于电磁功率如果按照文献Ramnarayan Patel, T。 S。 Bhatti and D. P。 Kothari。MATLAB/Simulink-based transient stability analysis of a multimachine power system中给出的电磁功率计算公式来计算会变得很繁琐,但经过其他同学的帮助与指点,简化了电磁功率的计算,这样一来计算量就少了很多。
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服