📄 homotloa.c
字号:
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 + -