用Matlab计算潮流计算-电力系统分析(共11页).doc
精选优质文档-倾情为你奉上电力系统潮流上机课程设计报告 院 系: 电气工程学院 班 级: 电088班 学 号: 学生姓名: 刘东昇 指导教师: 张新松 设计周数: 两周 日期:2010年 12 月 25 日专心-专注-专业一、课程设计的目的与要求目的:培养学生的电力系统潮流计算机编程能力,掌握计算机潮流计算的相关知识要求:基本要求:1.编写潮流计算程序;2.在计算机上调试通过;3.运行程序并计算出正确结果;4.写出课程设计报告二、设计步骤:1.根据给定的参数或工程具体要求(如图),收集和查阅资料;学习相关软件(软件自选:本设计选择Matlab进行设计)。 2.在给定的电力网络上画出等值电路图。3.运用计算机进行潮流计算。4.编写设计说明书。三、设计原理1 牛顿-拉夫逊原理牛顿迭代法是取x0 之后,在这个基础上,找到比x0 更接近的方程的跟,一步一步迭代,从而找到更接近方程根的近似跟。牛顿迭代法是求方程根的重要方法之一,其最大优点是在方程f(x) = 0 的单根附近具有平方收敛,而且该法还可以用来求方程的重根、复根。电力系统潮流计算,一般来说,各个母线所供负荷的功率是已知的,各个节点电压是未知的(平衡节点外)可以根据网络结构形成节点导纳矩阵,然后由节点导纳矩阵列写功率方程,由于功率方程里功率是已知的,电压的幅值和相角是未知的,这样潮流计算的问题就转化为求解非线性方程组的问题了。为了便于用迭代法解方程组,需要将上述功率方程改写成功率平衡方程,并对功率平衡方程求偏导,得出对应的雅可比矩阵,给未知节点赋电压初值,一般为额定电压,将初值带入功率平衡方程,得到功率不平衡量,这样由功率不平衡量、雅可比矩阵、节点电压不平衡量(未知的)构成了误差方程,解误差方程,得到节点电压不平衡量,节点电压加上节点电压不平衡量构成新的节点电压初值,将新的初值带入原来的功率平衡方程,并重新形成雅可比矩阵,然后计算新的电压不平衡量,这样不断迭代,不断修正,一般迭代三到五次就能收敛。牛顿拉夫逊迭代法的一般步骤:(1)形成各节点导纳矩阵Y。(2)设个节点电压的初始值U和相角初始值e 还有迭代次数初值为0。(3)计算各个节点的功率不平衡量。(4)根据收敛条件判断是否满足,若不满足则向下进行。(5)计算雅可比矩阵中的各元素。(6)修正方程式个节点电压(7)利用新值自第(3)步开始进入下一次迭代,直至达到精度退出循环。(8)计算平衡节点输出功率和各线路功率2 网络节点的优化)静态地按最少出线支路数编号这种方法由称为静态优化法。在编号以前。首先统计电力网络个节点的出线支路数,然后,按出线支路数有少到多的节点顺序编号。当由n 个节点的出线支路相同时,则可以按任意次序对这n 个节点进行编号。这种编号方法的根据是导纳矩阵中,出线支路数最少的节点所对应的行中非零元素也)动态地按增加出线支路数最少编号在上述的方法中,各节点的出线支路数是按原始网络统计出来的,在编号过程中认为固定不变的,事实上,在节点消去过程中,每消去一个节点以后,与该节点相连的各节点的出线支路数将发生变化(增加,减少或保持不变)。因此,如果每消去一个节点后,立即修正尚未编号节点的出线支路数,然后选其中支路数最少的一个节点进行编号,就可以预期得到更好的效果,动态按最少出线支路数编号方法的特点就是按出线最少原则编号时考虑了消去过程中各节点出线支路数目的变动情况。3 MATLAB编程应用Matlab 是“Matrix Laboratory”的缩写,主要包括:一般数值分析,矩阵运算、数字信号处理、建模、系统控制、优化和图形显示等应用程序。由于使用Matlab 编程运算与人进行科学计算的思路和表达方式完全一致,所以不像学习高级语言那样难于掌握,而且编程效率和计算效率极高,还可在计算机上直接输出结果和精美的图形拷贝,所以它的确为一高效的科研助手。四、设计内容1. 设计流程图形成节点导纳矩阵设非平衡节点电压初值、e输入原始数据启动对PQ节点计算(对PV节点计算) 计算雅可比矩阵各元素Hij(k)、Nij(k)、Jij(k)、Lij(k)解修正方程,由及雅可比矩阵用牛顿-拉夫逊法求各节点的ei(k)、Ui(k)/Ui计算节点的新电压增加迭代次数count=count+1令迭代次数count=0计算平衡节点的功率及线路功率输出是否2. 程序clear;clc%重新编号,把原题中的节点1,2,3,4,5重新依次编号为5,1,2,3,4,其中1-4号为PQ节点,5号为平衡节点y=0;%输入原始数据,求节点导纳矩阵y (1,2)=1/(0.06+0.18i); y (1,3)=1/(0.06+0.18i); y (1,4)=1/(0.04+0.12i);y(1,5)=1/(0.02+0.06i);y(2,3)=1/(0.01+0.03i);y(2,5)=1/(0.08+0.24i);y(3,4)=1/(0.08+0.24i);y(4,5)=0;for i=1:5for j=i:5y(j,i)=y(i,j);endendY=0;%求互导纳for i=1:5for j=1:5if i=jY(i,j)=-y(i,j);endendend%求自导纳for i=1:5Y(i,i)=sum(y(i,:);endY %Y 为导纳矩阵G=real(Y);B=imag(Y);%原始节点功率S(1)=0.2+0.2i;S(2)=-0.45-0.15i;S(3)=-0.4-0.05i;S(4)=-0.6-0.1i;S(5)=0;P=real(S);Q=imag(S);%赋初值U=ones(1,5);U(5)=1.06;e=zeros(1,5);ox=ones(8,1);fx=ones(8,1);count=0 %计算迭代次数while max(fx)>1e-5for 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; endendfor i=1:4for 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);endoP(i)=oP(i)+P(i); oQ(i)=oQ(i)+Q(i);endfx=oP,oQ'%求雅克比矩阵%当i=j时候求H,N,M,L 如下:for i=1:4for j=1:4if 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);endendendH,N,M,L%当i=j 时H,N,M,L如下:for i=1:4for j=1:5if i=jH(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);endendN(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);endJ=H,N;M,L %J 为雅克比矩阵ox=-(inv(J)*fx);for i=1:4oe(i)=ox(i); oU(i)=ox(i+4)*U(i);endfor i=1:4e(i)=e(i)+oe(i); U(i)=U(i)+oU(i);endcount=count+1;endox,U,e,count%求节点注入的净功率i=5;for j=1:5P(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);endS(5)=P(5)+Q(5)*sqrt(-1);S%求节点注入电流I=Y*U'3. 运行结果Y值:迭代过程:电压值:平衡节点注入功率及电流:五、课程设计心得与体会在电力系统分析课程中,我们学习了电力网络的数学模型和确定解算方法。在本次课程设计中我们利用前面的基础知识进行制定计算流程和编制计算程序,实践了牛顿-拉夫逊法,体会到其用性。根据潮流计算的基本要求,对潮流计算可归纳为下面几点:(1)计算方法的可靠性或收敛性;(2)对计算速度和内存量的要求;(3)计算的方便性和灵活性。基于这几点采用了Matlab进行编程计算。电力系统潮流计算都是基于矩阵的迭代运算,而Matlab 语言正是以处理矩阵见长,实践证明,Matlab 语言在电力系统潮流计算仿真研究中的应用是可行的,而且由于其强大的矩阵处理功能,完全可以应用于电力系统的其它分析计算中,用Matlab语言编程效率高,程序调试十分方便。