马上加入,结交更多好友,共享更多资料,让你轻松玩转电力研学社区!
您需要 登录 才可以下载或查看,没有账号?立即加入
×
本帖最后由 chancechang 于 2010-11-17 09:55 编辑
, L2 _. C1 I& ?2 k5 }7 T" z0 a% q( @
VB潮流计算及算例.rar
(35.88 KB, 下载次数: 13)
自己编写的VB潮流计算及算例。 1 输入 1.1支路数据输入格式: 支路数据采用一个(NB 5)的矩阵存储,其每一行的输入格式为: 节点号n,节点号m,支路电阻R,支路电抗X,对地电纳BC/2或变压器非标准变比k。 其中,变压器非标准变比k所对应的节点号取负。 1.2节点数据输入格式: 节点数据采用一个(NN 5)的矩阵存储,其每一行的输入格式为: 节点号n,发电机有功PG,发电机无功QG,负荷有功PL,负荷无功QL。 1.3PV节点数据输入格式: PV节点数据采用一个(NPV 2)的矩阵存储,其每一行的输入格式为: 节点号n,节点电压幅值。 1.4程序中的原始数据存储在input文件中。 input文件输入格式: input文件的第1行输入如下数据:NB,NN,NPV,NS,NM,ES; input文件的第2行至第(NB+1)行输入支路数据; input文件的第(NB+2)行至第(NN+NB+1)行输入节点数据; input文件的第(NN+NB+2)行至第(NPV+NN+NB+1)行输入PV节点数据。 2潮流计算程序结构设计 潮流计算程序采用直角坐标形式的牛顿—拉夫逊法编写,其设计思路是: (1)定义潮流计算中用到的变量和数值。 (2)调用give_code子程序,按PQ节点→PV节点→平衡节点的顺序进行节点编号。 (3)调用squence子程序:对支路数据、节点数据和PV节点数据分别按节点号由小到大进行排序。 (4)调用initialize子程序,对各节点电压和注入功率赋初值。 (5)调用get_Y子程序,形成节点导纳矩阵。 (6)令初始循环次数为0. (7)循环次数加1,若循环次数大于15,则计算结束,输出结果,否则继续循环。 (8)调用getPQ子程序,求出各节点注入有功和无功功率。 (9)调用getDPQU子程序,得到△P、△Q、△U2,若最大误差满足精度要求,则终止循环,否则继续循环。 (10)调用get_J子程序,形成雅克比矩阵。 (11)调用getDU子程序,利用高斯消元法求解方程组,得到各节点电压的增量。 (12)调用get_newV,得到各节点电压的新值。转到第(6)步。 (13)调用getPQ子程序,得到各节点最终注入有功和无功功率。 (14)调用get_BP子程序:得到各支路两端功率及系统有功、无功网损。 3程序中的主要变量 KG:发电机节点数; KT:变压器支路数; KQ:电容器无功补偿节点数; KN:控制变量总个数; NB:系统支路数; NN:系统节点数; NPV:PV节点数(含平衡节点); NS:平衡节点编号; NM:最大节点编号; ES:潮流计算精度误差; GBC:发电机端电压步长; GGC:发电机端电压干长; GZC:发电机端电压枝长; TBC:变压器主变变比步长; TGC:变压器主变变比干长; TZC:变压器主变变比枝长; QBC:电容器无功补偿容量步长; QGC:电容器无功补偿容量干长; QZC:电容器无功补偿容量枝长; CSM:最小值重复出现最大次数; DG:发电机端电压每档调节量; DT:变压器主变变比每档调节量; DQC:电容器无功补偿每组投切量; GVS:发电机端电压上限; GVX:发电机端电压下限; TS:变压器主变变比上限; TX:变压器主变变比下限; QCS:电容器无功补偿容量上限; QCX:电容器无功补偿容量下限; CS:主程序中最小值重复出现次数; DM:主程序中最小值的个数; MG:发电机端电压调节档数; MT:变压器主变抽头调节档数; MC:电容器无功补偿容量分组总数; fmin:网损的最小值; f0:网损的初始值; VS:负荷节点电压上限; VX:负荷节点电压下限; SZS:生长点集内的无功优化可行解个数; SJ:每一次循环利用随机数产生器产生的随机数; Ploss:系统有功功率损耗。 4程序中的主要数组 ZB(5*(NB+1)):存储支路数据; PQ(5*(NN+1)):存储节点数据; PV(2*(NPV+1)):存储PV节点数据; GJD(KG):发电机节点号集合; TJD(KT):变压器支路号集合; QJD(KQ):电容器无功补偿节点号集合; QG(KG):存储各发电机无功出力; QGS(KG):存储各发电机无功出力上限; QGX(KG):存储各发电机无功出力下限; VV(NN+1):存储各负荷节点电压幅值; GBII(4*(NN+1)):存储节点导纳阵对角元素; GBIJ(3*(NB+1)):存储节点导纳阵非对角元素; V(2*(NN+1)):存储各节点电压实部及虚部; F(2*(NN+1)):存储各节点注入有功及无功; SG(2*NN,KN):存储树干上的各生长点; Xmin(30,KN):存储各目标函数最小值; JDJ(1001,KN):存储每一次循环的基点; CZ(KN):存储无功优化初始可行解; DJ(KN):存储无功优化各控制变量; GZ(2*KN):存储树干上无功优化各可行解的目标函数值; SZZ(50 + 2 * KN):存储树枝上无功优化各可行解的目标函数值; SZD(50 + 2 * KN, KN):存储树干及树枝上所有无功优化可行解; XD(2 * KN, KN):存储每一次循环新产生的生长点; PP(50 + 2 * KN):存储生长点集内各可行解的形态素浓度值; KJ(50 + 2 * KN):存储生长点集内各可行解的状态空间值; XZ(2*KN):存储各新生长点的目标函数值; Neww(NM):存储新节点号; old(NM):存储旧节点号; P(2*(NN+1)):存储各节点注入有功及无功; UJ(4 * NN * NN):存储雅克比矩阵中的各元素; DV(2*(NN+1)):存储各节点电压实部及虚部增量。 变量说明: (1)如若程序中的一些已定义变量在潮流计算中暂不需要使用,使用时不用理会,使用过程中没有任何影响。Input中数据为某县中压网数据,可作为参考数据。《电力系统稳态分析》例4-3数据也已在input1中给出,仅供参考。 (2)程序窗体中command2控件原为程序深入计算时,为方便调用潮流计算子程序而已预设。虽不在窗体显示,但已在程序中使用,不影响程序计算。如若需增加command控件,在添加后command控件后,修改command编号便可正常使用。 5程序说明 (1)PQ,PV节点经程序排列后,顺序为从PQ到PV节点。如《电力系统稳态分析》例4-3中,平衡节点1经排序后成为5号节点,PQ节点2,3,4,5,经排序后成为1,2,3,4号节点。注意排序后的节点号码变化,方便对照计算结果。 (2)部分程序段针对简单的潮流计算暂不需用,分别为Sub zhuanxing,Sub xiuzheng,Sub yuexian,Sub paixu,用户在进行深入研究时可以借用。 (3)此程序为牛顿--拉夫逊法潮流计算的计算机算法,按照此法的计算步骤分段编程。其中求解电压变化量程序段为数学方程解法,用户可参考相关资料。 |