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

📄 homotloa.c

📁 电力系统分析计算 学习调试程序 UNIX / LINUX / CYGWIN 系统使用
💻 C
📖 第 1 页 / 共 4 页
字号:
              else if (Tlim && Eptr->Tap>=1/Eptr->Tmin-0.00001){                count++; val=fabs((Eptr->Tap-1/Eptr->Tmin)/Dx[i]);                if(ExistParameter('d')) fCustomPrint(stderr,"%s %d %s %d %s Tmin %lf\n",Eptr->Type,Eptr->From->Num,Eptr->From->Name,                                                Eptr->To->Num,Eptr->To->Name,val);                Eptr->Tap=1/Eptr->Tmin;}              else val=0;              if (val>consp) 				  consp=val;            }          } else {            if (FlagLoadX0) {              x0[i]=ACptr->V;              if (FlagMakeDxZero && (DxZero!=NULL && (DxZero[i] || (flagReduceSystem && x0[i]!=0 && CountSteps>=NumSteps && fabs(Dx[i]/x0[i])<ZeroDx)))) { Dx[i]=0;  DxZero[i]=TRUE; NewNumEq--; }            }            if (FlagUpdateVar) {              ACptr->V=x0[i]+Dx[i];              if (ACptr->V<=0){                count++; val=fabs((ACptr->V-0.00001)/Dx[i]);                if(ExistParameter('d')) fCustomPrint(stderr,"%s %d %s Vzero %lf\n",ACptr->Type,ACptr->Num,ACptr->Name,val);                ACptr->V=0.00001;}              else val=0;              if (val>consp) 				  consp=val;            }          }        }      }    }    else if(strpbrk(ACptr->Type,"R")){      i=ACvar[ACptr->N];      if (FlagLoadX0) {        x0[i]=ACptr->Ang;        if (FlagMakeDxZero && (DxZero!=NULL && (DxZero[i] || (flagReduceSystem && x0[i]!=0 && CountSteps>=NumSteps && fabs(Dx[i]/x0[i])<ZeroDx)))) { Dx[i]=0;  DxZero[i]=TRUE; NewNumEq--; }      }      if (FlagUpdateVar) ACptr->Ang=x0[i]+Dx[i];      i++;      if (FlagLoadX0) {        x0[i]=ACptr->V;        if (FlagMakeDxZero && (DxZero!=NULL && (DxZero[i] || (flagReduceSystem && x0[i]!=0 && CountSteps>=NumSteps && fabs(Dx[i]/x0[i])<ZeroDx)))) { Dx[i]=0;  DxZero[i]=TRUE; NewNumEq--; }      }      if (FlagUpdateVar) {        ACptr->V=x0[i]+Dx[i];        if (Rcont && ACptr->V>=ACptr->Vmax){          count++; val=fabs((ACptr->V-ACptr->Vmax)/Dx[i]);          if(ExistParameter('d')) fCustomPrint(stderr,"%s %d %s Vmax %lf\n",ACptr->Type,ACptr->Num,ACptr->Name,val);          ACptr->V=ACptr->Vmax;}        else if (Rcont && ACptr->V<=ACptr->Vmin){          count++; val=fabs((ACptr->V-ACptr->Vmin)/Dx[i]);          if(ExistParameter('d')) fCustomPrint(stderr,"%s %d %s Vmin %lf\n",ACptr->Type,ACptr->Num,ACptr->Name,val);          ACptr->V=ACptr->Vmin;}        else if (ACptr->V<=0){          count++; val=fabs((ACptr->V-0.00001)/Dx[i]);          if(ExistParameter('d')) fCustomPrint(stderr,"%s %d %s Vzero %lf\n",ACptr->Type,ACptr->Num,ACptr->Name,val);          ACptr->V=0.00001;}        else val=0;        if (val>consp) 			consp=val;      }    }    else if(strpbrk(ACptr->Type,"V")){      i=ACvar[ACptr->N];      if (FlagLoadX0) {        x0[i]=ACptr->Ang;        if (FlagMakeDxZero && (DxZero!=NULL && (DxZero[i] || (flagReduceSystem && x0[i]!=0 && CountSteps>=NumSteps && fabs(Dx[i]/x0[i])<ZeroDx)))) { Dx[i]=0;  DxZero[i]=TRUE; NewNumEq--; }      }      if (FlagUpdateVar) ACptr->Ang=x0[i]+Dx[i];      i++;      if (!strpbrk(ACptr->cont,"V")) {        if (FlagLoadX0) {          x0[i]=ACptr->V;          if (FlagMakeDxZero && (DxZero!=NULL && (DxZero[i] || (flagReduceSystem && x0[i]!=0 && CountSteps>=NumSteps && fabs(Dx[i]/x0[i])<ZeroDx)))) { Dx[i]=0;  DxZero[i]=TRUE; NewNumEq--; }        }        if (FlagUpdateVar) {          ACptr->V=x0[i]+Dx[i];          if (ACptr->V<=0){            count++; val=fabs((ACptr->V-0.00001)/Dx[i]);            if(ExistParameter('d')) fCustomPrint(stderr,"%s %d %s Vzero %lf\n",ACptr->Type,ACptr->Num,ACptr->Name,val);            ACptr->V=0.00001;}          else if (Vlim && ACptr->V>=ACptr->Vmax){            count++; val=fabs((ACptr->V-ACptr->Vmax)/Dx[i]);            if(ExistParameter('d')) fCustomPrint(stderr,"%s %d %s Vmax %lf\n",ACptr->Type,ACptr->Num,ACptr->Name,val);            ACptr->V=ACptr->Vmax;}          else if (Vlim && ACptr->V<=ACptr->Vmin){            count++; val=fabs((ACptr->V-ACptr->Vmin)/Dx[i]);            if(ExistParameter('d')) fCustomPrint(stderr,"%s %d %s Vmin %lf\n",ACptr->Type,ACptr->Num,ACptr->Name,val);            ACptr->V=ACptr->Vmin;}          else val=0;          if (val>consp) 			  consp=val;        }      }      else {        if (FlagLoadX0) {          x0[i]=ACptr->Qg;          if (FlagMakeDxZero && (DxZero!=NULL && (DxZero[i] || (flagReduceSystem && x0[i]!=0 && CountSteps>=NumSteps && fabs(Dx[i]/x0[i])<ZeroDx)))) { Dx[i]=0;  DxZero[i]=TRUE; NewNumEq--; }        }        if (FlagUpdateVar) {          ACptr->Qg=x0[i]+Dx[i];          if (Recover && ACptr->V>=ACptr->Vmax && ACptr->Qg>=ACptr->VCont){            count++; val=fabs((ACptr->Qg-ACptr->VCont)/Dx[i]);            if(ExistParameter('d')) fCustomPrint(stderr,"%s %d %s RecoverVmax %lf\n",ACptr->Type,ACptr->Num,ACptr->Name,val);            ACptr->Qg=ACptr->VCont;}          else if (Recover && ACptr->V<=ACptr->Vmin && ACptr->Qg<=ACptr->VCont){            count++; val=fabs((ACptr->Qg-ACptr->VCont)/Dx[i]);            if(ExistParameter('d')) fCustomPrint(stderr,"%s %d %s RecoverVmin %lf\n",ACptr->Type,ACptr->Num,ACptr->Name,val);            ACptr->Qg=ACptr->VCont;}          else val=0;          if (val>consp) 			  consp=val;        }      }    }    else if(strpbrk(ACptr->Type,"X")){      i=ACvar[ACptr->N];      if (FlagLoadX0) {        x0[i]=ACptr->Ang;        if (FlagMakeDxZero && (DxZero!=NULL && (DxZero[i] || (flagReduceSystem && x0[i]!=0 && CountSteps>=NumSteps && fabs(Dx[i]/x0[i])<ZeroDx)))) { Dx[i]=0;  DxZero[i]=TRUE; NewNumEq--; }      }      if (FlagUpdateVar) ACptr->Ang=x0[i]+Dx[i];      i++;      if (FlagLoadX0) {        x0[i]=ACptr->V;        if (FlagMakeDxZero && (DxZero!=NULL && (DxZero[i] || (flagReduceSystem && x0[i]!=0 && CountSteps>=NumSteps && fabs(Dx[i]/x0[i])<ZeroDx)))) { Dx[i]=0;  DxZero[i]=TRUE; NewNumEq--; }      }      if (FlagUpdateVar) {        ACptr->V=x0[i]+Dx[i];        if (ACptr->V<=0){          count++; val=fabs((ACptr->V-0.00001)/Dx[i]);          if(ExistParameter('d')) fCustomPrint(stderr,"%s %d %s Vzero %lf\n",ACptr->Type,ACptr->Num,ACptr->Name,val);          ACptr->V=0.00001;}        else if (Xlim && strpbrk(ACptr->cont,"X") && ACptr->V>=ACptr->Vmax){          count++; val=fabs((ACptr->V-ACptr->Vmax)/Dx[i]);          if(ExistParameter('d')) fCustomPrint(stderr,"%s %d %s Vmax %lf\n",ACptr->Type,ACptr->Num,ACptr->Name,val);          ACptr->V=ACptr->Vmax;}        else if (Xlim && strpbrk(ACptr->cont,"X") && ACptr->V<=ACptr->Vmin){          count++; val=fabs((ACptr->V-ACptr->Vmin)/Dx[i]);          if(ExistParameter('d')) fCustomPrint(stderr,"%s %d %s Vmin %lf\n",ACptr->Type,ACptr->Num,ACptr->Name,val);          ACptr->V=ACptr->Vmin;}        else if (Recover && strpbrk(ACptr->cont,"M") && ACptr->V<=ACptr->Vmax){          count++; val=fabs((ACptr->V-ACptr->Vmax)/Dx[i]);          if(ExistParameter('d')) fCustomPrint(stderr,"%s %d %s Vmax %lf\n",ACptr->Type,ACptr->Num,ACptr->Name,val);          ACptr->V=ACptr->Vmax;}        else if (Recover && strpbrk(ACptr->cont,"m") && ACptr->V>=ACptr->Vmin){          count++; val=fabs((ACptr->V-ACptr->Vmin)/Dx[i]);          if(ExistParameter('d')) fCustomPrint(stderr,"%s %d %s Vmin %lf\n",ACptr->Type,ACptr->Num,ACptr->Name,val);          ACptr->V=ACptr->Vmin;}        else val=0;        if (val>consp) 			consp=val;      }    }    else if(QRcont && strpbrk(ACptr->Type,"G")){      i=ACvar[ACptr->N];      if (!strpbrk(ACptr->Type,"S")) {        if (FlagLoadX0) {          x0[i]=ACptr->Ang;          if (FlagMakeDxZero && (DxZero!=NULL && (DxZero[i] || (flagReduceSystem && x0[i]!=0 && CountSteps>=NumSteps && fabs(Dx[i]/x0[i])<ZeroDx)))) { Dx[i]=0;  DxZero[i]=TRUE; NewNumEq--; }        }        if (FlagUpdateVar) ACptr->Ang=x0[i]+Dx[i];      }      i++;      if (FlagLoadX0) {        x0[i]=ACptr->V;        if (FlagMakeDxZero && (DxZero!=NULL && (DxZero[i] || (flagReduceSystem && x0[i]!=0 && CountSteps>=NumSteps && fabs(Dx[i]/x0[i])<ZeroDx)))) { Dx[i]=0;  DxZero[i]=TRUE; NewNumEq--; }      }      if (FlagUpdateVar) {        ACptr->V=x0[i]+Dx[i];        if (ACptr->V<=0){          count++; val=fabs((ACptr->V-0.00001)/Dx[i]);          if(ExistParameter('d')) fCustomPrint(stderr,"%s %d %s Vzero %lf\n",ACptr->Type,ACptr->Num,ACptr->Name,val);          ACptr->V=0.00001;}        else val=0;        if (val>consp) 			consp=val;      }    }    else if(strpbrk(ACptr->Type,"Q,S")||(!QRcont && strpbrk(ACptr->Type,"G"))){      i=ACvar[ACptr->N];      if (!strpbrk(ACptr->Type,"S")) {        if (FlagLoadX0) {          x0[i]=ACptr->Ang;          if (FlagMakeDxZero && (DxZero!=NULL && (DxZero[i] || (flagReduceSystem && x0[i]!=0 && CountSteps>=NumSteps && fabs(Dx[i]/x0[i])<ZeroDx)))) { Dx[i]=0;  DxZero[i]=TRUE; NewNumEq--; }        }        if (FlagUpdateVar) ACptr->Ang=x0[i]+Dx[i];      }      i++;      if (strpbrk(ACptr->cont,"V")) {        if (FlagLoadX0) {          x0[i]=ACptr->Qg;          if (FlagMakeDxZero && (DxZero!=NULL && (DxZero[i] || (flagReduceSystem && x0[i]!=0 && CountSteps>=NumSteps && fabs(Dx[i]/x0[i])<ZeroDx)))) { Dx[i]=0;  DxZero[i]=TRUE; NewNumEq--; }        }        if (FlagUpdateVar) {          ACptr->Qg=x0[i]+Dx[i];          if (Qlim && ACptr->Qg>=ACptr->Max){///            count++; val=fabs((ACptr->Qg-ACptr->Max)/Dx[i]);            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]);            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;        }      } else {        if (FlagLoadX0) {          x0[i]=ACptr->V;          if (FlagMakeDxZero && (DxZero!=NULL && (DxZero[i] || (flagReduceSystem && x0[i]!=0 && CountSteps>=NumSteps && fabs(Dx[i]/x0[i])<ZeroDx)))) { Dx[i]=0;  DxZero[i]=TRUE; NewNumEq--; }        }        if (FlagUpdateVar) {          ACptr->V=x0[i]+Dx[i];          if (ACptr->V<=0){            count++; val=fabs((ACptr->V-0.00001)/Dx[i]);            if(ExistParameter('d')) fCustomPrint(stderr,"%s %d %s Vzero %lf\n",ACptr->Type,ACptr->Num,ACptr->Name,val);            ACptr->V=0.00001;}          else if (strpbrk(ACptr->cont,"Q")) {            if (Recover && ACptr->Qg>=ACptr->Max && ACptr->V>=ACptr->VCont){///              count++; val=fabs((ACptr->V-ACptr->VCont)/Dx[i]);              if(ExistParameter('d')) fCustomPrint(stderr,"%s %d %s Recover%s %lf\n",ACptr->Type,ACptr->Num,ACptr->Name,Qmax,val);              ACptr->V=ACptr->VCont;}            else if (Recover && ACptr->Qg<=ACptr->Min && ACptr->V<=ACptr->VCont){              count++; val=fabs((ACptr->V-ACptr->VCont)/Dx[i]);              if(ExistParameter('d')) fCustomPrint(stderr,"%s %d %s Recover%s %lf\n",ACptr->Type,ACptr->Num,ACptr->Name,Qmin,val);              ACptr->V=ACptr->VCont;}            else val=0;          }          else if (strpbrk(ACptr->cont,"E")) {            if (Recover && ACptr->Gen->Eq>=ACptr->Gen->EqMax && ACptr->V>=ACptr->VCont){              count++; val=fabs((ACptr->V-ACptr->VCont)/Dx[i]);              if(ExistParameter('d')) fCustomPrint(stderr,"%s %d %s RecoverEqMax %lf\n",ACptr->Type,ACptr->Num,ACptr->Name,val);              ACptr->V=ACptr->VCont;}            else if (Recover && ACptr->Gen->Eq<=ACptr->Gen->EqMin && ACptr->V<=ACptr->VCont){              count++; val=fabs((ACptr->V-ACptr->VCont)/Dx[i]);              if(ExistParameter('d')) fCustomPrint(stderr,"%s %d %s RecoverEqMin %lf\n",ACptr->Type,ACptr->Num,ACptr->Name,val);              ACptr->V=ACptr->VCont;}            else val=0;          }          else if (strpbrk(ACptr->cont,"I")) {            if (Recover && ACptr->Gen->Ia>=ACptr->Gen->IaMax && ACptr->V>=ACptr->VCont){              count++; val=fabs((ACptr->V-ACptr->VCont)/Dx[i]);              if(ExistParameter('d')) fCustomPrint(stderr,"%s %d %s RecoverIaMax %lf\n",ACptr->Type,ACptr->Num,ACptr->Name,val);              ACptr->V=ACptr->VCont;}            else val=0;          }          else val=0;//          if (val>consp) 			  consp=val;        }      }    }    else if(strpbrk(ACptr->Type,"Z")){      i=ACvar[ACptr->N];      if (FlagLoadX0) {        x0[i]=ACptr->Ang;        if (FlagMakeDxZero && (DxZero!=NULL && (DxZero[i] || (flagReduceSystem && x0[i]!=0 && CountSteps>=NumSteps && fabs(Dx[i]/x0[i])<ZeroDx)))) { Dx[i]=0;  DxZero[i]=TRUE; NewNumEq--; }      }      if (FlagUpdateVar) ACptr->Ang=x0[i]+Dx[i];      i++;      if (strpbrk(ACptr->cont,"V")) {        if (FlagLoadX0) {          x0[i]=ACptr->Qg;          if (FlagMakeDxZero && (DxZero!=NULL && (DxZero[i] || (flagReduceSystem && x0[i]!=0 && CountSteps>=NumSteps && fabs(Dx[i]/x0[i])<ZeroDx)))) { Dx[i]=0;  DxZero[i]=TRUE; NewNumEq--; }        }        if (FlagUpdateVar) {          ACptr->Qg=x0[i]+Dx[i];          if (Zlim && ACptr->Qg>=ACptr->Qmax){            count++; val=fabs((ACptr->Qg-ACptr->Qmax)/Dx[i]);            if(ExistParameter('d')) fCustomPrint(stderr,"%s %d %s %s %lf\n",ACptr->Type,ACptr->Num,ACptr->Name,Qmax,val);            ACptr->Qg=ACptr->Qmax;}          else if (Zlim && ACptr->Qg<=ACptr->Qmin){            count++; val=fabs((ACptr->Qg-ACptr->Qmin)/Dx[i]);            if(ExistParameter('d')) fCustomPrint(stderr,"%s %d %s %s %lf\n",ACptr->Type,ACptr->Num,ACptr->Name,Qmin,val);            ACptr->Qg=ACptr->Qmin;}          else val=0;          if (val>consp) 

⌨️ 快捷键说明

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