📄 homotloa.c
字号:
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]; ACptr->Qg=ACptr->V*ACptr->V*ACptr->Bz; 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 (Recover && ACptr->Qg>=ACptr->Qmax && 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->Qmin && 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; if (val>consp) consp=val; ACptr->Qg=ACptr->V*ACptr->V*ACptr->Bz; } } } if (PQcont) for(ELptr=ACptr->Reg;ELptr!=NULL;ELptr=ELptr->Next) { Eptr=ELptr->Eptr; if(strpbrk(Eptr->Type,"PQNM")) { i=ACvar[ACptr->N]+1+ACptr->Ncont-Eptr->Ncont; if (Acont && strpbrk(ACptr->Type,"A")) i++; if(!strcmp(Eptr->Type,"RP")) { if (FlagLoadX0) { x0[i]=Eptr->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) { Eptr->Ang=x0[i]+Dx[i]; if (Tlim && Eptr->Ang>=Eptr->Tmax){ count++; val=fabs((Eptr->Ang-Eptr->Tmax)/Dx[i]); if(ExistParameter('d')) fCustomPrint(stderr,"%s %d %s %d %s Max %lf\n",Eptr->Type,Eptr->From->Num,Eptr->From->Name, Eptr->To->Num,Eptr->To->Name,val); Eptr->Ang=Eptr->Tmax;} else if (Tlim && Eptr->Ang<=Eptr->Tmin){ count++; val=fabs((Eptr->Ang-Eptr->Tmin)/Dx[i]); if(ExistParameter('d')) fCustomPrint(stderr,"%s %d %s %d %s Min %lf\n",Eptr->Type,Eptr->From->Num,Eptr->From->Name, Eptr->To->Num,Eptr->To->Name,val); Eptr->Ang=Eptr->Tmin;} else val=0; if (val>consp) consp=val; } } else if(!strcmp(Eptr->Type,"RQ")){ if (FlagLoadX0) { x0[i]=Eptr->Tap; 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) { Eptr->Tap=x0[i]+Dx[i]; if (Tlim && Eptr->Tap<=1/Eptr->Tmax+0.00001){ count++; val=fabs((Eptr->Tap-1/Eptr->Tmax)/Dx[i]); if(ExistParameter('d')) fCustomPrint(stderr,"%s %d %s %d %s Max %lf\n",Eptr->Type,Eptr->From->Num,Eptr->From->Name, Eptr->To->Num,Eptr->To->Name,val); Eptr->Tap=1/Eptr->Tmax;} 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 Min %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(strpbrk(Eptr->Type,"MN")) { if (FlagLoadX0) { x0[i]=Eptr->Cvar; 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) { Eptr->Cvar=x0[i]+Dx[i]; if (PQlim && Eptr->Cvar>=Eptr->Max){ count++; val=fabs((Eptr->Cvar-Eptr->Max)/Dx[i]); if(ExistParameter('d')) fCustomPrint(stderr,"%s %d %s %d %s Max %lf\n",Eptr->Type,Eptr->From->Num,Eptr->From->Name, Eptr->To->Num,Eptr->To->Name,val); Eptr->Cvar=Eptr->Max;} else if (PQlim && Eptr->Cvar<=Eptr->Min){ count++; val=fabs((Eptr->Cvar-Eptr->Min)/Dx[i]); if(ExistParameter('d')) fCustomPrint(stderr,"%s %d %s %d %s Min %lf\n",Eptr->Type,Eptr->From->Num,Eptr->From->Name, Eptr->To->Num,Eptr->To->Name,val); Eptr->Cvar=Eptr->Min;} else val=0; if (val>consp) consp=val; } } else { if (FlagLoadX0) { x0[i]=Eptr->Cvar; 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) Eptr->Cvar=x0[i]+Dx[i]; } } } if (ACptr->Gen!=NULL) { i=ACptr->Gen->Nvar+1; if (!strpbrk(ACptr->cont,"E")) { if (FlagLoadX0) { x0[i]=ACptr->Gen->Eq; 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->Gen->Eq=x0[i]+Dx[i]; if (Elim && ACptr->Gen->Eq>=ACptr->Gen->EqMax) { count++; val=fabs((ACptr->Gen->Eq-ACptr->Gen->EqMax)/Dx[i]); if(ExistParameter('d')) fCustomPrint(stderr,"%s %d %s EqMax %lf\n",ACptr->Type,ACptr->Num,ACptr->Name,val); ACptr->Gen->Eq=ACptr->Gen->EqMax;} else if (Elim && ACptr->Gen->Eq<=ACptr->Gen->EqMin) { count++; val=fabs((ACptr->Gen->Eq-ACptr->Gen->EqMin)/Dx[i]); if(ExistParameter('d')) fCustomPrint(stderr,"%s %d %s EqMin %lf\n",ACptr->Type,ACptr->Num,ACptr->Name,val); ACptr->Gen->Eq=ACptr->Gen->EqMin;} else if (ACptr->Gen->Eq<=0) { count++; val=fabs((ACptr->Gen->Eq-0.00001)/Dx[i]); if(ExistParameter('d')) fCustomPrint(stderr,"%s %d %s EqZero %lf\n",ACptr->Type,ACptr->Num,ACptr->Name,val); ACptr->Gen->Eq=0.00001;} 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 (strpbrk(ACptr->Type,"V")) { if (Recover && ACptr->Gen->Eq>=ACptr->Gen->EqMax && ACptr->Qg>=ACptr->VCont){ count++; val=fabs((ACptr->Qg-ACptr->VCont)/Dx[i]); if(ExistParameter('d')) fCustomPrint(stderr,"%s %d %s RecoverEqMax %lf\n",ACptr->Type,ACptr->Num,ACptr->Name,val); ACptr->Qg=ACptr->VCont;} else if (Recover && ACptr->Gen->Eq<=ACptr->Gen->EqMin && ACptr->Qg<=ACptr->VCont){ count++; val=fabs((ACptr->Qg-ACptr->VCont)/Dx[i]); if(ExistParameter('d')) fCustomPrint(stderr,"%s %d %s RecoverEqMin %lf\n",ACptr->Type,ACptr->Num,ACptr->Name,val); ACptr->Qg=ACptr->VCont;} else val=0; if (val>consp) consp=val; } else { 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; } } } i++; if (FlagLoadX0) { x0[i]=ACptr->Gen->dg; 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->Gen->dg=x0[i]+Dx[i]; i++; if (FlagLoadX0) { x0[i]=ACptr->Gen->Vr; 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->Gen->Vr=x0[i]+Dx[i]; i++; if (FlagLoadX0) { x0[i]=ACptr->Gen->Vi; 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->Gen->Vi=x0[i]+Dx[i]; i++; if (FlagLoadX0) { x0[i]=ACptr->Gen->Ir; 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->Gen->Ir=x0[i]+Dx[i]; i++; if (FlagLoadX0) { x0[i]=ACptr->Gen->Ii; 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->Gen->Ii=x0[i]+Dx[i]; i++; if (FlagLoadX0) { x0[i]=ACptr->Gen->Vq; 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->Gen->Vq=x0[i]+Dx[i]; i++; if (FlagLoadX0) { x0[i]=ACptr->Gen->Vd; 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->Gen->Vd=x0[i]+Dx[i]; i++; if (FlagLoadX0) { x0[i]=ACptr->Gen->Iq; 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->Gen->Iq=x0[i]+Dx[i]; i++; if (FlagLoadX0) { x0[i]=ACptr->Gen->Id; 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->Gen->Id=x0[i]+Dx[i]; i++; if (!strpbrk(ACptr->cont,"I")) { if (FlagLoadX0) { x0[i]=ACptr->Gen->Ia; 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->Gen->Ia=x0[i]+Dx[i]; if (Ilim && ACptr->Gen->Ia>=ACptr->Gen->IaMax) { count++; val=fabs((ACptr->Gen->Ia-ACptr->Gen->IaMax)/Dx[i]); if(ExistParameter('d')) fCustomPrint(stderr,"%s %d %s IaMax %lf\n",ACptr->Type,ACptr->Num,ACptr->Name,val); ACptr->Gen->Ia=ACptr->Gen->IaMax;} else if (ACptr->Gen->Ia<=0) { count++; val=fabs((ACptr->Gen->Ia-0.00001)/Dx[i]); if(ExistParameter('d')) fCustomPrint(stderr,"%s %d %s IaZero %lf\n",ACptr->Type,ACptr->Num,ACptr->Name,val); ACptr->Gen->Ia=0.00001;} 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 (strpbrk(ACptr->Type,"V")) { if (Recover && ACptr->Gen->Ia>=ACptr->Gen->IaMax && ACptr->Qg>=ACptr->VCont){ count++; val=fabs((ACptr->Qg-ACptr->VCont)/Dx[i]); if(ExistParameter('d')) fCustomPrint(stderr,"%s %d %s RecoverIaMax %lf\n",ACptr->Type,ACptr->Num,ACptr->Name,val); ACptr->Qg=ACptr->VCont;} else val=0; if (val>consp) consp=val; } else { 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; } } }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -