Professional Documents
Culture Documents
double stepval;
double stepvalold;
Ldf = GetCaseCommand('ComLdf');
object mon,busbar;
object monid,GrB,ViPg,Plot;
stepval=1;
object Ldf;
stepvalold=1;
object aLoad;
ierr=0;
int nLoads,iLoad;
int nBusBars;
!Get initial settings about tap changing and flat
int tap_step, tap_max, flat_opt, topo_opt;! initial
start. Change if necessary. [GUARDAR DATOS DEL
load flow settings
FLUJO DE POTENCIA]
Ldf:iopt_noinit = 1;
!Check input data Ldf:iopt_notopo = 1;
=========================================
==== [REVISAR LOS DATOS DE ENTRADA] !printf('%f %f %f %f',
Ldf:itapopt,Ldf:imaxtstep,Ldf:iopt_noinit,Ldf:iopt_
ierr=0; notopo);
nLoads=Sloads.Count(); [CONTAR LA CANTIDAD DE
CARGAS]
!Creating IntMon objects for all busbars in the
nBusBars= BusBars.Count(); [CONTAR LA CANTIDAD
result object
DE BUSBAR]
OldMons=Results.GetContents(); [GUARDAR LOS
if(nLoads<1){ INTMON ANTIGUOS]
Error('No load in the general selection.'); ! make sure that Xvar points to this
ierr=1; [ERROR POR NO HABER CARGAS] mon = OldMons.FirstFilt('Xvar.IntMon'); [SI EXISTE
} EL IntMont ‘Xvar’, guardarlo]
mon:obj_id = this; [asignar el DPL como objeto GrB = GetGraphBoard(); [objeto gráficos]
en IntMon]
if (GrB=NULL) { output('No Graphics Board open');
mon.AddVar('b:Ptot'); [asignar la variable] exit(); }
} else {
Error('Failed to create Xvar variable monitor in ! creating plots for selected busbars
result-object');
Plot = NULL; [objeto Plot vacio inicialmente]
exit();
ViPg = GrB.GetPage(this:loc_name,1); [Crear una
} página]
iexist=1; Plot.AddVars(busbar,MonDefault:vars:0);
[Asignar variables al subplot]
}
}
mon=OldMons.Nextmatch();
} [CIERRA IF DEL PLOT]
} [FIN DEL WHILE AL ENCONTRAR LA BARRA]
} [CIERRA IF DE LA PAGINA]
if (iexist=0){ [al encontrar la barra]
if (ViPg=NULL.or.Plot=NULL) {
} [FIN DEL FOR DE BARRAS] !Store Initial Scaling Factors for all Loads
[almacena los fact inic]
[objeto adaptador de paso]
nLoads=Sloads.Count(); [contar cargas]
Step:valstart=1;
if(nLoads<1) exit(); !no load selected in the
Step:valstop=9999; general selection
iLoad=1; stepval=1;
while(aLoad){ stepvalold=1;
}
while(Load){ [dando y cambiando esc con do]
Ptot=0; Load=Sloads.Next();
while(Load){ }
Load:coslini = powerfactor; [input, cos fi] output('Total active Power =Ptot MW');
Ptot=Ptot+Load:plini*Load:scale0; [potencia
inicial] if (ierr<0.5){
Load=Sloads.Next(); [siguiente carga] stepvalold=stepval; [el indicador actual se
} guarda en el antiguo]
Load=Sloads.Next();
Echo.On();
}
if (ierr=2) Ldf.Execute(); ! Ensure error message }
printed
while(Load){
Load:scale0=Load:scale0*stepval/stepvalold;
Ptot=Ptot+Load:plini*Load:scale0;
Load=Sloads.Next();
Ldf:itapopt=0;
ierr=Ldf.Execute();
Ldf:itapopt=tap_step;
Plot.SetScaleX();
Plot.SetScaleY();
Sloads.SortToName(0);
iLoad=1;
aLoad=Sloads.First();
while(aLoad){
aLoad:scale0=InitLoadsSc.Get(iLoad);
aLoad:coslini=InitLoadsPf.Get(iLoad);
iLoad +=1;
aLoad=Sloads.Next();