#include "pch.h" #include "ACSysMG.h" #include #include #include #include #include void ACSysMG::SetPQValueArr(DCNodePQValue PQValueArr[]) //设置PQ矩阵数组 { p_PQValueArr=PQValueArr; } ACSysMG::ACSysMG(void) { p_PQValueArr=nullptr; m_nMaxSigleArrowTrainNums = Max_SigleArrowTrain_Nums; m_nAllPowerStationNums = All_Power_Station_Nums; ACNodeMatrix=new RX *[m_nMaxSigleArrowTrainNums]; for (int i=0;i< m_nMaxSigleArrowTrainNums;i++) { ACNodeMatrix[i]=new RX[m_nMaxSigleArrowTrainNums]; } E=new double[m_nMaxSigleArrowTrainNums]; F=new double[m_nMaxSigleArrowTrainNums]; P=new double[m_nMaxSigleArrowTrainNums]; Q=new double[m_nMaxSigleArrowTrainNums]; m_pElectricEqpmtMap=nullptr; } void ACSysMG::UpdataTrainData(DCSysTrain* pTrain) { } ACSysMG::~ACSysMG(void) { m_CritilSecEqpmt.lock(); if (ACNodeMatrix!=nullptr) { for (int i=0;i< m_nMaxSigleArrowTrainNums;i++) { if(ACNodeMatrix[i]==nullptr) { continue; } delete[] ACNodeMatrix[i]; ACNodeMatrix[i]=nullptr; } delete[] ACNodeMatrix; ACNodeMatrix=nullptr; } delete[] E; E=nullptr; delete[] F; F=nullptr; delete[] P; P=nullptr; delete[] Q; Q=nullptr; // for (EqpmtMap::iterator iterd=m_EqpmtInfoMap.begin();iterd!=m_EqpmtInfoMap.end();iterd++) // { // if (iterd->second!=nullptr) // { // delete iterd->second; // iterd->second=nullptr; // } // } // m_EqpmtInfoMap.clear(); m_CritilSecEqpmt.unlock(); } bool ACSysMG::AddPQNodeData(CalNode& node) //增加PQ节点数据 { if (node.ID>=0) { m_PQNodes.push_back(node); return true; } return false; } bool ACSysMG::AddEqpmtData(EqpmtInfo* pEqpmt) //增加设备数据(ID,状态,种类,ID名字) { if (pEqpmt!=nullptr) { m_CritilSecEqpmt.lock(); m_EqpmtInfoMap.insert(make_pair(pEqpmt->GetID(),pEqpmt));//向设备信息表中增加设备的信息 m_CritilSecEqpmt.unlock(); return true; } return false; } double ACSysMG::CalQiValue(int i) //计算第i个节点的无功功率值, { double sume=0; double sumf=0; if (i< m_nMaxSigleArrowTrainNums &&i111) { int xyx=1; } int row = 2*n; int colom = m_EquationCalcul.lie-1; double bvalue = m_EquationCalcul.b[2*n][m_EquationCalcul.lie-1]; double err = EF_Calculate_Offsize; if ((m_EquationCalcul.b[2*n][m_EquationCalcul.lie-1]>EF_Calculate_Offsize)||(m_EquationCalcul.b[2*n][m_EquationCalcul.lie-1]<-EF_Calculate_Offsize)) //偶数行 {//用于计算F[n] //#define EF_Calculate_Offsize 0.001//?计算时间偏移差 Stop=false; } int row2 = 2*n+1; int colom2 = m_EquationCalcul.lie-1; double bvalue2 = m_EquationCalcul.b[2*n+1][m_EquationCalcul.lie-1]; if ((m_EquationCalcul.b[2*n+1][m_EquationCalcul.lie-1]>EF_Calculate_Offsize)||(m_EquationCalcul.b[2*n+1][m_EquationCalcul.lie-1]<-EF_Calculate_Offsize)) //奇数行 {//用于计算E[n] Stop=false; } double c=F[n+1]-m_EquationCalcul.b[2*n][m_EquationCalcul.lie-1]; double d=E[n+1]-m_EquationCalcul.b[2*n+1][m_EquationCalcul.lie-1]; F[n+1]=F[n+1]-m_EquationCalcul.b[2*n][m_EquationCalcul.lie-1]; //系统功率偏差向量的迭代,P27,公式(3-37) E[n+1]=E[n+1]-m_EquationCalcul.b[2*n+1][m_EquationCalcul.lie-1]; } //TRACE("E0%f,f0%f\n",E[0],F[0]); //TRACE("E1%f,f1%f\n",E[1],F[1]); return Stop; } void ACSysMG::CalResult( ) //计算节点的电压,功率,电流;计算消耗功率的有功功率的输入输出电流,无功功率的输入输出电流 { m_CritilSecEqpmt.lock(); for(int n=1;n106) { double x=E[n]; double y=a*35000; int yur=1; } double e=E[n]; double b=a*35000; m_PQNodes[n].OutputV=a; //节点电压的计算 //与节点关联的馈线m_SubLines电流值的计算 for (int e=0;efind(m_PQNodes[n].BgkID); if (iterBusEqpmt!=m_pElectricEqpmtMap->end()) { if (iterBusEqpmt->second->GetPower()) { iterBusEqpmt->second->m_EqpmtPowerValue.U = m_PQNodes[n].OutputV* Vac/1000; //Vac为交流侧电压基准值 iterBusEqpmt->second->m_EqpmtPowerValue.Uab = m_PQNodes[n].OutputV* Vac/1000; iterBusEqpmt->second->m_EqpmtPowerValue.Ubc = m_PQNodes[n].OutputV* Vac/1000; iterBusEqpmt->second->m_EqpmtPowerValue.Uca = m_PQNodes[n].OutputV* Vac/1000; iterBusEqpmt->second->m_EqpmtPowerValue.Ua = m_PQNodes[n].OutputV* Vac/sqrt(3.0)/1000; iterBusEqpmt->second->m_EqpmtPowerValue.Ub = m_PQNodes[n].OutputV* Vac/sqrt(3.0)/1000; iterBusEqpmt->second->m_EqpmtPowerValue.Uc = m_PQNodes[n].OutputV* Vac/sqrt(3.0)/1000; //若为400V母线节点 //if(m_PQNodes[n].Category==PowerNode_PQL_Category) //{ // double P= m_PQNodes[n].ConsumePowerR; // double Q= m_PQNodes[n].ConsumePowerX; // double i= sqrt(P*P+Q*Q)*Sac/(sqrt(3.0)*m_PQNodes[n].OutputV* Vac); // // iterBusEqpmt->second->m_EqpmtPowerValue.Ia = i/sqrt(3.0); // iterBusEqpmt->second->m_EqpmtPowerValue.Ib = i/sqrt(3.0); // iterBusEqpmt->second->m_EqpmtPowerValue.Ic = i/sqrt(3.0); // iterBusEqpmt->second->m_EqpmtPowerValue.P = P * Sac/1000; // iterBusEqpmt->second->m_EqpmtPowerValue.Q = Q * Sac/1000; // iterBusEqpmt->second->m_EqpmtPowerValue.PF = P/(sqrt(P*P+Q*Q)); //} } else { iterBusEqpmt->second->m_EqpmtPowerValue.U = 0.0; iterBusEqpmt->second->m_EqpmtPowerValue.Uab = 0.0; iterBusEqpmt->second->m_EqpmtPowerValue.Ubc = 0.0; iterBusEqpmt->second->m_EqpmtPowerValue.Uca = 0.0; iterBusEqpmt->second->m_EqpmtPowerValue.Ua = 0.0; iterBusEqpmt->second->m_EqpmtPowerValue.Ub = 0.0; iterBusEqpmt->second->m_EqpmtPowerValue.Uc = 0.0; iterBusEqpmt->second->m_EqpmtPowerValue.I = 0.0; iterBusEqpmt->second->m_EqpmtPowerValue.Ia = 0.0; iterBusEqpmt->second->m_EqpmtPowerValue.Ib = 0.0; iterBusEqpmt->second->m_EqpmtPowerValue.Ic = 0.0; iterBusEqpmt->second->m_EqpmtPowerValue.P = 0.0; iterBusEqpmt->second->m_EqpmtPowerValue.Q = 0.0; iterBusEqpmt->second->m_EqpmtPowerValue.PF = 0.0; } iterBusEqpmt->second->m_EqpmtPowerValue.Position = m_PQNodes[n].Position; } //(2)为与当前节点关联的断路器开关赋值 for(int k=0;kfind(m_PQNodes[n].m_RelationsSwitch[k]); if (iterSwitchEqpmt!=m_pElectricEqpmtMap->end()) { if (iterSwitchEqpmt->second->GetEqpmentType()==Electric_EqpmentType_Breaker) { if (iterSwitchEqpmt->second->GetPower()) { //开关的电压值 double Switch_U = m_PQNodes[n].OutputV* Vac; iterSwitchEqpmt->second->m_EqpmtPowerValue.U = Switch_U/1000; iterSwitchEqpmt->second->m_EqpmtPowerValue.Uab = Switch_U/1000; iterSwitchEqpmt->second->m_EqpmtPowerValue.Ubc = Switch_U/1000; iterSwitchEqpmt->second->m_EqpmtPowerValue.Uca = Switch_U/1000; iterSwitchEqpmt->second->m_EqpmtPowerValue.Ua = Switch_U/(sqrt(3.0)*1000); iterSwitchEqpmt->second->m_EqpmtPowerValue.Ub = Switch_U/(sqrt(3.0)*1000); iterSwitchEqpmt->second->m_EqpmtPowerValue.Uc = Switch_U/(sqrt(3.0)*1000); //开关的电流值:通过支路与节点进行计算 EqpmtMap::iterator iterLine = m_EqpmtInfoMap.begin(); for (;iterLine!=m_EqpmtInfoMap.end();iterLine++) { PowerLine* pLine = (PowerLine*)iterLine->second; for (int m=0;mfirst==m_PQNodes[n].m_Relations[m]) { //(1)若为35kV进出线 if (iterLine->second->GetCateGory()==Eqpmt_Category_Powerline) { if(m_PQNodes[n].Category==PowerNode_PQ_Category||m_PQNodes[n].Category==PowerNode_PQD_Category)//若为35kV母线节点关联支路 { if (pLine->GetLlineID()>=0&&pLine->GetLlineID()< m_nMaxSigleArrowTrainNums &&pLine->GetRlineID()>=0&&pLine->GetRlineID()< m_nMaxSigleArrowTrainNums) { //纯阻抗支路 double Ir=(pLine->GetR()*(E[pLine->GetLlineID()]-E[pLine->GetRlineID()])+pLine->GetX()*(F[pLine->GetLlineID()]-F[pLine->GetRlineID()]))/(pLine->GetR()*pLine->GetR()+pLine->GetX()*pLine->GetX()); double Ix=(pLine->GetR()*(F[pLine->GetLlineID()]-F[pLine->GetRlineID()])-pLine->GetX()*(E[pLine->GetLlineID()]-E[pLine->GetRlineID()]))/(pLine->GetR()*pLine->GetR()+pLine->GetX()*pLine->GetX()); double i_TransLine= sqrt(Ix*Ix+Ir*Ir) * Iac; iterSwitchEqpmt->second->m_EqpmtPowerValue.I = i_TransLine; iterSwitchEqpmt->second->m_EqpmtPowerValue.Ia = i_TransLine/sqrt(3.0); iterSwitchEqpmt->second->m_EqpmtPowerValue.Ib = i_TransLine/sqrt(3.0); iterSwitchEqpmt->second->m_EqpmtPowerValue.Ic = i_TransLine/sqrt(3.0); iterSwitchEqpmt->second->m_EqpmtPowerValue.P = i_TransLine*Switch_U*sqrt(3.0)/1000; } } } //(2)若为35kV动力变馈线 else if (iterLine->second->GetCateGory()==Eqpmt_Category_Powerline_Transformer_35To400) { //负荷支路电流 double i_Load= sqrt(m_PQNodes[n].ConsumePowerR*m_PQNodes[n].ConsumePowerR + m_PQNodes[n].ConsumePowerX*m_PQNodes[n].ConsumePowerX)/m_PQNodes[n].OutputV * Iac; if (m_PQNodes[n].Category==PowerNode_PQL_Category) //若为与400V母线关联的开关 { iterSwitchEqpmt->second->m_EqpmtPowerValue.I = i_Load; iterSwitchEqpmt->second->m_EqpmtPowerValue.Ia = i_Load/sqrt(3.0); iterSwitchEqpmt->second->m_EqpmtPowerValue.Ib = i_Load/sqrt(3.0); iterSwitchEqpmt->second->m_EqpmtPowerValue.Ic = i_Load/sqrt(3.0); iterSwitchEqpmt->second->m_EqpmtPowerValue.P = m_PQNodes[n].ConsumePowerR * Sac/1000; iterSwitchEqpmt->second->m_EqpmtPowerValue.Q = m_PQNodes[n].ConsumePowerX * Sac/1000; iterSwitchEqpmt->second->m_EqpmtPowerValue.S = sqrt(m_PQNodes[n].ConsumePowerR*m_PQNodes[n].ConsumePowerR + m_PQNodes[n].ConsumePowerX*m_PQNodes[n].ConsumePowerX) * Sac/1000; iterSwitchEqpmt->second->m_EqpmtPowerValue.PF = iterSwitchEqpmt->second->m_EqpmtPowerValue.P/iterSwitchEqpmt->second->m_EqpmtPowerValue.S; } else if(m_PQNodes[n].Category==PowerNode_PQ_Category||m_PQNodes[n].Category==PowerNode_PQD_Category) //若为与35kV母线关联的开关 { iterSwitchEqpmt->second->m_EqpmtPowerValue.I = i_Load * 0.0114; //动力变压器变比N1:N2=1:K,其中K=0.0114 iterSwitchEqpmt->second->m_EqpmtPowerValue.Ia = i_Load * 0.0114/sqrt(3.0); iterSwitchEqpmt->second->m_EqpmtPowerValue.Ib = i_Load * 0.0114/sqrt(3.0); iterSwitchEqpmt->second->m_EqpmtPowerValue.Ic = i_Load * 0.0114/sqrt(3.0); iterSwitchEqpmt->second->m_EqpmtPowerValue.P = m_PQNodes[n].ConsumePowerR * Sac/1000; iterSwitchEqpmt->second->m_EqpmtPowerValue.Q = m_PQNodes[n].ConsumePowerX * Sac/1000; iterSwitchEqpmt->second->m_EqpmtPowerValue.S = sqrt(m_PQNodes[n].ConsumePowerR*m_PQNodes[n].ConsumePowerR + m_PQNodes[n].ConsumePowerX*m_PQNodes[n].ConsumePowerX) * Sac/1000; iterSwitchEqpmt->second->m_EqpmtPowerValue.PF = iterSwitchEqpmt->second->m_EqpmtPowerValue.P/iterSwitchEqpmt->second->m_EqpmtPowerValue.S; } } //(3)若为35kV整流变馈线 else if (iterLine->second->GetCateGory()==Eqpmt_Category_Powerline_Transformer_35ToDC) { if (m_PQNodes[n].Category==PowerNode_PQD_Category) { DCSTATIONMAP::iterator iter1 = m_PowerStationNodeMap.begin(); for (;iter1!=m_PowerStationNodeMap.end();iter1++) { Dc_PowerStation& powerstation = iter1->second; for (int k=0;ksecond->m_EqpmtPowerValue.I= i_QY; iterSwitchEqpmt->second->m_EqpmtPowerValue.Ia = i_QY/sqrt(3.0); iterSwitchEqpmt->second->m_EqpmtPowerValue.Ib = i_QY/sqrt(3.0); iterSwitchEqpmt->second->m_EqpmtPowerValue.Ic = i_QY/sqrt(3.0); iterSwitchEqpmt->second->m_EqpmtPowerValue.P = P_QY; iterSwitchEqpmt->second->m_EqpmtPowerValue.Q = Q_QY; iterSwitchEqpmt->second->m_EqpmtPowerValue.S = sqrt(P_QY*P_QY+Q_QY*Q_QY); iterSwitchEqpmt->second->m_EqpmtPowerValue.PF = P_QY/sqrt(P_QY*P_QY+Q_QY*Q_QY); } } } } } //(4)若为母联支路 else if (iterLine->second->GetCateGory()==Eqpmt_Category_Powerline_BusTie) { double U = sqrt(E[pLine->GetLlineID()]*E[pLine->GetLlineID()]+F[pLine->GetLlineID()]*F[pLine->GetLlineID()])*Vac; iterSwitchEqpmt->second->m_EqpmtPowerValue.U = U/1000; iterSwitchEqpmt->second->m_EqpmtPowerValue.Uab = U/1000; iterSwitchEqpmt->second->m_EqpmtPowerValue.Ubc = U/1000; iterSwitchEqpmt->second->m_EqpmtPowerValue.Uca = U/1000; iterSwitchEqpmt->second->m_EqpmtPowerValue.Ua = U/(sqrt(3.0)*1000); iterSwitchEqpmt->second->m_EqpmtPowerValue.Ub = U/(sqrt(3.0)*1000); iterSwitchEqpmt->second->m_EqpmtPowerValue.Uc = U/(sqrt(3.0)*1000); iterSwitchEqpmt->second->m_EqpmtPowerValue.Uc = U/(sqrt(3.0)*1000); } } } } } else { iterSwitchEqpmt->second->m_EqpmtPowerValue.U = 0.0; iterSwitchEqpmt->second->m_EqpmtPowerValue.Uab = 0.0; iterSwitchEqpmt->second->m_EqpmtPowerValue.Ubc = 0.0; iterSwitchEqpmt->second->m_EqpmtPowerValue.Uca = 0.0; iterSwitchEqpmt->second->m_EqpmtPowerValue.Ua = 0.0; iterSwitchEqpmt->second->m_EqpmtPowerValue.Ub = 0.0; iterSwitchEqpmt->second->m_EqpmtPowerValue.Uc = 0.0; iterSwitchEqpmt->second->m_EqpmtPowerValue.I = 0.0; iterSwitchEqpmt->second->m_EqpmtPowerValue.Ia = 0.0; iterSwitchEqpmt->second->m_EqpmtPowerValue.Ib = 0.0; iterSwitchEqpmt->second->m_EqpmtPowerValue.Ic = 0.0; iterSwitchEqpmt->second->m_EqpmtPowerValue.P = 0.0; iterSwitchEqpmt->second->m_EqpmtPowerValue.Q = 0.0; iterSwitchEqpmt->second->m_EqpmtPowerValue.PF = 0.0; } iterSwitchEqpmt->second->m_EqpmtPowerValue.Position = ISCS_DD_EqpmtPosition_Eqpmt; } } } } //xyx新增 end } m_CritilSecEqpmt.unlock(); } bool ACSysMG::CreateYKBMatrix() //产生雅可比矩阵,雅可比矩阵的产生方法 { m_EquationCalcul.Clear(); m_EquationCalcul.SetHangLie(2*m_PQNodes.size()-2,2*m_PQNodes.size()-1); for (int i=1;i& PQIList)//获取有功、无功功率,电流的值 { for(int n=1;n& PQIList)//获取母线电压 { for(int n=0;n& PQIList) //获取电流 { for(int n=1;nsecond; // if (peqpmt->GetCateGory()==Eqpmt_Category_Powerline) // { // PowerLine* pLine = (PowerLine*)iter->second; // if (pLine->GetBgkLineID()>0) // { // POWERVALUE eqpmtupdata; // eqpmtupdata.I= pLine->GetLineI(); // eqpmtupdata.ID= pLine->GetBgkLineID(); // PQIList.push_back(eqpmtupdata); // } // } // } // LeaveCriticalSection(&m_CritilSecEqpmt); } void ACSysMG::InitData() { for (int i=0;i < m_nMaxSigleArrowTrainNums;i++) { if (ifind("{950E7D94-13BA-45B9-9740-BA37DDF86251}"); CalStatus=true; break; } } return CalStatus; //return true; } double ACSysMG::GetOutV(int i)//获致对应节点的输出电压 { if (CalStatus&&i>=0&&i根据直流侧的功率来计算交流侧的功率 { for (int i=1;i=0) { for (int j=0;jsecond; if (pLine->GetStatus()==0) { continue; } double r = pLine->GetR(); //支路设置r、x、b double x = pLine->GetX(); double b = pLine->GetB(); int otherindex=-1; int index =m_PQNodes[i].Index; if (index==111) { int a=0; } else if (index==112) { int b=0; } if (m_PQNodes[i].Index >= 0 && m_PQNodes[i].Index < m_nMaxSigleArrowTrainNums) { //当前节点i处于支路ij的末端 xyx注释 if (m_PQNodes[i].Index!=pLine->GetLlineID()) { if (m_PQNodes[i].Index==pLine->GetRlineID()) { otherindex=pLine->GetLlineID(); } } //当前节点i处于支路ij的首端 xyx注释 else if (m_PQNodes[i].Index!=pLine->GetRlineID()) { otherindex=pLine->GetRlineID(); } if (otherindex>=0) { if (otherindex >= 0 && otherindex < m_nMaxSigleArrowTrainNums) { //if (pLine->GetTransformID()>0) //{ // EqpmtMap::iterator iter1 = m_EqpmtInfoMap.find(pLine->GetTransformID()); // Transform* ptransform =(Transform* )iter1->second; // double TransformRate =ptransform->GetRate(); // ACNodeMatrix[m_PQNodes[i].Index][otherindex].R = -r/((r*r+x*x)*TransformRate); //阻抗实部的计算 电阻 // ACNodeMatrix[m_PQNodes[i].Index][otherindex].X = x/((r*r+x*x)*TransformRate); //阻抗虚部的计算 电抗 // if (ptransform->GetHead()==m_PQNodes[i].ID) // { // ACNodeMatrix[m_PQNodes[i].Index][m_PQNodes[i].Index].R += r/(r*r+x*x); // ACNodeMatrix[m_PQNodes[i].Index][m_PQNodes[i].Index].X +=-x/(r*r+x*x)+b/2; // } // else // { // ACNodeMatrix[m_PQNodes[i].Index][m_PQNodes[i].Index].R += r/((r*r+x*x)*TransformRate*TransformRate); // ACNodeMatrix[m_PQNodes[i].Index][m_PQNodes[i].Index].X +=-x/((r*r+x*x)*TransformRate*TransformRate)+b/2; // } //} //情形1:若支路为变压器支路 xyx注释 //若两节点i、j间为变压器支路,首端i为1侧,末端j为k侧,阻抗z=r+jx放在1侧 //则节点间(1)互导Yij=Yji= -1/(kz),(2)节点i自导Yii=1/z,(3)节点j自导Yjj=1/(k*k*z) if (pLine->GetCateGory()==Eqpmt_Category_Powerline_Transformer_35To400) { double R=11.4; double X=63.7; double K=0.0114; //ACNodeMatrix[m_PQNodes[i].Index][otherindex].R = -r/((r*r+x*x)*1); //阻抗实部的计算 电阻 //ACNodeMatrix[m_PQNodes[i].Index][otherindex].X = x/((r*r+x*x)*1); //阻抗虚部的计算 电抗 //if (pLine->GetLlineID()==m_PQNodes[i].ID) //{ // ACNodeMatrix[m_PQNodes[i].Index][m_PQNodes[i].Index].R += r/(r*r+x*x); // ACNodeMatrix[m_PQNodes[i].Index][m_PQNodes[i].Index].X +=-x/(r*r+x*x)+b/2; //} //else //{ // ACNodeMatrix[m_PQNodes[i].Index][m_PQNodes[i].Index].R += r/((r*r+x*x)*1*1); // ACNodeMatrix[m_PQNodes[i].Index][m_PQNodes[i].Index].X +=-x/((r*r+x*x)*1*1)+b/2; //} //节点间的互导Yij=Yji= -1/(kz) ACNodeMatrix[m_PQNodes[i].Index][otherindex].R = -R/((R*R+X*X)*K); //阻抗实部的计算 电阻 ACNodeMatrix[m_PQNodes[i].Index][otherindex].X = X/((R*R+X*X)*K); //阻抗虚部的计算 电抗 //情形1-1:若当前节点i处于变压器支路首端i(即变压器1侧),则节点i的自导Yii=1/z if (pLine->GetLlineID()==m_PQNodes[i].ID) { ACNodeMatrix[m_PQNodes[i].Index][m_PQNodes[i].Index].R += R/(R*R+X*X); ACNodeMatrix[m_PQNodes[i].Index][m_PQNodes[i].Index].X +=-X/(R*R+X*X)+b/2; } //情形1-2:若当前节点i处于变压器末端j(即变压器k侧),则节点i的自导Yii=1/(k*k*z) else { ACNodeMatrix[m_PQNodes[i].Index][m_PQNodes[i].Index].R += R/((R*R+X*X)*K*K); ACNodeMatrix[m_PQNodes[i].Index][m_PQNodes[i].Index].X +=-X/((R*R+X*X)*K*K)+b/2; } } //情形2:若支路为其他类型支路 xyx注释 else { //ACNodeMatrix[m_PQNodes[i].Index][otherindex].R = -r/(r*r+x*x); //ACNodeMatrix[m_PQNodes[i].Index][otherindex].X = x/(r*r+x*x); ACNodeMatrix[m_PQNodes[i].Index][otherindex].R = -r/(r*r+x*x); //互导Yij ACNodeMatrix[m_PQNodes[i].Index][otherindex].X = x/(r*r+x*x); ACNodeMatrix[index][index].R += r/(r*r+x*x); //自导Yii ACNodeMatrix[index][index].X +=-x/(r*r+x*x)+b/2; } } } } } } } } return true; }