📄 dnet.cpp
字号:
if(pBranch->m_bState&&pBranch->m_nTailNode==m_nNewFeederRoot[j]&&pBranch->m_bBranchMark)
{
pBranch->m_bBranchMark=0;
m_nNodeArray[pBranch->m_nTailNode].wVoltage=m_nFeederVoltage[j];
wFirstNodeVoltage=m_nNodeArray[pBranch->m_nHeadNode].wVoltage;
nNodeMark[pBranch->m_nHeadNode]=1;
if(m_nDNetInfo.m_bMark)
{
dV=(pBranch->m_wPTail*pBranch->m_wR+pBranch->m_wQTail*pBranch->m_wX)/m_nNodeArray[pBranch->m_nTailNode].wVoltage;
m_nNodeArray[pBranch->m_nHeadNode].wVoltage=m_nNodeArray[pBranch->m_nTailNode].wVoltage-dV;
if(dVB_N<=fabs(m_nNodeArray[pBranch->m_nHeadNode].wVoltage-wFirstNodeVoltage))
dVB_N=fabs(m_nNodeArray[pBranch->m_nHeadNode].wVoltage-wFirstNodeVoltage);
}
else
//标吆值
{
dV=(pBranch->m_wPTail*pBranch->m_wRB+pBranch->m_wQTail*pBranch->m_wXB)/m_nNodeArray[pBranch->m_nTailNode].wVoltage;
m_nNodeArray[pBranch->m_nHeadNode].wVoltage=m_nNodeArray[pBranch->m_nTailNode].wVoltage-dV;
if(dVB_N<=fabs(m_nNodeArray[pBranch->m_nHeadNode].wVoltage-wFirstNodeVoltage))
dVB_N=fabs(m_nNodeArray[pBranch->m_nHeadNode].wVoltage-wFirstNodeVoltage);
}
}
}
//计算其他支路
INT nBranch=0;
int i=0;
while(nBranch<(nFeedBranch-m_nDNetInfo.nFeederRoot))
{
for(pos=m_nBranchMap.GetStartPosition();pos!=NULL;)
{
UINT key=0;
CBranch* pBranch=new CBranch;
m_nBranchMap.GetNextAssoc(pos,key,pBranch);
if(!pBranch->m_bBranchMark||!pBranch->m_bState) continue;
if(nNodeMark[pBranch->m_nHeadNode])
{
++nBranch;
pBranch->m_bBranchMark=0;
wFirstNodeVoltage=m_nNodeArray[pBranch->m_nTailNode].wVoltage;
nNodeMark[pBranch->m_nTailNode]=1;
if(m_nDNetInfo.m_bMark)
{
dV=(pBranch->m_wPHead*pBranch->m_wR+pBranch->m_wQHead*pBranch->m_wX)*(1e-3)/m_nNodeArray[pBranch->m_nHeadNode].wVoltage;
m_nNodeArray[pBranch->m_nTailNode].wVoltage=m_nNodeArray[pBranch->m_nHeadNode].wVoltage-dV;
if(pBranch->m_nType==TRANS)
m_nNodeArray[pBranch->m_nTailNode].wVoltage/=pBranch->m_wRatio;
if(dVB_N<fabs(m_nNodeArray[pBranch->m_nTailNode].wVoltage-wFirstNodeVoltage))
dVB_N=fabs(m_nNodeArray[pBranch->m_nTailNode].wVoltage-wFirstNodeVoltage);
}
else
//标吆值
{
dV=(pBranch->m_wPHead*pBranch->m_wRB+pBranch->m_wQHead*pBranch->m_wXB)/m_nNodeArray[pBranch->m_nHeadNode].wVoltage;
m_nNodeArray[pBranch->m_nTailNode].wVoltage=m_nNodeArray[pBranch->m_nHeadNode].wVoltage-dV;
if(pBranch->m_nType==TRANS)
m_nNodeArray[pBranch->m_nTailNode].wVoltage/=pBranch->m_wRatio;
if(dVB_N<fabs(m_nNodeArray[pBranch->m_nTailNode].wVoltage-wFirstNodeVoltage))
dVB_N=fabs(m_nNodeArray[pBranch->m_nTailNode].wVoltage-wFirstNodeVoltage);
}
continue;
}
if(nNodeMark[pBranch->m_nTailNode])
{
++nBranch;
pBranch->m_bBranchMark=0;
wFirstNodeVoltage=m_nNodeArray[pBranch->m_nHeadNode].wVoltage;
nNodeMark[pBranch->m_nHeadNode]=1;
if(m_nDNetInfo.m_bMark)
{
dV=(pBranch->m_wPTail*pBranch->m_wR+pBranch->m_wQTail*pBranch->m_wX)*(1e-3)/m_nNodeArray[pBranch->m_nTailNode].wVoltage;
m_nNodeArray[pBranch->m_nHeadNode].wVoltage=m_nNodeArray[pBranch->m_nTailNode].wVoltage-dV;
if(dVB_N<=fabs(m_nNodeArray[pBranch->m_nHeadNode].wVoltage-wFirstNodeVoltage))
dVB_N=fabs(m_nNodeArray[pBranch->m_nHeadNode].wVoltage-wFirstNodeVoltage);
}
else
//标吆值
{
dV=(pBranch->m_wPTail*pBranch->m_wRB+pBranch->m_wQTail*pBranch->m_wXB)/m_nNodeArray[pBranch->m_nTailNode].wVoltage;
m_nNodeArray[pBranch->m_nHeadNode].wVoltage=m_nNodeArray[pBranch->m_nTailNode].wVoltage-dV;
if(dVB_N<=fabs(m_nNodeArray[pBranch->m_nHeadNode].wVoltage-wFirstNodeVoltage))
dVB_N=fabs(m_nNodeArray[pBranch->m_nHeadNode].wVoltage-wFirstNodeVoltage);
}
}
} //end for
} //end while
for(pos=m_nBranchMap.GetStartPosition();pos!=NULL;)
{
UINT key=0;
CBranch* pBranch=new CBranch;
m_nBranchMap.GetNextAssoc(pos,key,pBranch);
pBranch->m_bBranchMark=1;
}
if(dVB_N<m_nDNetInfo.wVoltageConvergence)break;
//节点功率重赋初值
for(i=1;i<=m_nDNetInfo.nNode;++i)
{
m_nNodeArray[i].wP=0;
m_nNodeArray[i].wQ=0;
}
for(pos=m_nBeginInfoMap.GetStartPosition();pos!=NULL;)
{
UINT key=0;
CBeginInfo* pBeginInfo=new CBeginInfo;
m_nBeginInfoMap.GetNextAssoc(pos,key,pBeginInfo);
m_nNodeArray[pBeginInfo->m_nLoadNode].wP=pBeginInfo->m_wPLoad;
m_nNodeArray[pBeginInfo->m_nLoadNode].wQ=pBeginInfo->m_wQLoad;
}
for(pos=m_nCapMap.GetStartPosition();pos!=NULL;)
{
UINT key=0;
CCapCompensation* pCapCom=new CCapCompensation;
m_nCapMap.GetNextAssoc(pos,key,pCapCom);
m_nNodeArray[pCapCom->m_nCNode].wP+=-pCapCom->m_dPc*m_nNodeArray[pCapCom->m_nCNode].wVoltage*
m_nNodeArray[pCapCom->m_nCNode].wVoltage/(pCapCom->m_Vn*pCapCom->m_Vn);
m_nNodeArray[pCapCom->m_nCNode].wQ+=-pCapCom->m_SnPower*m_nNodeArray[pCapCom->m_nCNode].wVoltage*
m_nNodeArray[pCapCom->m_nCNode].wVoltage/(pCapCom->m_Vn*pCapCom->m_Vn);
}
//前推
for(i=1;i<=m_nDNetInfo.nBranch;++i)
{
CBranch* pBranch=new CBranch;
m_nBranchMap.Lookup(m_nBranchKey[i],pBranch);
if(pBranch->m_bHeadMark)
{
if(m_nDNetInfo.m_bMark)
{
if(pBranch->m_nType==BRANCH)
{
pBranch->m_wPHead=m_nNodeArray[pBranch->m_nHeadNode].wP;
pBranch->m_wQHead=m_nNodeArray[pBranch->m_nHeadNode].wQ;
//计算尾功率
pBranch->m_wPTail=pBranch->m_wPHead+(pBranch->m_wPHead*pBranch->m_wPHead+
pBranch->m_wQHead*pBranch->m_wQHead)*pBranch->m_wR/(m_nNodeArray[pBranch->m_nHeadNode].wVoltage*
m_nNodeArray[pBranch->m_nHeadNode].wVoltage);
pBranch->m_wQTail=pBranch->m_wQHead+(pBranch->m_wPHead*pBranch->m_wPHead+
pBranch->m_wQHead*pBranch->m_wQHead)*pBranch->m_wX/(m_nNodeArray[pBranch->m_nHeadNode].wVoltage*
m_nNodeArray[pBranch->m_nHeadNode].wVoltage);
/////////
m_nNodeArray[pBranch->m_nTailNode].wP+=pBranch->m_wPTail;
m_nNodeArray[pBranch->m_nTailNode].wQ+=pBranch->m_wQTail;
}
}
else
//标吆值
{
if(pBranch->m_nType==BRANCH)
{
pBranch->m_wPHead=m_nNodeArray[pBranch->m_nHeadNode].wP;
pBranch->m_wQHead=m_nNodeArray[pBranch->m_nHeadNode].wQ;
//计算尾功率
pBranch->m_wPTail=pBranch->m_wPHead+(pBranch->m_wPHead*pBranch->m_wPHead+
pBranch->m_wQHead*pBranch->m_wQHead)*pBranch->m_wRB/(m_nNodeArray[pBranch->m_nHeadNode].wVoltage*
m_nNodeArray[pBranch->m_nHeadNode].wVoltage);
pBranch->m_wQTail=pBranch->m_wQHead+(pBranch->m_wPHead*pBranch->m_wPHead+
pBranch->m_wQHead*pBranch->m_wQHead)*pBranch->m_wXB/(m_nNodeArray[pBranch->m_nHeadNode].wVoltage*
m_nNodeArray[pBranch->m_nHeadNode].wVoltage);
/////////
m_nNodeArray[pBranch->m_nTailNode].wP+=pBranch->m_wPTail;
m_nNodeArray[pBranch->m_nTailNode].wQ+=pBranch->m_wQTail;
}
}
}
if(pBranch->m_bTailMark)
{
if(m_nDNetInfo.m_bMark)
{
if(pBranch->m_nType==BRANCH)
{
pBranch->m_wPTail=m_nNodeArray[pBranch->m_nTailNode].wP;
pBranch->m_wQTail=m_nNodeArray[pBranch->m_nTailNode].wQ;
//计算头功率
pBranch->m_wPHead=pBranch->m_wPTail+(pBranch->m_wPTail*pBranch->m_wPTail+
pBranch->m_wQTail*pBranch->m_wQTail)*pBranch->m_wR/(m_nNodeArray[pBranch->m_nTailNode].wVoltage*
m_nNodeArray[pBranch->m_nTailNode].wVoltage);
pBranch->m_wQHead=pBranch->m_wQTail+(pBranch->m_wPTail*pBranch->m_wPTail+
pBranch->m_wQTail*pBranch->m_wQTail)*pBranch->m_wX/(m_nNodeArray[pBranch->m_nTailNode].wVoltage*
m_nNodeArray[pBranch->m_nTailNode].wVoltage);
///////////////////////
m_nNodeArray[pBranch->m_nHeadNode].wP+=pBranch->m_wPHead;
m_nNodeArray[pBranch->m_nHeadNode].wQ+=pBranch->m_wQHead;
}
else
{
pBranch->m_wPTail=m_nNodeArray[pBranch->m_nTailNode].wP;
pBranch->m_wQTail=m_nNodeArray[pBranch->m_nTailNode].wQ;
pBranch->m_wPHead=pBranch->m_wPTail+(pBranch->m_wPTail*pBranch->m_wPTail+
pBranch->m_wQTail*pBranch->m_wQTail)*pBranch->m_wR/(m_nNodeArray[pBranch->m_nTailNode].wVoltage*
m_nNodeArray[pBranch->m_nTailNode].wVoltage*pBranch->m_wRatio*pBranch->m_wRatio);
pBranch->m_wQHead=pBranch->m_wQTail+(pBranch->m_wPTail*pBranch->m_wPTail+
pBranch->m_wQTail*pBranch->m_wQTail)*pBranch->m_wX/(m_nNodeArray[pBranch->m_nTailNode].wVoltage*
m_nNodeArray[pBranch->m_nTailNode].wVoltage*pBranch->m_wRatio*pBranch->m_wRatio);
pBranch->m_wPHead+=pBranch->m_dP0TRANS*(m_nNodeArray[pBranch->m_nHeadNode].wVoltage*
m_nNodeArray[pBranch->m_nHeadNode].wVoltage)*(1e-3)/(pBranch->m_VnTRANS*pBranch->m_VnTRANS);
pBranch->m_wQHead+=pBranch->m_SnTRANS*0.01*pBranch->m_CurrentTRANS*(m_nNodeArray[pBranch->m_nHeadNode].wVoltage*
m_nNodeArray[pBranch->m_nHeadNode].wVoltage)*(1e-3)/(pBranch->m_VnTRANS*pBranch->m_VnTRANS);
/////////////////////////////////////////
m_nNodeArray[pBranch->m_nHeadNode].wP+=pBranch->m_wPHead;
m_nNodeArray[pBranch->m_nHeadNode].wQ+=pBranch->m_wQHead;
}
}
else
//标吆值
{
if(pBranch->m_nType==BRANCH)
{
pBranch->m_wPTail=m_nNodeArray[pBranch->m_nTailNode].wP;
pBranch->m_wQTail=m_nNodeArray[pBranch->m_nTailNode].wQ;
//计算头功率
pBranch->m_wPHead=pBranch->m_wPTail+(pBranch->m_wPTail*pBranch->m_wPTail+
pBranch->m_wQTail*pBranch->m_wQTail)*pBranch->m_wRB/(m_nNodeArray[pBranch->m_nTailNode].wVoltage*
m_nNodeArray[pBranch->m_nTailNode].wVoltage);
pBranch->m_wQHead=pBranch->m_wQTail+(pBranch->m_wPTail*pBranch->m_wPTail+
pBranch->m_wQTail*pBranch->m_wQTail)*pBranch->m_wXB/(m_nNodeArray[pBranch->m_nTailNode].wVoltage*
m_nNodeArray[pBranch->m_nTailNode].wVoltage);
///////////////////////
m_nNodeArray[pBranch->m_nHeadNode].wP+=pBranch->m_wPHead;
m_nNodeArray[pBranch->m_nHeadNode].wQ+=pBranch->m_wQHead;
}
else
{
pBranch->m_wPTail=m_nNodeArray[pBranch->m_nTailNode].wP;
pBranch->m_wQTail=m_nNodeArray[pBranch->m_nTailNode].wQ;
pBranch->m_wPHead=pBranch->m_wPTail+(pBranch->m_wPTail*pBranch->m_wPTail+
pBranch->m_wQTail*pBranch->m_wQTail)*pBranch->m_wRB/(m_nNodeArray[pBranch->m_nTailNode].wVoltage*
m_nNodeArray[pBranch->m_nTailNode].wVoltage*pBranch->m_wRatio*pBranch->m_wRatio);
pBranch->m_wQHead=pBranch->m_wQTail+(pBranch->m_wPTail*pBranch->m_wPTail+
pBranch->m_wQTail*pBranch->m_wQTail)*pBranch->m_wXB/(m_nNodeArray[pBranch->m_nTailNode].wVoltage*
m_nNodeArray[pBranch->m_nTailNode].wVoltage*pBranch->m_wRatio*pBranch->m_wRatio);
pBranch->m_wPHead+=pBranch->m_dP0TRANS*(m_nNodeArray[pBranch->m_nHeadNode].wVoltage*
m_nNodeArray[pBranch->m_nHeadNode].wVoltage*m_nDNetInfo.wVB*m_nDNetInfo.wVB)/(pBranch->m_VnTRANS*pBranch->m_VnTRANS*m_nDNetInfo.wSB);
pBranch->m_wQHead+=pBranch->m_SnTRANS*0.01*pBranch->m_CurrentTRANS*(m_nNodeArray[pBranch->m_nHeadNode].wVoltage*
m_nNodeArray[pBranch->m_nHeadNode].wVoltage*m_nDNetInfo.wVB*m_nDNetInfo.wVB)/(pBranch->m_VnTRANS*pBranch->m_VnTRANS*m_nDNetInfo.wSB);
/////////////////////////////////////////
m_nNodeArray[pBranch->m_nHeadNode].wP+=pBranch->m_wPHead;
m_nNodeArray[pBranch->m_nHeadNode].wQ+=pBranch->m_wQHead;
}
}
}
} //end for 前推
} //end for
if(IT==m_nDNetInfo.nMaxIteration&&dVB_N>m_nDNetInfo.wVoltageConvergence) return FALSE;
return IT;
} //end
/////////////////////////////////////
//CDNet Result
///////////////////////////////////////
double CDNet::GetDNetEnergeWaste()
{
for(INT i=1;i<=m_nDNetInfo.nFeederRoot;++i)
{
INT system=m_nNodeSubSystem[m_nNewFeederRoot[i]];
for(POSITION pos=m_nBranchMap.GetStartPosition();pos!=NULL;)
{
UINT key=0;
CBranch* pBranch;
m_nBranchMap.GetNextAssoc(pos,key,pBranch);
if(!pBranch->m_bState) continue;
if(m_nBranchSubSystem[key]==system)
m_nDNetInfo.wDNetPWaste+=fabs(pBranch->m_wPHead-pBranch->m_wPTail);
}
}
return m_nDNetInfo.wDNetPWaste;
}
BOOL CDNet::GetNodeAtElement(UINT nElement,UINT& nNode)
{
if(nElement>m_nDNetInfo.nMaxElement||nElement<=0)
return FALSE;
nNode=m_nMaxElementArray[nElement];
return TRUE;
}
BOOL CDNet::GetNodeData(INT nIndex,double& voltage,double& wP,double& wQ)
{
if(nIndex>INT( m_nDNetInfo.nMaxElement)||nIndex<=0)
return FALSE;
if(m_nMaxElementArray[nIndex]==-1) return FALSE;
int node=m_nMaxElementArray[nIndex];
if(!IsOnSystem(node)) return FALSE;
if(m_nDNetInfo.m_bMark)
{
voltage=m_nNodeArray[m_nMaxElementArray[nIndex]].wVoltage;
wP=m_nNodeArray[m_nMaxElementArray[nIndex]].wP;
wQ=m_nNodeArray[m_nMaxElementArray[nIndex]].wQ;
}
else
{
voltage=m_nNodeArray[nIndex].wVoltage*m_nDNetInfo.wVB;
wP=m_nNodeArray[nIndex].wP*m_nDNetInfo.wSB;
wQ=m_nNodeArray[nIndex].wQ*m_nDNetInfo.wSB;
}
return TRUE;
}
BOOL CDNet::GetBranchData(INT nIndex,UINT& head,UINT& tail,double& wPHead,double& wQHead,
double& wPTail,double& wQTail,double& wCurrent)
{
if(nIndex>m_nDNetInfo.nTBranch||nIndex<=0)
return FALSE;
if(m_nBranchMap[nIndex]->m_bState==FALSE)
return FALSE;
int node=m_nBranchMap[nIndex]->m_nHeadNode;
if(!IsOnSystem(node)) return FALSE;
if(m_nDNetInfo.m_bMark)
{
head=m_nBranchMap[nIndex]->m_nHeadElement;
tail=m_nBranchMap[nIndex]->m_nTailElement;
wPHead=m_nBranchMap[nIndex]->m_wPHead;
wQHead=m_nBranchMap[nIndex]->m_wQHead;
wPTail=m_nBranchMap[nIndex]->m_wPTail;
wQTail=m_nBranchMap[nIndex]->m_wQTail;
wCurrent=sqrt(wPHead*wPHead+wQHead*wQHead)/(m_nNodeArray[node].wVoltage*sqrt(3.0));
}
else
{
head=m_nBranchMap[nIndex]->m_nHeadNode;
tail=m_nBranchMap[nIndex]->m_nTailNode;
wPHead=m_nBranchMap[nIndex]->m_wPHead*m_nDNetInfo.wSB;
wQHead=m_nBranchMap[nIndex]->m_wQHead*m_nDNetInfo.wSB;
wPTail=m_nBranchMap[nIndex]->m_wPTail*m_nDNetInfo.wSB;
wQTail=m_nBranchMap[nIndex]->m_wQTail*m_nDNetInfo.wSB;
wCurrent=sqrt(wPHead*wPHead+wQHead*wQHead)/m_nNodeArray[node].wVoltage;
}
//TRACE("%d %d %d %f %f\n",nIndex,head,tail,wCurrentRe,wCurrentIm);
return TRUE;
}
BOOL CDNet::BranchWaste(INT nIndex,UINT& head,UINT& tail,double& PWaste,
double& QWaste,double& wCurrent)
{
if(nIndex>m_nDNetInfo.nTBranch||nIndex<=0||m_nBranchMap[nIndex]->m_nType==TRANS)
return FALSE;
if(m_nBranchMap[nIndex]->m_bState==FALSE)
return FALSE;
int node=m_nBranchMap[nIndex]->m_nHeadNode;
if(!IsOnSystem(node)) return FALSE;
head=m_nBranchMap[nIndex]->m_nHeadElement;
tail=m_nBranchMap[nIndex]->m_nTailElement;
double wPHead=m_nBranchMap[nIndex]->m_wPHead;
double wQHead=m_nBranchMap[nIndex]->m_wQHead;
PWaste=m_nBranchMap[nIndex]->m_wPHead-m_nBranchMap[nIndex]->m_wPTail;
QWaste=m_nBranchMap[nIndex]->m_wQHead-m_nBranchMap[nIndex]->m_wQTail;
wCurrent=sqrt(wPHead*wPHead+wQHead*wQHead)/(m_nNodeArray[node].wVoltage*sqrt(3.0));
if(!m_nDNetInfo.m_bMark)
{
PWaste=PWaste*m_nDNetInfo.wSB;
QWaste=QWaste*m_nDNetInfo.wSB;
wCurrent=sqrt(wPHead*wPHead+wQHead*wQHead)/m_nNodeArray[node].wVoltage;
}
return TRUE;
}
BOOL CDNet::TransWaste(INT nIndex,UINT& head,UINT& tail,double& PFeWaste,
double& QFeWaste,double& PCuWaste,double& QCuWaste,
double& wCurrent)
{
if(nIndex>m_nDNetInfo.nTBranch||nIndex<=0||m_nBranchMap[nIndex]->m_nType==BRANCH)
return FALSE;
if(m_nBranchMap[nIndex]->m_bState==FALSE)
return FALSE;
for(INT i=1;i<=m_nDNetInfo.nFeederRoot;++i)
{
INT system=m_nNodeSubSystem[m_nNewFeederRoot[i]];
if(m_nBranchSubSystem[nIndex]==system)
{
int node=m_nBranchMap[nIndex]->m_nHeadNode;
head=m_nBranchMap[nIndex]->m_nHeadElement;
tail=m_nBranchMap[nIndex]->m_nTailElement;
double wPHead=m_nBranchMap[nIndex]->m_wPHead;
double wQHead=m_nBranchMap[nIndex]->m_wQHead;
PFeWaste=fabs((1e-3)*m_nBranchMap[nIndex]->m_dP0TRANS*m_nNodeArray[m_nBranchMap[nIndex]->m_nHeadNode].wVoltage*
m_nNodeArray[m_nBranchMap[nIndex]->m_nHeadNode].wVoltage/(m_nBranchMap[nIndex]->m_VnTRANS*
m_nBranchMap[nIndex]->m_VnTRANS));
QFeWaste=fabs((1e-3)*0.01*m_nBranchMap[nIndex]->m_CurrentTRANS*m_nBranchMap[nIndex]->m_SnTRANS*
m_nNodeArray[m_nBranchMap[nIndex]->m_nHeadNode].wVoltage*
m_nNodeArray[m_nBranchMap[nIndex]->m_nHeadNode].wVoltage/(m_nBranchMap[nIndex]->m_VnTRANS*
m_nBranchMap[nIndex]->m_VnTRANS));
PCuWaste=fabs(m_nBranchMap[nIndex]->m_wPHead-m_nBranchMap[nIndex]->m_wPTail-PFeWaste);
QCuWaste=fabs(m_nBranchMap[nIndex]->m_wQHead-m_nBranchMap[nIndex]->m_wQTail-QFeWaste);
wCurrent=sqrt(wPHead*wPHead+wQHead*wQHead)/(m_nNodeArray[node].wVoltage*sqrt(3.0));
if(!m_nDNetInfo.m_bMark)
{
PFeWaste*=m_nDNetInfo.wSB;
QFeWaste*=m_nDNetInfo.wSB;
PCuWaste*=m_nDNetInfo.wSB;
QCuWaste*=m_nDNetInfo.wSB;
wCurrent=sqrt(wPHead*wPHead+wQHead*wQHead)/m_nNodeArray[node].wVoltage;
}
return TRUE;
}
}
return FALSE;
}
int CDNet::GetMaxElement()
{
return m_nDNetInfo.nMaxElement;
}
int CDNet::GetBranchNumber()
{
return m_nDNetInfo.nTBranch;
}
BOOL CDNet::GetSwitchInfo(INT nIndex,INT& head,INT& tail,double& current)
{
if(nIndex<=0||nIndex>m_nDNetInfo.nSwitch) return FALSE;
if(!m_nSwitchMap[nIndex]->bState) return FALSE;
int node=m_nSwitchMap[nIndex]->nHeadElement;
if(!IsOnSystem(m_nMaxElementArray[node])) return FALSE;
int node1=m_nSwitchMap[nIndex]->nTailElement;
head=node;
tail=node1;
BOOL bHead=IsLinkSwitch(nIndex,node);
double CurrentRe=0,CurrentIm=0;
if(!bHead)
{
current=AccountCurrent(node,CurrentRe,CurrentIm);
return TRUE;
}
BOOL bTail=IsLinkSwitch(nIndex,node1);
if(!bTail)
{
head=node1;
tail=node;
current=AccountCurrent(node1,CurrentRe,CurrentIm);
return TRUE;
}
int node2=node;
if(bHead==3&&bTail==3) return FALSE;
if(bHead==3)
{
node2=node1;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -