完整版潮流计算C++程序.docx
- 文档编号:17705433
- 上传时间:2023-08-03
- 格式:DOCX
- 页数:19
- 大小:18.12KB
完整版潮流计算C++程序.docx
《完整版潮流计算C++程序.docx》由会员分享,可在线阅读,更多相关《完整版潮流计算C++程序.docx(19页珍藏版)》请在冰点文库上搜索。
完整版潮流计算C++程序
程序为计算书3-4的过程
程序可以解决开式单直网络和树状网络的计算.树状网络计算时要自己先设定好支路的起始节点和终止节点标号以及计
算顺序源代码:
#include
#include
#include
#include
usingnamespacestd;
structnode{〃节点类
inti;//节点编号
doubleU,P,Q,delta;//额定电压计算负荷电压相角
};
structline{〃线路类连接父节点子节点
nodef_node,s_node;//父节点子节点
doubleR,X,B;//线路参数RXB/2
doubleP_in,Q_in,P_out,Q_out,d_P,d_Q,D_U,d_U;//线路输入输出功率以及线路消耗功率
voidSet_node(nodenod1,nodenod2){
f_node=nod1;
s_node=nod2;
}
};
voidfun1(line&lin){〃由后往前递推功率
doublep=lin.P_out;
doubleq=lin.Q_out;
doubleu=lin.s_node.U;
lin.d_P=(p*p+q*q)/u/u*lin.R;
lin.d_Q=(p*p+q*q)/u/u*lin.X;
lin.P_in=lin.d_P+lin.P_out;
lin.Q_in=lin.d_Q+lin.Q_out;
};
voidfun2(line&lin){//由前往后推电压
doublep=lin.P_in;
doubleq=lin.Q_in;
doubleu=lin.f_node.U;
lin.D_U=(p*lin.R+q*lin.X)/u;
lin.d_U=(p*lin.X-q*lin.R)/u;
lin.s_node.U=sqrt(pow(lin.f_node.U-lin.D_U,2)+pow(lin.d_U,2));//子节点电压
lin.s_node.delta=lin.f_node.delta-atan(lin.d_U/(lin.f_node.U-lin.D_U));
};
voidfun3(line&lin){//由前往后推电压不计横向分量
doublep=lin.P_in;
doubleq=lin.Q_in;
doubleu=lin.f_node.U;
lin.D_U=(p*lin,R+q*lin.X)/u;
lin.d_U=(p*lin.X-q*lin.R)/u;
lin.s_node.U=lin.f_node.U-lin.D_U,2;//子节点电压
lin.s_node.delta=lin.f_node.delta-atan(lin.d_U/(lin.f_node.U-lin.D_U));
};
voidmain(){
intnum_l;
intnum_n;//支路数节点数
ifstreamfin;
fin.open("E:
\\data.txt");
fin>>num_n>>num_l;〃输入节点数支路数
ofstreamfout;
fout.open("E:
\\databak.txt");
node*nod;
nod=newnode[num_n];//节点数目
line*lin;
lin=newline[num_l];//线路数目
nod[0].delta=0;
double*u;//节点额定电压
u=newdouble[num_n];
for(inti=0;i fin>>u[i]; }; double*p;//节点有功功率 p=newdouble[num_n]; for(inti=0;i fin>>p[i]; }; double*q;//节点无功功率 q=newdouble[num_n]; for(inti=0;i fin>>q[i]; }; for(inti=0;i nod[i].i=i; nod[i].P=p[i]; nod[i].Q=q[i]; nod[i].U=u[i]; }; double*r;//线路电阻 r=newdouble[num_l]; for(inti=0;i fin>>r[i]; ); double*x;//线路电抗 x=newdouble[num_l]; for(inti=0;i fin>>x[i]; ); double*b;//线路电纳 b=newdouble[num_l]; for(inti=0;i fin>>b[i]; ); for(inti=0;i lin[i].R=r[i]; lin[i].X=x[i]; lin[i].B=b[i]; ); for(inti=0;i fin>>lin[i].f_node.i; fin>>lin[i].s_node.i; ); for(inti=0;i nod[lin[i].f_node.i].Q-=lin[i].B*nod[lin[i].f_node.i].U*nod[lin[i].f_node.i].U; nod[lin[i].s_node.i].Q-=lin[i].B*nod[lin[i].s_node.i].U*nod[lin[i].s_node.i].U; ); double*P_c,*Q_c;//保存运算负荷数据 P_c=newdouble[num_n]; Q_c=newdouble[num_n]; for(inttc=0;tc P_c[tc]=nod[tc].P; Q_c[tc]=nod[tc].Q; ); for(inti=0;i lin[i].Set_node(nod[lin[i].f_node.i],nod[lin[i].s_node.i]); ); for(intre=0;re<3;re++){//迭代运算开始 fout<<"第''< doubleto_P(0),to_dP(0); for(inti=1;i to_P+=nod[i].P; ); for(inttc=0;tc nod[tc].P=P_c[tc]; nod[tc].Q=Q_c[tc]; ); for(intts=0;ts lin[ts].Q_out=lin[ts].s_node.Q; ); for(inti=0;i lin[i].Set_node(nod[lin[i].f_node.i],nod[lin[i].s_node.i]); ); intj=num_l-1;//反向求各支路功率损耗和功率分布 for(j=num_l-1;j>0;j--){ fun1(lin[j]); nod[lin[j].f_node.i].P+=lin[j].P_in; nod[lin[j].f_node.i].Q+=lin[j].Q_in; for(inti=0;i lin[i].Set_node(nod[lin[i].f_node.i],nod[lin[i].s_node.i]); ); for(intts=0;ts lin[ts].P_out=lin[ts].s_node.P; lin[ts].Q_out=lin[ts].s_node.Q; ); ); fun1(lin[j]); for(inti=0;i lin[i].Set_node(nod[lin[i].f_node.i],nod[lin[i].s_node.i]); ); intt=0;//求线路各点电压 for(t=0;t fun2(lin[t]); nod[lin[t].s_node.i].U=lin[t].s_node.U; nod[lin[t].s_node.i].delta=lin[t].s_node.delta; for(inti=0;i lin[i].Set_node(nod[lin[i].f_node.i],nod[lin[i].s_node.i]); ); ); fun2(lin[t]); nod[lin[t].s_node.i].U=lin[t].s_node.U; nod[lin[t].s_node.i].delta=lin[t].s_node.delta; fout<<"支路信息: "< for(inti=0;i fout<<"支路"< "< fout<<"始端功率: "< fout<<"末端功率: "< fout«"功率损耗: "«lin[i].d_P«"+j"«lin[i],d_Q«endl; fout<<"电压损耗"«lin[i].f_node.U-lin[i].s_node.U«endl; }; foutvv"节点信息: "«endl; for(inti=0;i fout«"节点"«i+1«endl; fout«"电压: "«nod[i].U«"相角: "«nod[i].delta*180/3.14«endl; }; double*lu;〃求最低电压及最低电压点 lu=newdouble[num_n]; int*lua; lua=newint[num_n]; for(inti=0;i lu[i]=nod[i].U; lua[i]=i; }; for(inti=0;i if(lu[i] doublest; inta; st=lu[i]; a=lua[i]; lu[i]=lu[i+1]; lua[i]=lua[i+1]; lu[i+1]=st; lua[i+1]=a; }; }; for(inti=0;i to_dP+=lin[i].d_P; ); foutvv"全网信息: "«endl; foutvv"总电源有功: "«lin[0].P_in«endl; foutvv"总负荷有功: "«to_P«endl; foutvv"总有功损耗: "«to_dP«endl; fout«"网损率: "«to_dP/(to_P+lin[0].P_in)«endl; foutvv"最低电压: "«lu[num_n-1]«"最低电压点: "vvlua[num_n-1]+1〈vendl; delete[]lu; delete[]lua; }; delete[]nod; delete[]lin; delete[]u; delete[]p; delete[]q; delete[]r; delete[]x; delete[]b; ) 附: 3-4的data文件 32 113110100 00,1720 01,715 8.51.22 20,520,2 0.0002820 01 12输出为: 第1次迭代 支路信息: 支路1-2: 始端功率: 1.02165+j0.693296 末端功率: 1.00434+j0.658675 功率损耗: 0.0173106+j0.0346211 电压损耗0.274063 支路2-3: 始端功率: 0.5034+j0.3068 末端功率: 0.5+j0.3 功率损耗: 0.0034+j0.0068 电压损耗0.109 支路2-4: 始端功率: 0.202138+j0.151875 末端功率: 0.2+j0.15 功率损耗: 0.0009375+j0.001875 电压损耗0.0739643 节点信息: 节点1 电压: 10.5相角: 0 节点2 电压: 10.2259相角: -0,864932 节点3 电压: 10.1169相角: -1,25281 节点4 电压: 10,152相角: -1,072 全网信息: 总电源有功: 1.02165 总负荷有功: 1总有功损耗: 0.0216481 网损率: 0.0107081 最低电压: 10.1169最低电压点: 3 第2次迭代 支路信息: 支路1-2: 始端功率: 1.02078+j0.69156 末端功率: 1.00423+j0.658463 功率损耗: 0.0165484+j0.0330969 电压损耗0.273567 支路2-3: 始端功率: 0.503322+j0.306644 末端功率: 0.5+j0.3 功率损耗: 0.00332186+j0.00664371 电压损耗0.108957 支路2-4: 始端功率: 0.20211+j0.151819 末端功率: 0.2+j0.15 功率损耗: 0.000909642+j0.00181928 电压损耗0.0739403 节点信息: 节点1 电压: 10.5相角: 0 节点2 电压: 10.2264相角: -0.86489 节点3 电压: 10.1175相角: -1.25273 节点4 电压: 10.1525相角: -1.07194 全网信息: 总电源有功: 1.02078 总负荷有功: 1.70434 总有功损耗: 0.0207799 网损率: 0.00762533 最低电压: 10.1175最低电压点: 3 第3次迭代 支路信息: 支路1-2: 始端功率: 1.02078+j0.691556 末端功率: 1.00423+j0.658462 功率损耗: 0.0165468+j0.0330936 电压损耗0.273566 支路2-3: 始端功率: 0.503322+j0.306643 末端功率: 0.5+j0.3 功率损耗: 0.0033215+j0.00664301 电压损耗0.108957 支路2-4: 始端功率: 0.20211+j0.151819 末端功率: 0.2+j0.15 功率损耗: 0.000909549+j0.0018191 电压损耗0.0739402 节点信息: 节点1 电压: 10.5相角: 0 节点2 电压: 10.2264相角: -0.86489 节点3 电压: 10.1175相角: -1.25273 节点4 电压: 10.1525相角: -1.07194 全网信息: 总电源有功: 1.02078 总负荷有功: 1.70423 总有功损耗: 0.0207778 网损率: 0.00762487 最低电压: 10.1175最低电压点: 3 例3-2的data: 43 10.5101010 00.30.50.2 00.20.30.15 1.211.5 2.423 000 01 12 13 输出: 第1次迭代 支路信息: 支路1-2: 始端功率: 1.02165+j0.693296 末端功率: 1.00434+j0.658675 功率损耗: 0.0173106+j0.0346211 电压损耗0.275227 支路2-3: 始端功率: 0.5034+j0.3068 末端功率: 0.5+j0.3 功率损耗: 0.0034+j0.0068 电压损耗0.109244 支路2-4: 始端功率: 0.202138+j0.151875 末端功率: 0.2+j0.15 功率损耗: 0.0009375+j0.001875 电压损耗0.0740389 节点信息: 节点1 电压: 10.5相角: 0 节点2 电压: 10.2248相角: -0.864932 节点3 电压: 10.1155相角: -1.2529 节点4 电压: 10.1507相角: -1.07205 全网信息: 总电源有功: 1.02165 总负荷有功: 1 总有功损耗: 0.0216481 网损率: 0.0107081 最低电压: 10.1155最低电压点: 3 第2次迭代 支路信息: 支路1-2: 始端功率: 1.02078+j0.69157 末端功率: 1.00423+j0.658465 功率损耗: 0.0165523+j0.0331045 电压损耗0.274734 支路2-3: 始端功率: 0.503323+j0.306646 末端功率: 0.5+j0.3 功率损耗: 0.00332278+j0.00664556 电压损耗0.109201 支路2-4: 始端功率: 0.20211+j0.15182 末端功率: 0.2+j0.15 功率损耗: 0.000909864+j0.00181973 电压损耗0.0740151 节点信息: 节点1 电压: 10.5相角: 0 节点2 电压: 10.2253相角: -0.86489 节点3 电压: 10.1161相角: -1.25282 节点4 电压: 10.1513相角: -1.07199 全网信息: 总电源有功: 1.02078 总负荷有功: 1.70434 总有功损耗: 0.0207849 网损率: 0.00762714 最低电压: 10.1161最低电压点: 3 第3次迭代 支路信息: 支路1-2: 始端功率: 1.02078+j0.691566 末端功率: 1.00423+j0.658464 功率损耗: 0.0165506+j0.0331013 电压损耗0.274733 支路2-3: 始端功率: 0.503322+j0.306645 末端功率: 0.5+j0.3 功率损耗: 0.00332243+j0.00664486 电压损耗0.109201 支路2-4: 始端功率: 0.20211+j0.15182 末端功率: 0.2+j0.15 功率损耗: 0.000909771+j0.00181954 电压损耗0.074015 节点信息: 节点1 电压: 10.5相角: 0 节点2 电压: 10.2253相角: -0.86489 节点3 电压: 10.1161相角: -1.25282 节点4 电压: 10.1513相角: -1.07199 全网信息: 总电源有功: 1.02078 总负荷有功: 1,70423 总有功损耗: 0.0207828 网损率: 0.00762669 最低电压: 10.1161最低电压点: 3
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 完整版 潮流 计算 C+ 程序