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

📄 homotloa.c

📁 电力系统分析计算 学习调试程序 UNIX / LINUX / CYGWIN 系统使用
💻 C
📖 第 1 页 / 共 4 页
字号:
    }  }  if (FlagUpdateVar)  for (ACptr=dataPtr->ACbus; ACptr!=NULL; ACptr=ACptr->Next){    if(QRcont && strpbrk(ACptr->Type,"G") && strpbrk(ACptr->cont,"V")){      i=ACvar[ACptr->Cont->N]+1;      ACptr->Qg=(x0[i]+Dx[i])*ACptr->Kbg;      if (Qlim && ACptr->Qg>=ACptr->Max){        count++; val=fabs((ACptr->Qg-ACptr->Max)/(Dx[i]*ACptr->Kbg));        if(ExistParameter('d')) fCustomPrint(stderr,"%s %d %s %s %lf\n",ACptr->Type,ACptr->Num,ACptr->Name,Qmax,val);        ACptr->Qg=ACptr->Max;}      else if (Qlim && ACptr->Qg<=ACptr->Min){        count++; val=fabs((ACptr->Qg-ACptr->Min)/(Dx[i]*ACptr->Kbg));        if(ExistParameter('d')) fCustomPrint(stderr,"%s %d %s %s %lf\n",ACptr->Type,ACptr->Num,ACptr->Name,Qmin,val);        ACptr->Qg=ACptr->Min;}      else val=0;      if (val>consp) 		  consp=val;    }  }  i=NacVar;  for(DCptrR=dataPtr->DCbus;DCptrR!=NULL;DCptrR=DCptrR->Next){    DCptrI=DCptrR->To;    if(!strcmp(DCptrR->Type,"R")){      for (j=1;j<=2;j++) {        if (j==1) DCptr=DCptrR;        else DCptr=DCptrI;        if(strcmp(DCptr->Cont1,"VD")&&strcmp(DCptr->Cont2,"VD")) {          i++; if (FlagLoadX0) x0[i]=DCptr->Vd;          if (FlagUpdateVar) {            DCptr->Vd=x0[i]+Dx[i];            if (j==2 && ((DCptr->Tap>=DCptr->TapMax && DCptr->Vd>=DCptr->VdN)||                (DCptr->Tap<=DCptr->TapMin && DCptr->Vd<=DCptr->VdN) ||                (strpbrk(DCptr->Cont2,"IP")&&DCptr->Tap>DCptr->TapMin&&DCptr->Vd>=DCptr->VdN))){              val=fabs((DCptr->Vd-DCptr->VdN)/Dx[i]);              if(ExistParameter('d')) fCustomPrint(stderr,"%s %s VdN %lf\n",DCptr->Type,DCptr->Name,val);              DCptr->Vd=DCptr->VdN;}            else val=0;            if (val>consp) 				consp=val;          }        }        if(strcmp(DCptr->Cont1,"AT")&&strcmp(DCptr->Cont2,"AT")) {          i++; if (FlagLoadX0) x0[i]=DCptr->Tap*DCptr->Ntrf;          if (FlagUpdateVar) {            DCptr->Tap=(x0[i]+Dx[i])/DCptr->Ntrf;            if (DCptr->Tap>=DCptr->TapMax){              val=fabs(DCptr->Ntrf*(DCptr->Tap-DCptr->TapMax)/Dx[i]);              if(ExistParameter('d')) fCustomPrint(stderr,"%s %s Tmax %lf\n",DCptr->Type,DCptr->Name,val);              DCptr->Tap=DCptr->TapMax;}            else if (DCptr->Tap<=DCptr->TapMin){              val=fabs(DCptr->Ntrf*(DCptr->Tap-DCptr->TapMin)/Dx[i]);              if(ExistParameter('d')) fCustomPrint(stderr,"%s %s Tmin %lf\n",DCptr->Type,DCptr->Name,val);              DCptr->Tap=DCptr->TapMin;}            else val=0;            if (val>consp) 				consp=val;          }        }        if(strcmp(DCptr->Cont1,"AL")&&strcmp(DCptr->Cont2,"AL")) {          i++; if (FlagLoadX0) x0[i]=cos(DCptr->Alfa);          if (FlagUpdateVar) {            DCptr->val[0]=x0[i]+Dx[i];            if (DCptr->val[0]<=cos(DCptr->AlfaMax)){              val=fabs((DCptr->val[0]-cos(DCptr->AlfaMax))/Dx[i]);              if(ExistParameter('d')) fCustomPrint(stderr,"%s %s Amax %lf\n",DCptr->Type,DCptr->Name,val);              DCptr->Alfa=DCptr->AlfaMax;}            if (DCptr->val[0]>=cos(DCptr->AlfaMin)){              val=fabs((DCptr->val[0]-cos(DCptr->AlfaMin))/Dx[i]);              if(ExistParameter('d')) fCustomPrint(stderr,"%s %s Amin %lf\n",DCptr->Type,DCptr->Name,val);              DCptr->Alfa=DCptr->AlfaMin;}            else if (j==1 && ((DCptr->Tap>=DCptr->TapMax && DCptr->val[0]<=cos(DCptr->AlfaN))||                     (DCptr->Tap<=DCptr->TapMin && DCptr->val[0]>=cos(DCptr->AlfaN)))){              val=fabs((DCptr->val[0]-cos(DCptr->AlfaN))/Dx[i]);              if(ExistParameter('d')) fCustomPrint(stderr,"%s %s Anom %lf\n",DCptr->Type,DCptr->Name,val);              DCptr->Alfa=DCptr->AlfaN;}            else { val=0; DCptr->Alfa=acos(DCptr->val[0]);}            if (val>consp) 				consp=val;          }        }        if(strcmp(DCptr->Cont1,"GA")&&strcmp(DCptr->Cont2,"GA")) {          i++; if (FlagLoadX0) x0[i]=cos(DCptr->Gamma);          if (FlagUpdateVar) {            DCptr->val[0]=x0[i]+Dx[i];            if (DCptr->val[0]>=cos(DCptr->GammaMin)){              val=fabs((DCptr->val[0]-cos(DCptr->GammaMin))/Dx[i]);              if(ExistParameter('d')) fCustomPrint(stderr,"%s %s Gmin %lf\n",DCptr->Type,DCptr->Name,val);              DCptr->Gamma=DCptr->GammaMin;}            else { val=0; DCptr->Gamma=acos(DCptr->val[0]);}            if (val>consp) 				consp=val;          }        }        i++; if (FlagLoadX0) x0[i]=DCptr->MVA;        if (FlagUpdateVar) DCptr->MVA=x0[i]+Dx[i];        if(strcmp(DCptr->Cont1,"PA")&&strcmp(DCptr->Cont2,"PA")) {          i++; if (FlagLoadX0) x0[i]=DCptr->P;          if (FlagUpdateVar) DCptr->P=x0[i]+Dx[i];        }        if(strcmp(DCptr->Cont1,"QA")&&strcmp(DCptr->Cont2,"QA")) {          i++; if (FlagLoadX0) x0[i]=DCptr->Q;          if (FlagUpdateVar) DCptr->Q=x0[i]+Dx[i];        }      }      if(strcmp(DCptrR->Cont1,"ID")&&strcmp(DCptrR->Cont2,"ID")&&         strcmp(DCptrI->Cont1,"ID")&&strcmp(DCptrI->Cont2,"ID")) {        i++; if (FlagLoadX0) x0[i]=DCptrR->Id;        if (FlagUpdateVar) DCptrR->Id=DCptrI->Id=x0[i]+Dx[i];      }    }  }                            /* FACTS */  i=NacVar+11*Ndc/2;  for(SVCptr=dataPtr->SVCbus;SVCptr!=NULL;SVCptr=SVCptr->Next){   i++; if(FlagLoadX0) x0[i]=SVCptr->Qsvc;   if(FlagUpdateVar) SVCptr->Qsvc=x0[i]+Dx[i];   i++; if(FlagLoadX0) x0[i]=SVCptr->Bv;   if(FlagUpdateVar) SVCptr->Bv=x0[i]+Dx[i];   if(!strcmp(SVCptr->Cont,"AL")){     i++; if(FlagLoadX0) x0[i]=SVCptr->alpha_svc;     if(FlagUpdateVar){        SVCptr->val=x0[i]+Dx[i];        if(SVCptr->val>=SVCptr->AlphaMax){          val=fabs((SVCptr->val-SVCptr->AlphaMax)/Dx[i]);          if(ExistParameter('d')) fCustomPrint(stderr,"%s AlphaMax %lf\n",SVCptr->Name,val);          SVCptr->alpha_svc=SVCptr->AlphaMax;}        else if(SVCptr->val<=SVCptr->AlphaMin){          val=fabs((SVCptr->val-SVCptr->AlphaMin)/Dx[i]);          if(ExistParameter('d')) fCustomPrint(stderr,"%s AlphaMin %lf\n",SVCptr->Name,val);          SVCptr->alpha_svc=SVCptr->AlphaMin;}        else {val=0;SVCptr->alpha_svc=SVCptr->val;}        if (val>consp) 			consp=val;     }   }   else if(!strcmp(SVCptr->Cont,"MN")){     i++; if(FlagLoadX0) x0[i]=SVCptr->Vvar;     if(FlagUpdateVar){        SVCptr->val=x0[i]+Dx[i];        if(SVCptr->val<=SVCptr->Vref){          val=fabs((SVCptr->val-SVCptr->Vref)/Dx[i]);          if(ExistParameter('d')) fCustomPrint(stderr,"%s Vref_min %lf\n",SVCptr->Name,val);          SVCptr->Vvar=SVCptr->Vref;}        else {val=0;SVCptr->Vvar=SVCptr->val;}        if (val>consp) 			consp=val;     }   }   else {     i++; if(FlagLoadX0) x0[i]=SVCptr->Vvar;     if(FlagUpdateVar){        SVCptr->val=x0[i]+Dx[i];        if(SVCptr->val>=SVCptr->Vref){          val=fabs((SVCptr->val-SVCptr->Vref)/Dx[i]);          if(ExistParameter('d')) fCustomPrint(stderr,"%s Vref_max %lf\n",SVCptr->Name,val);          SVCptr->Vvar=SVCptr->Vref;}        else {val=0;SVCptr->Vvar=SVCptr->val;}        if (val>consp) 			consp=val;     }   }  }  i=NacVar+11*Ndc/2+3*Nsvc;  for(TCSCptr=dataPtr->TCSCbus;TCSCptr!=NULL;TCSCptr=TCSCptr->Next){   i++; if(FlagLoadX0) x0[i]=TCSCptr->Ptcsc;   if(FlagUpdateVar) TCSCptr->Ptcsc=x0[i]+Dx[i];   i++; if(FlagLoadX0) x0[i]=TCSCptr->Qtcsck;   if(FlagUpdateVar) TCSCptr->Qtcsck=x0[i]+Dx[i];   i++; if(FlagLoadX0) x0[i]=TCSCptr->Qtcscm;   if(FlagUpdateVar) TCSCptr->Qtcscm=x0[i]+Dx[i];   i++; if(FlagLoadX0) x0[i]=TCSCptr->Be;   if(FlagUpdateVar) TCSCptr->Be=x0[i]+Dx[i];   i++; if(FlagLoadX0) x0[i]=TCSCptr->alpha_tcsc;   if(FlagUpdateVar){     TCSCptr->val=x0[i]+Dx[i];     if(TCSCptr->val>=TCSCptr->AlphaMax){       val=fabs((TCSCptr->val-TCSCptr->AlphaMax)/Dx[i]);       if(ExistParameter('d')) fCustomPrint(stderr,"%s AlphaMax %lf\n",TCSCptr->Name,val);       TCSCptr->alpha_tcsc=TCSCptr->AlphaMax;}     else if(TCSCptr->val<=TCSCptr->AlphaMin){       val=fabs((TCSCptr->val-TCSCptr->AlphaMin)/Dx[i]);       if(ExistParameter('d')) fCustomPrint(stderr,"%s AlphaMin %lf\n",TCSCptr->Name,val);       TCSCptr->alpha_tcsc=TCSCptr->AlphaMin;}     else {val=0; TCSCptr->alpha_tcsc=TCSCptr->val;}     if (val>consp) 		 consp=val;   }   i++; if(FlagLoadX0) x0[i]=TCSCptr->Itcsc;   if(FlagUpdateVar) TCSCptr->Itcsc=x0[i]+Dx[i];   i++; if(FlagLoadX0) x0[i]=TCSCptr->delta_t;   if(FlagUpdateVar) TCSCptr->delta_t=x0[i]+Dx[i];  }  i=NacVar+11*Ndc/2+3*Nsvc+NtcscVar;  for(STATCOMptr=dataPtr->STATCOMbus;STATCOMptr!=NULL;STATCOMptr=STATCOMptr->Next){   Q=STATCOMptr->Q;   if(!strcmp(STATCOMptr->Cont,"PW") || !strcmp(STATCOMptr->Cont,"AL")){     i++; if(FlagLoadX0) x0[i]=STATCOMptr->I;     if(FlagUpdateVar){        STATCOMptr->val=x0[i]+Dx[i];        if(STATCOMptr->val<=0){          val=fabs((STATCOMptr->val-0.0001)/Dx[i]);          if(ExistParameter('d')) fCustomPrint(stderr,"%s Izero %lf\n",STATCOMptr->Name,val);          STATCOMptr->I=0.0001;}        else if (STATCOMptr->val>=STATCOMptr->Imax && Q>0){          val=fabs((STATCOMptr->val-STATCOMptr->Imax)/Dx[i]);          if(ExistParameter('d')) fCustomPrint(stderr,"%s Imax %lf\n",STATCOMptr->Name,val);          STATCOMptr->I=STATCOMptr->Imax;}        else if(STATCOMptr->val>=STATCOMptr->Imin && Q<0){          val=fabs((STATCOMptr->val-STATCOMptr->Imin)/Dx[i]);          if(ExistParameter('d')) fCustomPrint(stderr,"%s Imin %lf\n",STATCOMptr->Name,val);          STATCOMptr->I=STATCOMptr->Imin;}        else {val=0;STATCOMptr->I=STATCOMptr->val;}        if (val>consp) 			consp=val;     }   }   else if(!strcmp(STATCOMptr->Cont,"MX")){     i++; if(FlagLoadX0) x0[i]=STATCOMptr->Vvar;     if(FlagUpdateVar){        STATCOMptr->val=x0[i]+Dx[i];        if(STATCOMptr->val<=STATCOMptr->Vref){          val=fabs((STATCOMptr->val-STATCOMptr->Vref)/Dx[i]);          if(ExistParameter('d')) fCustomPrint(stderr,"%s Vref_max %lf\n",STATCOMptr->Name,val);          STATCOMptr->Vvar=STATCOMptr->Vref;}        else {val=0;STATCOMptr->Vvar=STATCOMptr->val;}        if (val>consp) 			consp=val;     }   }   else {     i++; if(FlagLoadX0) x0[i]=STATCOMptr->Vvar;     if(FlagUpdateVar){        STATCOMptr->val=x0[i]+Dx[i];        if(STATCOMptr->val>=STATCOMptr->Vref){          val=fabs((STATCOMptr->val-STATCOMptr->Vref)/Dx[i]);          if(ExistParameter('d')) fCustomPrint(stderr,"%s Vref_min %lf\n",STATCOMptr->Name,val);          STATCOMptr->Vvar=STATCOMptr->Vref;}        else {val=0;STATCOMptr->Vvar=STATCOMptr->val;}        if (val>consp) 			consp=val;     }   }   i++; if(FlagLoadX0) x0[i]=STATCOMptr->theta;   if(FlagUpdateVar) STATCOMptr->theta=x0[i]+Dx[i];   i++; if(FlagLoadX0) x0[i]=STATCOMptr->Vdc;   if(FlagUpdateVar) STATCOMptr->Vdc=x0[i]+Dx[i];   i++; if(FlagLoadX0) x0[i]=STATCOMptr->k;   if(FlagUpdateVar) STATCOMptr->k=x0[i]+Dx[i];   i++; if(FlagLoadX0) x0[i]=STATCOMptr->alpha;   if(FlagUpdateVar) STATCOMptr->alpha=x0[i]+Dx[i];   i++; if(FlagLoadX0) x0[i]=STATCOMptr->P;   if(FlagUpdateVar) STATCOMptr->P=x0[i]+Dx[i];   i++; if(FlagLoadX0) x0[i]=STATCOMptr->Q;   if(FlagUpdateVar) STATCOMptr->Q=x0[i]+Dx[i];  }                        /* END FACTS */  if (consp>1) consp=1;  if(Ptr!=NULL) {    BlPtr=Ptr; DxiMax=fabs(valp/Dparam);    if(ExistParameter('d')) fCustomPrint(stderr,"%s %d %s Dx=%lf Max.dx_i=%lf\n",Ptr->Type,Ptr->Num,Ptr->Name,Dx[ACvar[Ptr->N]+1],DxiMax);  }/*  if (FlagLoadX0 && ExistParameter('d') && DxZero!=NULL && NewNumEq<Jac->n1-1) {      for(i=1;i<=Jac->n1-1;i++) {if (DxZero[i]) fCustomPrint(stderr,"%d ",i);}      fCustomPrint(stderr,"\n",i);    } */  if (FlagMakeDxZero) return(consp);  else return(count);}

⌨️ 快捷键说明

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