水力分析中的平差程序

来源:百度知道 编辑:UC知道 时间:2024/06/20 13:43:26
单定压节点
型参为节点数组和下标,管段数组和下标,定压节点编号

void PipeWorkAdjustment(Point point[],int nn,Line line[],int mm,int t)
{
int x,temp;
for(x=0;x<nn;x++)//初始化节点水头
{
point[x].dH=0;
point[t].SetHj(94.65);
if(x!=t)
point[x].SetHj(MinHz+point[t].GetHd()+x+1);
}
///////////////测试节点水头
/*for(x=0;x<nn;x++)
cout<<x<<':'<<point[x].GetHj()<<endl;*/
//////////////
do
/*for(int l=0;l<4;l++)*/
{
for(x=0;x<nn;x++)//初始化G,dQ
{
point[x].G=0;
point[x].dQ=point[x].GetQ();
}
for(x=0;x<nn;x++)//更新节点水头Hj
if(x!=t)
point[x].UpDateHj();
for(x=0;x<mm;x++)//计算管段压降h
line[x].Seth(point[line[x].i].GetHj()-point[line[x].j].GetHj());
for(x=0;x<mm;x++)//计算管段流量q和系数C
{
line[x].Setq();
line[x].C=1.0/n/pow(fabs(line[x].Getq()),n-1)/line[x].Gets();
}
for(x=0;x<mm;x++)//计算G和dQ
{