@@ -66,12 +66,19 @@ PetscErrorCode OPFLOWSetVariableBounds_PBPOL(OPFLOW opflow, Vec Xl, Vec Xu) {
66
66
/* Bounds on bus variables */
67
67
loc = bus->startxVloc ;
68
68
69
- xl[loc] = -PETSC_PI ;
70
- xu[loc] = PETSC_PI ;
69
+ xl[loc] = PETSC_NINFINITY ;
70
+ xu[loc] = PETSC_INFINITY ;
71
71
72
72
if (opflow->genbusvoltagetype == VARIABLE_WITHIN_BOUNDS) {
73
- xl[loc + 1 ] = bus->Vmin ;
74
- xu[loc + 1 ] = bus->Vmax ;
73
+ if (bus->ngenON && (bus->ide == REF_BUS || bus->ide == PV_BUS)) {
74
+ // bus->Vmin = 0.98*bus->vm;
75
+ // bus->Vmax = 1.02*bus->vm;
76
+ xl[loc + 1 ] = bus->Vmin ;
77
+ xu[loc + 1 ] = bus->Vmax ;
78
+ } else {
79
+ xl[loc + 1 ] = bus->Vmin ;
80
+ xu[loc + 1 ] = bus->Vmax ;
81
+ }
75
82
} else if (opflow->genbusvoltagetype == FIXED_WITHIN_QBOUNDS) {
76
83
if (bus->ide == REF_BUS || bus->ide == PV_BUS) {
77
84
xl[loc + 1 ] = 0.0 ;
@@ -332,7 +339,11 @@ PetscErrorCode OPFLOWSetInitialGuess_PBPOL(OPFLOW opflow, Vec X, Vec Lambda) {
332
339
if (opflow->initializationtype == OPFLOWINIT_MIDPOINT) {
333
340
/* Initial guess for voltage angles and bounds on voltage magnitudes */
334
341
x[loc] = (xl[loc] + xu[loc]) / 2.0 ;
335
- x[loc + 1 ] = (xl[loc + 1 ] + xu[loc + 1 ]) / 2.0 ;
342
+ if (bus->ngenON && (bus->ide == REF_BUS || bus->ide == PV_BUS)) {
343
+ x[loc + 1 ] = (bus->Vmin + bus->Vmax ) / 2.0 ; // bus->vm;
344
+ } else {
345
+ x[loc + 1 ] = (bus->Vmin + bus->Vmax ) / 2.0 ;
346
+ }
336
347
} else if (opflow->initializationtype == OPFLOWINIT_FROMFILE ||
337
348
opflow->initializationtype == OPFLOWINIT_ACPF ||
338
349
opflow->initializationtype == OPFLOWINIT_DCOPF) {
0 commit comments