matlab的计算小程序,q分解法潮流计算matlab小程序.doc

41528d3028836879cd698677c3999917.gifq分解法潮流计算matlab小程序.doc

-Q分解法潮流计算matlab小程序1(2010-06-2314:43:08)转载▼标签:杂谈题目是东南大学陈怡编的电力系统分析里,五节点的算例,本程序的通用性有待提高。各元件的有关数据如下:(1)发电机G1的端电压为1p.u,发出的有功、无功可调节;(2)发电机G2的端电压为1p.u,按指定的有功P=0.5发电,取ε=0.0001;(3)其中,G1为平衡节点,编号为5;G2为PV节点,编号为4;其余为PQ节点,编号为1、2、3。其它数据见上图所示。(4)本程序均采用标幺值进行计算,角度为度(),但程序运行中均是用弧度进行计算。在编程开始时,先创建了MATLAB数据,如下所示,仅在MATLAB命令窗口中有效:systemdata.dat表示“系统数据”:552311branch.dat表示“支路数据”:表4-1支路数据支路状态节点号节点号RXB(K)1120.0250.080.141130.030.10.181230.020.060.1032400.19051.052233500.19051.0522generator.dat表示“发电机数据”:表4-2发电机数据140.500.01500.01500.01500.0150140.82151.000.01500.01500.01500.0150140.82loads.dat表示“负荷数据”:表4-3负荷数据节点状态节点号PQ11-0.8055-0.53212-0.1800-0.1201300pvnode.dat表示“节点数据”:41.00.54.600000.00001balance.dat表示“平衡节点数据”:51.0000下面对本程序作简单的说明:其中,node_counts表示“节点数”,branch_counts表示“支路数(含并联支路、接地支路)”,generator_counts表示“发电机数”,load_counts表示“负荷数”,pvnode_counts表示“PV节点数”,bal_counts表示“平衡节点数”,branch表示“支路数据”,generator表示“发电机数据”,loads表示“负荷数据”,pvnode表示“节点数据”,balance表示“平衡节点数据”,Y表示“节点导纳矩阵”,B1表示“B′”,B2表示“B″”,U表示“节点电压”,dPQ表示“有功无功的不平衡量”,K表示“迭代次数”,eps表示“收敛精度”,SIJ、SJI表示“支路潮流”,p表示“注入有功”,q表示“注入无功”。主程序:%===================算例为5节点5支路网(东南大学陈怡编)%*********************************************************************%*P-Q法潮流计算主程序*%*********************************************************************%M函数在Workspace看不到变量的值function[UPQ,SIJ,SJI,BalanceNodePQ,LossIJPQ,LossP,LossQ]=flowmain(systemdata,branch,generator,loads,pvnode,balance)clearclc%定义全局变量2010-1globalnode_counts;%节点数globalbranch_counts;%支路数(含并联支路、接地支路)globalgenerator_counts;%发电机数globalload_counts;%负荷数globalpvnode_counts;%PV节点数globalbal_counts;%平衡节点数globalbranch;%支路数据globalgenerator;%发电机数据globalloads;%负荷数据globalpvnode;%PV节点数据globalbalance;%平衡节点数据globalY;%节点导纳矩阵globalB1;%globalB2;globalU;%节点电压globaldPQ;globalKKK;%迭代次数globaleps;%收敛精度globalSIJ;%支路潮流globalp;%注入有功globalq;%注入无功%下述方法仅在MATLAB命令窗口中有效loadsystemdata.dat;%系统数据loadbranch.dat;%支路数据loadgenerator.dat;%发电机数据loadloads.dat;%负荷数据loadpvnode.dat;%PV节点数据loadbalance.dat;%平衡节点数据%赋初值node_counts=systemdata(1);branch_counts=systemdata(2);generator_counts=systemdata(3);load_counts=systemdata(4);pvnode_counts=systemdata(5);bal_counts=systemdata(6);%%%节点导纳矩阵Y的形成Y=produce_Y(node_counts,branch_counts,branch)%%%形成B撇和B撇撇B1=produce_B1(node_counts,balance,Y)B2=produce_B2(node_counts,pvnode,B1,pvnode_counts)%%给节点电压赋初值[U]=first_SetVol(node_counts,bal_counts,pvnode_counts,balance,pvnode);forii=1:node_countsdisp(sprintf( 初始电压(%d)%d%d ,ii,U(ii,1),U(ii,2)));end%%%形成delta_p,delta_q%%%形成循环迭代esp=0.0001;end_flag=0;KKK=0;ticwhileend_flag==0[end_flag,U]=flow_solution(esp);endt=toc%求平衡节点功率及各支路功率[SIJ]=branch_flow(U,Y,pi);%显示潮流结果end子程序1(形成节点导纳矩阵):%节点导纳矩阵的形成function[jdY]=produce_Y(node_counts,branch_counts,branch)forx=1:node_countsfory=1:node_countsjdY(x,y)=0;%各节点导纳Y清零endendfort=1:branch_counts%接地支路ifbranch(t,1)==4zlZ=branch(t,4)+i*branch(t,5);%算各支路阻抗ZifzlZ~=0%三绕组变压器联结点jdY(branch(t,2),branch(t,2))=jdY(branch(t,2),branch(t,2))+1/zlZ;endend%变压器支路ifbranch(t,1)==2|branch(t,1)==3zlZ=branch(t,4)+i*branch(t,5);%算各支路阻抗ZjdY(branch(t,2),bran

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值