⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 homotpro.c

📁 电力系统分析计算 学习调试程序 UNIX / LINUX / CYGWIN 系统使用
💻 C
📖 第 1 页 / 共 3 页
字号:
  }  if (ExistParameter('m')) fCustomPrint(Out,"\nx=[\n");  else fCustomPrint(Out,"\n");  if (ExistParameter('d') && (Out!=stdout || !NullName(NameParameter('l')))) {    fCustomPrint(stderr,"L.F.    ");    for(Lptr=Vlist;Lptr!=NULL;Lptr=Lptr->Next) fCustomPrint(stderr,"%s%-5d    ",Lptr->Type,Lptr->N);    for(Lptr=Vlist;Lptr!=NULL;Lptr=Lptr->Next) if (Lptr->AC!=NULL) {      if (Lptr->AC->Gen!=NULL) {        fCustomPrint(stderr,"Ia%-5d    ",Lptr->N);        fCustomPrint(stderr,"Eq%-5d    ",Lptr->N);        fCustomPrint(stderr,"dg%-5d    ",Lptr->N);      }    }    for (i=0,DCptr=dataPtr->DCbus;DCptr!=NULL;DCptr=DCptr->Next) if(!strcmp(DCptr->Type,"R")) {      i++;      fCustomPrint(stderr,"alR_%-2d    ",i);      fCustomPrint(stderr,"muR_%-2d    ",i);      fCustomPrint(stderr,"tpR_%-2d    ",i);      fCustomPrint(stderr,"gaI_%-2d    ",i);      fCustomPrint(stderr,"muI_%-2d    ",i);      fCustomPrint(stderr,"tpI_%-2d    ",i);    }    fCustomPrint(stderr,"\n");  }}/* --------------------------- VoltProf --------------------------------- */#ifdef ANSIPROTOvoid VoltProf(BOOLEAN flag,FILE *Out)#elsevoid VoltProf(flag,Out)BOOLEAN flag;FILE *Out;#endif/* Write voltage profiles. */{  ACbusData *ACptr;  AreaData *Aptr;  AClist *Lptr;  DClist *DCLptr;  DCbusData *DCptrI,*DCptrR;  ElementData *Eptr;  ElementList *ELptr;  VALUETYPE Vi,Vj,di,dj,Gi,Gj,G,B,Gp,Bp,P;#ifdef WINDOWS  int currElement=0;#endif  Print(Out,0,6,4,lambda_o+lambda); fCustomPrint(Out,"    ");  for(Lptr=Vlist;Lptr!=NULL;Lptr=Lptr->Next) {    ACptr=Lptr->AC;    Aptr=Lptr->Area;    if (ACptr!=NULL) {      if (!strcmp(Lptr->Type,"V")) 	  {		  Print(Out,0,6,4,ACptr->V); 		  fCustomPrint(Out,"    "); #ifdef WINDOWS		  if (GraphDlg!=NULL)		  {			  GraphDlg->m_GraphCtrl.PlotXY(lambda_o+lambda, ACptr->V, currElement);			  GraphDlg->CheckRange(lambda_o+lambda, ACptr->V);			  if (++currElement > 7) 				  currElement = 0;			  GraphDlg->m_GraphCtrl.SetYLabel("V");		  }#endif	  }      else if (!strcmp(Lptr->Type,"D")) 	  {		  Print(Out,0,6,2,ACptr->Ang*AngTr); 		  fCustomPrint(Out,"    ");#ifdef WINDOWS		  if (GraphDlg!=NULL)		  {			  GraphDlg->m_GraphCtrl.PlotXY(lambda_o+lambda, ACptr->Ang*AngTr, currElement);			  GraphDlg->CheckRange(lambda_o+lambda, ACptr->Ang*AngTr);			  if (++currElement > 7) 				  currElement = 0;			  GraphDlg->m_GraphCtrl.SetYLabel("D");		  }#endif	  }      else if (!strcmp(Lptr->Type,"PG")) 	  {		  Print(Out,0,6,2,ACptr->PG*Sn); 		  fCustomPrint(Out,"    ");#ifdef WINDOWS		  if (GraphDlg!=NULL)		  {			  GraphDlg->m_GraphCtrl.PlotXY(lambda_o+lambda, ACptr->PG*Sn, currElement);			  GraphDlg->CheckRange(lambda_o+lambda, ACptr->PG*Sn);			  if (++currElement > 7) 				  currElement = 0;			  GraphDlg->m_GraphCtrl.SetYLabel("PG");		  }#endif	  }      else if (!strcmp(Lptr->Type,"QG")) 	  {		  Print(Out,0,6,2,ACptr->Qg*Sn); 		  fCustomPrint(Out,"    ");#ifdef WINDOWS		  if (GraphDlg!=NULL)		  {			  GraphDlg->m_GraphCtrl.PlotXY(lambda_o+lambda, ACptr->Qg*Sn, currElement);			  GraphDlg->CheckRange(lambda_o+lambda, ACptr->Qg*Sn);			  if (++currElement > 7) 				  currElement = 0;			  GraphDlg->m_GraphCtrl.SetYLabel("QG");		  }#endif	  	  }      else if (!strcmp(Lptr->Type,"PL")) 	  {		  Print(Out,0,6,2,ACptr->PL*Sn); 		  fCustomPrint(Out,"    ");#ifdef WINDOWS		  if (GraphDlg!=NULL)		  {			  GraphDlg->m_GraphCtrl.PlotXY(lambda_o+lambda, ACptr->PL*Sn, currElement);			  GraphDlg->CheckRange(lambda_o+lambda, ACptr->PL*Sn);			  if (++currElement > 7) 				  currElement = 0;			  GraphDlg->m_GraphCtrl.SetYLabel("PL");		  }#endif	  	  }      else if (!strcmp(Lptr->Type,"QL")) 	  {		  Print(Out,0,6,2,ACptr->QL*Sn); 		  fCustomPrint(Out,"    ");#ifdef WINDOWS		  if (GraphDlg!=NULL)		  {			  GraphDlg->m_GraphCtrl.PlotXY(lambda_o+lambda, ACptr->QL*Sn, currElement);			  GraphDlg->CheckRange(lambda_o+lambda, ACptr->QL*Sn);			  if (++currElement > 7) 				  currElement = 0;			  GraphDlg->m_GraphCtrl.SetYLabel("QL");		  }#endif	  	  }    }    else if (Aptr!=NULL) {      Aptr->SPg=0;      for (DCLptr=Aptr->DC;DCLptr!=NULL;DCLptr=DCLptr->Next) {        DCptrR=DCLptr->DC->Meter;        P= -DCptrR->P;        if(DCptrR->Area!=Aptr) P= -P;        Aptr->SPg=Aptr->SPg+P;      }      for(ELptr=Aptr->Elem;ELptr!=NULL;ELptr=ELptr->Next) {        Eptr=ELptr->Eptr;        Vi=Eptr->From->V;  di=Eptr->From->Ang;        Vj=Eptr->To->V;    dj=Eptr->To->Ang;        G=(Eptr->G*cos(Eptr->Ang)-Eptr->B*sin(Eptr->Ang))*Eptr->Tap;        B=(Eptr->G*sin(Eptr->Ang)+Eptr->B*cos(Eptr->Ang))*Eptr->Tap;        Gi=(Eptr->G1+Eptr->G)*pow(Eptr->Tap,2.0)-G;        Gp=(Eptr->G*cos(Eptr->Ang)+Eptr->B*sin(Eptr->Ang))*Eptr->Tap;        Bp=(-Eptr->G*sin(Eptr->Ang)+Eptr->B*cos(Eptr->Ang))*Eptr->Tap;        Gj=Eptr->G+Eptr->G2-Gp;        if (Eptr->From==Eptr->Meter) {          P=Vi*Vi*(Gi+G)-Vi*Vj*(G*cos(di-dj)+B*sin(di-dj));        } else {          P=Vj*Vj*(Gj+Gp)-Vi*Vj*(Gp*cos(dj-di)+Bp*sin(dj-di));        }        if(Eptr->Meter->Area!=Aptr) P= -P;        Aptr->SPg=Aptr->SPg+P;      }      Print(Out,0,6,2,Aptr->SPg*Sn); fCustomPrint(Out,"    ");    }  }  if (ExistParameter('e')) for(Lptr=Vlist;Lptr!=NULL;Lptr=Lptr->Next) {    ACptr=Lptr->AC;    if (ACptr!=NULL && ACptr->Gen!=NULL) {      Print(Out,0,6,4,ACptr->Gen->Ia); fCustomPrint(Out,"    ");      Print(Out,0,6,4,ACptr->Gen->Eq); fCustomPrint(Out,"    ");      Print(Out,0,6,2,ACptr->Gen->dg*AngTr); fCustomPrint(Out,"    ");   }  }  if (ExistParameter('O')) {    TEFac(flag);    Print(Out,0,field,4,Vac);  fCustomPrint(Out,"    ");    TEFdc(Out);  }  else if (ExistParameter('e')) {    for (DCptrR=dataPtr->DCbus;DCptrR!=NULL;DCptrR=DCptrR->Next) if(!strcmp(DCptrR->Type,"R")) {      DCptrI=DCptrR->To;      Print(Out,0,6,2,DCptrR->Alfa*AngTr); fCustomPrint(Out,"    ");      Print(Out,0,6,2,DCptrI->Gamma*AngTr); fCustomPrint(Out,"    ");      Print(Out,0,6,2,DCptrI->Id*1000.*Sn/DCptrR->Vn); fCustomPrint(Out,"    ");    }  }  if (flagPrintTotalPl) { Print(Out,0,8,2,TotalPl*Sn); fCustomPrint(Out,"    "); }  if (flagPrintTotalQl) { Print(Out,0,8,2,TotalQl*Sn); fCustomPrint(Out,"    "); }  if (flagPrintTotalPg) { Print(Out,0,8,2,TotalPg*Sn); fCustomPrint(Out,"    "); }  if (flagPrintTotalQg) { Print(Out,0,8,2,TotalQg*Sn); fCustomPrint(Out,"    "); }  if (ExistParameter('d') && (Out!=stdout || !NullName(NameParameter('l')))) {    Print(stderr,0,6,4,lambda_o+lambda); fCustomPrint(stderr,"    ");    for(Lptr=Vlist;Lptr!=NULL;Lptr=Lptr->Next) {      ACptr=Lptr->AC;      Aptr=Lptr->Area;      if (ACptr!=NULL) {        if (!strcmp(Lptr->Type,"V")) {Print(stderr,0,6,4,ACptr->V); fCustomPrint(stderr,"    "); }        else if (!strcmp(Lptr->Type,"D")) {Print(stderr,0,6,2,ACptr->Ang*AngTr); fCustomPrint(stderr,"    ");}        else if (!strcmp(Lptr->Type,"PG")) {Print(stderr,0,6,2,ACptr->PG*Sn); fCustomPrint(stderr,"    ");}        else if (!strcmp(Lptr->Type,"QG")) {Print(stderr,0,6,2,ACptr->Qg*Sn); fCustomPrint(stderr,"    ");}        else if (!strcmp(Lptr->Type,"PL")) {Print(stderr,0,6,2,ACptr->PL*Sn); fCustomPrint(stderr,"    ");}        else if (!strcmp(Lptr->Type,"QL")) {Print(stderr,0,6,2,ACptr->QL*Sn); fCustomPrint(stderr,"    ");}      }      else if (Aptr!=NULL) {Print(stderr,0,6,2,Aptr->SPg*Sn); fCustomPrint(stderr,"    ");}    }    for(Lptr=Vlist;Lptr!=NULL;Lptr=Lptr->Next) {      ACptr=Lptr->AC;      if (ACptr!=NULL && ACptr->Gen!=NULL) {        Print(stderr,0,6,4,ACptr->Gen->Ia); fCustomPrint(stderr,"    ");        Print(stderr,0,6,4,ACptr->Gen->Eq); fCustomPrint(stderr,"    ");        Print(stderr,0,6,2,ACptr->Gen->dg*AngTr); fCustomPrint(stderr,"    ");     }    }    for (DCptrR=dataPtr->DCbus;DCptrR!=NULL;DCptrR=DCptrR->Next) if(!strcmp(DCptrR->Type,"R")) {      DCptrI=DCptrR->To;      Print(stderr,0,6,2,DCptrR->Alfa*AngTr); fCustomPrint(stderr,"    ");      Print(stderr,0,6,2,(PI-DCptrR->Alfa-DCptrR->Gamma)*AngTr); fCustomPrint(stderr,"    ");      Print(stderr,0,6,4,DCptrR->Tap); fCustomPrint(stderr,"    ");      Print(stderr,0,6,2,DCptrI->Gamma*AngTr); fCustomPrint(stderr,"    ");      Print(stderr,0,6,2,(PI-DCptrI->Alfa-DCptrI->Gamma)*AngTr); fCustomPrint(stderr,"    ");      Print(stderr,0,6,4,DCptrI->Tap); fCustomPrint(stderr,"    ");    }    fCustomPrint(stderr,"\n");  }}/* --------------------------- PrintDirection --------------------------------- */#ifdef ANSIPROTOvoid PrintDirection(char Option,VALUETYPE *vector,VALUETYPE Max)#elsevoid PrintDirection(Option,vector,Max)char Option;VALUETYPE *vector,Max;#endif/* Print direction vector  */{  INDEX i,j,k,N,I,J;  ACbusData *ACptr;  DCbusData *DCptr,*DCptrR,*DCptrI;  SVCbusData *SVCptr;                  /* FACTS */  TCSCbusData *TCSCptr;                /* FACTS */  STATCOMbusData *STATCOMptr;          /* FACTS */  ElementData *Eptr;  ElementList *ELptr;  char str[80],type[2];  FILE *Out;  Out=OpenOutput(NameParameter(Option));  N=Jac->n1;  fCustomPrint(Out,"%d 1\n",N);  for (i=0,ACptr=dataPtr->ACbus; ACptr!=NULL; ACptr=ACptr->Next){    if (ACptr->Cont!=NULL){      if (strpbrk(ACptr->Type,"S")) sprintf(str,"kg%-d",ACptr->Num);      else                          sprintf(str,"d%-d",ACptr->Num);      i++;      fCustomPrint(Out,"%4d %8s %-11.5g\n",i,str,vector[i]/Max);      sprintf(str,"V%-d",ACptr->Num); i++;      fCustomPrint(Out,"%4d %8s %-11.5g\n",i,str,vector[i]/Max);    }    else if(strpbrk(ACptr->Type,"L")){      sprintf(str,"d%-d",ACptr->Num); i++;      fCustomPrint(Out,"%4d %8s %-11.5g\n",i,str,vector[i]/Max);      i++;      fCustomPrint(Out,"%4d %8s %-11.5g\n",i,"l",vector[i]/Max);    }    else if(QRcont && strpbrk(ACptr->Type,"C")){      sprintf(str,"d%-d",ACptr->Num); i++;      fCustomPrint(Out,"%4d %8s %-11.5g\n",i,str,vector[i]/Max);      sprintf(str,"Q%-d",ACptr->Num); i++;      fCustomPrint(Out,"%4d %8s %-11.5g\n",i,str,vector[i]/Max);    }    else if(Rcont && strpbrk(ACptr->Type,"T")){      sprintf(str,"d%-d",ACptr->Num); i++;      fCustomPrint(Out,"%4d %8s %-11.5g\n",i,str,vector[i]/Max);      for(ELptr=ACptr->Reg;ELptr!=NULL;ELptr=ELptr->Next){         Eptr=ELptr->Eptr;         I=Eptr->From->Num;         J=Eptr->To->Num;         if(!strcmp(Eptr->Type,"R")) break;      }      sprintf(str,"1/t%-d_%-d",I,J); i++;      fCustomPrint(Out,"%4d %8s %-11.5g\n",i,str,vector[i]/Max);    }    else if(strpbrk(ACptr->Type,"Q") || strpbrk(ACptr->Type,"V") || (!QRcont && strpbrk(ACptr->Type,"G"))){      if (strpbrk(ACptr->Type,"S")) sprintf(str,"kg%-d",ACptr->Num);      else                          sprintf(str,"d%-d",ACptr->Num);      i++;      fCustomPrint(Out,"%4d %8s %-11.5g\n",i,str,vector[i]/Max);      sprintf(str,"Qg%-d",ACptr->Num); i++;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -