当前位置:首页 > 潮流计算--电力系统大作业(C++编写)
程序设计所涉及二叉树解释
任意一棵树或一个森林都能唯一地对应一棵二叉树,由此而编写本程序。 本程序采用类二叉树为整体结构,二叉树类下定义节点类,每一条支路均为树的一个节点,支路所有的参数均作为节点的属性,并给节点加入属性“支路编号”,并以支路编号为依据构建二叉树,这就要求提前根据二叉树结构给每一个支路编号。
支路编号原则:左子树上所有编号均小于其双亲的编号,右子树上所有编号均大于其双亲的编号,为了便于查看,本程序在节点较少时编号从1开始,逐个递加至支路数;当支路较多时,可不必拘泥于逐个递加,只要满足支路编号原则即可。
例如习题3-4:
123118kV113kV8.5+j20.5Wj2.82×10-4S1.22+j20.2Wj2.82×10-4SDST=0.17+j1.7MVA40+j30MVA20+j15MVA
程序二叉树结构示意图:
本二叉树中节点1即支路1为题目中节点1与节点2之间的部分; 本二叉树中节点2即支路2为题目中节点2与节点3之间的部分;
对于习题3-3:
程序二叉树结构示意图:
本二叉树中节点2即支路2为题目中节点1与节点2之间的部分; 本二叉树中节点1即支路1为题目中节点2与节点3之间的部分; 本二叉树中节点3即支路3为题目中节点2与节点4之间的部分. 拓展:
如下多支路网络:
对于三节点网络需先进行以下网络处理转化为标准二叉树,而后进行计算;
图中三角形表明该项阻抗为零,为纯导线,并进行相应参数补充进行计算。
程序说明文档
******************************************************************************************************************************************************* 本程序测试使用方法:在E盘根目录下建立输入文件: 输入文件名:input.txt;
将所附算例对应输入文件内容复制粘贴至上述文件中,在VC++6.0环境下运行cpp文件得出结果。
输出文件在E盘根目录下 输出文件名为:data.txt;
*******************************************************************************************************************************************************
程序功能说明:本程序可以计算任意长度线型开始网络潮流; 支持多电压等级下的计算;
可在除供电节点外任意节点引出负载;
*******************************************************************************
************************************************************************ 输入格式说明:以支路为基本单位,按潮流方向输入数据: 以下例示意:
2 //支路个数 1,110,118,8.5,20.5,0.000564,0,0,1,0,0 //线路等效的支路 2,11,110,1.22,20.2,0,40,30,10,0.17,1.7 //变压器等效的支路
. //按此方式知道输入所有的支路
. //输入从上到下的顺序为潮流在
. //线型开式网络中的流动方向
/* 第一行输入支路个数,回车
第二行至后输入各个支路参数,回车分隔不同支路; 各行输入的支路参数顺序是:
支路编号,末端电压,始端电压,线路等效电阻,线路等效感抗,线路等效容纳,末端输入有功,末端输入无功,变比,变压器有功励磁损耗,变压器无功励磁损耗
对于线路等效电路:变压器有功/无功损耗输入零,变比输入1;
对于变压器等效电路:所有的参数均归算至高压侧,Rt,Xt对应输入线路等效电阻/感抗的位置,线路等效容抗为零; 对于个节点的引出负荷:输入至以此节点为末节点的支路的末端输入有功/无功部分;
*/
******************************************************************************************************************************************************** 输出文件格式说明:输出的内容包括
(1)支路信息:每个支路元件的始端有功、无功和末端有功、无功;有功损耗无功损耗;电压损耗;
(2)全网信息:全网的总电源有功、总负荷有功、有功损耗、网损率; (3)迭代信息:每次完整迭代后的所有内容; 具体在输出文件中都明确标出。
********************************************************************************************************************************************************* 程序中变量定义说明:
类中定义的变量
class line_part{ //定义支路类
double U[2]; //支路电压降落:U[0]电压降落横分量,U[1]电压降落纵分量
double k; //变压器变比 double val; //支路排序
double U_end; //支路末端电压 double U_begin; //支路首段电压
double X[3]; //支路等效阻抗: X[0]电阻,X[1]感抗,X[2]容纳
double S_end[2]; //支路末端功率:S_end[0]有功,S_end[1]无功
double S_begin[2]; //支路首段功率:S_begin[0]有功,S_begin[1]无功
double S0[2]; //变压器励磁损耗:S0[0]有功,S0[1]无功
double S_org[2]; //支路末端负载:S_org[0]有功,S_org[1]无功
line_part *lchild,*rchild; //支路的后继两个支路 }
class BinTree{ //定义树类
void PreOrder(){PreOrder(root);}; //树的先序遍历修改电压
void PostOrder(){PostOrder(root);}; //树的后序遍历修改潮流
void display(){display(root);}; //树的先序遍历显示数据
line_part *root; //树的根,是一个支路类 };
共分享92篇相关文档