00001
00002
00003
00004 #ifndef _TRANSFORMER_TEST_H
00005 #define _TRANSFORMER_TEST_H
00006
00007 #include "transformer.h"
00008
00009 #ifndef _NO_CPPUNIT
00010
00011 #ifdef VALIDATE_THRESHOLD
00012 #undef VALIDATE_THRESHOLD
00013 #endif
00014 #define VALIDATE_THRESHOLD .0009
00015
00016
00030 class transformer_tests : public test_helper
00031 {
00032
00033
00034 void test_delta_delta_transformer(){
00035 OBJECT *node1,*node2;
00036 OBJECT *tformer;
00037
00038
00039 complex* node1_phA_I_test = new complex(276.11,-191.18);
00040 complex* node1_phB_I_test = new complex(-303.37,-144.05);
00041 complex* node1_phC_I_test = new complex(26.947,334.92);
00042
00043 complex* node2_phA_V_test = new complex(2250.5,-140.2);
00044 complex* node2_phB_V_test = new complex(-1249.9,-1883.2);
00045 complex* node2_phC_V_test = new complex(-1000.6,2023.4);
00046
00047
00048 CLASS *cl = get_class_by_name("node");
00049 node1 = gl_create_object(cl);
00050 OBJECTDATA(node1,node)->create();
00051 cl = get_class_by_name("load");
00052 node2 = gl_create_object(cl);
00053 OBJECTDATA(node2,load)->create();
00054 cl = get_class_by_name("transformer");
00055 tformer = gl_create_object(cl);
00056 OBJECTDATA(tformer,transformer)->create();
00057
00058 OBJECTDATA(tformer,transformer)->from = node1;
00059 OBJECTDATA(tformer,transformer)->to = node2;
00060
00061 SET_ADD(OBJECTDATA(tformer,transformer)->phases,PHASE_ABCN);
00062 OBJECTDATA(node1,node)->voltageA = OBJECTDATA(node2,load)->voltageA = 2251.5;
00063 OBJECTDATA(node1,node)->voltageA.SetImag(-138.71);
00064 OBJECTDATA(node2,load)->voltageA.SetImag(-138.71);
00065 OBJECTDATA(node2,load)->currentA.SetReal(827.65);
00066 OBJECTDATA(node2,load)->currentA.SetImag(-573.09);
00067
00068 OBJECTDATA(node1,node)->voltageB = OBJECTDATA(node2,load)->voltageB = -1248;
00069 OBJECTDATA(node1,node)->voltageB.SetImag(-1883.9);
00070 OBJECTDATA(node2,load)->voltageB.SetImag(-1883.9);
00071 OBJECTDATA(node2,load)->currentB.SetReal(-909.39);
00072 OBJECTDATA(node2,load)->currentB.SetImag(-431.81);
00073
00074 OBJECTDATA(node1,node)->voltageC = OBJECTDATA(node2,load)->voltageC = -1001.7;
00075 OBJECTDATA(node1,node)->voltageC.SetImag(2022.4);
00076 OBJECTDATA(node2,load)->voltageC.SetImag(2022.4);
00077 OBJECTDATA(node2,load)->currentC.SetReal(80.776);
00078 OBJECTDATA(node2,load)->currentC.SetImag(1004);
00079
00080
00081 cl = get_class_by_name("transformer_configuration");
00082 OBJECT *trans_config = gl_create_object(cl);
00083 OBJECTDATA(trans_config,transformer_configuration)->V_primary = 12.47 * 1000;
00084 OBJECTDATA(trans_config,transformer_configuration)->V_secondary = 4.16 * 1000;
00085 OBJECTDATA(trans_config,transformer_configuration)->kVA_rating = 6000;
00086
00087 OBJECTDATA(trans_config,transformer_configuration)->impedance.SetReal(.01);
00088
00089 OBJECTDATA(trans_config,transformer_configuration)->impedance.SetImag(.06);
00090 OBJECTDATA(trans_config,transformer_configuration)->connect_type = transformer_configuration::DELTA_DELTA;
00091 OBJECTDATA(tformer,transformer)->configuration = trans_config;
00092
00093
00094 CPPUNIT_ASSERT(local_callbacks->init_objects() != FAILED);
00095
00096
00097 CPPUNIT_ASSERT(local_callbacks->setup_test_ranks() != FAILED);
00098
00099
00100 local_callbacks->sync_all(PC_PRETOPDOWN);
00101 local_callbacks->sync_all(PC_BOTTOMUP);
00102
00103 double rI_1 = OBJECTDATA(node1,node)->currentA.Re();
00104 double iI_1 = OBJECTDATA(node1,node)->currentA.Im();
00105
00106
00107 double validate_re = 1 - (rI_1 <= node1_phA_I_test->Re() ? rI_1 / node1_phA_I_test->Re() : node1_phA_I_test->Re() /rI_1);
00108 double validate_im = 1 - (iI_1 <= node1_phA_I_test->Im() ? iI_1 / node1_phA_I_test->Im() : node1_phA_I_test->Im() /iI_1);
00109
00110 CPPUNIT_ASSERT(validate_re < VALIDATE_THRESHOLD);
00111 CPPUNIT_ASSERT(validate_im < VALIDATE_THRESHOLD);
00112
00113 OBJECTDATA(node1,node)->voltageA = 7116.6;
00114 OBJECTDATA(node1,node)->voltageA.SetImag(-40.59);
00115 OBJECTDATA(node1,node)->voltageB = -3599.8;
00116 OBJECTDATA(node1,node)->voltageB.SetImag(-6154.2);
00117 OBJECTDATA(node1,node)->voltageC = -3512;
00118 OBJECTDATA(node1,node)->voltageC.SetImag(6194.4);
00119
00120 local_callbacks->sync_all(PC_POSTTOPDOWN);
00121
00122
00123 double rV_2 = OBJECTDATA(node2,load)->voltageA.Re();
00124 double iV_2 = OBJECTDATA(node2,load)->voltageA.Im();
00125
00126 validate_re = 1 - (rV_2 <= node2_phA_V_test->Re() ? rV_2 / node2_phA_V_test->Re() : node2_phA_V_test->Re() /rV_2);
00127 validate_im = 1 - (iV_2 <= node2_phA_V_test->Im() ? iV_2 / node2_phA_V_test->Im() : node2_phA_V_test->Im() /iV_2);
00128 CPPUNIT_ASSERT(validate_re < VALIDATE_THRESHOLD);
00129 CPPUNIT_ASSERT(validate_im < VALIDATE_THRESHOLD);
00130
00131 rV_2 = OBJECTDATA(node2,load)->voltageB.Re();
00132 iV_2 = OBJECTDATA(node2,load)->voltageB.Im();
00133
00134 validate_re = 1 - (rV_2 <= node2_phB_V_test->Re() ? rV_2 / node2_phB_V_test->Re() : node2_phB_V_test->Re() /rV_2);
00135 validate_im = 1 - (iV_2 <= node2_phB_V_test->Im() ? iV_2 / node2_phB_V_test->Im() : node2_phB_V_test->Im() /iV_2);
00136 CPPUNIT_ASSERT(validate_re < VALIDATE_THRESHOLD);
00137 CPPUNIT_ASSERT(validate_im < VALIDATE_THRESHOLD);
00138
00139 rV_2 = OBJECTDATA(node2,load)->voltageC.Re();
00140 iV_2 = OBJECTDATA(node2,load)->voltageC.Im();
00141
00142 validate_re = 1 - (rV_2 <= node2_phC_V_test->Re() ? rV_2 / node2_phC_V_test->Re() : node2_phC_V_test->Re() /rV_2);
00143 validate_im = 1 - (iV_2 <= node2_phC_V_test->Im() ? iV_2 / node2_phC_V_test->Im() : node2_phC_V_test->Im() /iV_2);
00144 CPPUNIT_ASSERT(validate_re < VALIDATE_THRESHOLD);
00145 CPPUNIT_ASSERT(validate_im < VALIDATE_THRESHOLD);
00146
00147 }
00148
00149 void test_delta_Gwye_transformer(){
00150
00151 OBJECT *node1,*node2;
00152 OBJECT *tformer;
00153
00154
00155 complex* node1_phA_I_test = new complex(20.26,-36.94);
00156 complex* node1_phB_I_test = new complex(-39.81,-0.95);
00157 complex* node1_phC_I_test = new complex(19.55,37.89);
00158
00159 complex* node2_phA_V_test = new complex(2890.054,-6201.529);
00160 complex* node2_phB_V_test = new complex(-6513.450,1037.498);
00161 complex* node2_phC_V_test = new complex(3601.730,5403.961);
00162
00163
00164 CLASS *cl = get_class_by_name("node");
00165 node1 = gl_create_object(cl);
00166 OBJECTDATA(node1,node)->create();
00167 cl = get_class_by_name("load");
00168 node2 = gl_create_object(cl);
00169 OBJECTDATA(node2,load)->create();
00170 cl = get_class_by_name("transformer");
00171 tformer = gl_create_object(cl);
00172 OBJECTDATA(tformer,transformer)->create();
00173
00174 OBJECTDATA(tformer,transformer)->from = node1;
00175 OBJECTDATA(tformer,transformer)->to = node2;
00176
00177 SET_ADD(OBJECTDATA(tformer,transformer)->phases,PHASE_ABC);
00178 OBJECTDATA(node1,node)->voltageA = OBJECTDATA(node2,load)->voltageA = 2891.6;
00179 OBJECTDATA(node1,node)->voltageA.SetImag(-6201.1);
00180 OBJECTDATA(node2,load)->voltageA.SetImag(-6201.1);
00181 OBJECTDATA(node2,load)->currentA.SetReal(-25.34);
00182 OBJECTDATA(node2,load)->currentA.SetImag(-483.44);
00183
00184 OBJECTDATA(node1,node)->voltageB = OBJECTDATA(node2,load)->voltageB = -6513.3;
00185 OBJECTDATA(node1,node)->voltageB.SetImag(1031.6);
00186 OBJECTDATA(node2,load)->voltageB.SetImag(1031.6);
00187 OBJECTDATA(node2,load)->currentB.SetReal(-413.66);
00188 OBJECTDATA(node2,load)->currentB.SetImag(224.6);
00189
00190 OBJECTDATA(node1,node)->voltageC = OBJECTDATA(node2,load)->voltageC = 3659.1;
00191 OBJECTDATA(node1,node)->voltageC.SetImag(5486.7);
00192 OBJECTDATA(node2,load)->voltageC.SetImag(5486.7);
00193 OBJECTDATA(node2,load)->currentC.SetReal(349.32);
00194 OBJECTDATA(node2,load)->currentC.SetImag(242.78);
00195
00196
00197 cl = get_class_by_name("transformer_configuration");
00198 OBJECT *trans_config = gl_create_object(cl);
00199 OBJECTDATA(trans_config,transformer_configuration)->V_primary = 138*1000;
00200 OBJECTDATA(trans_config,transformer_configuration)->V_secondary = 12.47*1000;
00201 OBJECTDATA(trans_config,transformer_configuration)->kVA_rating = 5000;
00202
00203 OBJECTDATA(trans_config,transformer_configuration)->impedance.SetReal(0.0074);
00204
00205 OBJECTDATA(trans_config,transformer_configuration)->impedance.SetImag(0.0847);
00206 OBJECTDATA(trans_config,transformer_configuration)->connect_type = transformer_configuration::DELTA_GWYE;
00207 OBJECTDATA(tformer,transformer)->configuration = trans_config;
00208
00209
00210 CPPUNIT_ASSERT(local_callbacks->init_objects() != FAILED);
00211
00212
00213 CPPUNIT_ASSERT(local_callbacks->setup_test_ranks() != FAILED);
00214
00215
00216 local_callbacks->sync_all(PC_PRETOPDOWN);
00217 local_callbacks->sync_all(PC_BOTTOMUP);
00218
00219 double rI_1 = OBJECTDATA(node1,node)->currentA.Re();
00220 double iI_1 = OBJECTDATA(node1,node)->currentA.Im();
00221
00222
00223 double validate_re = 1 - (rI_1 <= node1_phA_I_test->Re() ? rI_1 / node1_phA_I_test->Re() : node1_phA_I_test->Re() /rI_1);
00224 double validate_im = 1 - (iI_1 <= node1_phA_I_test->Im() ? iI_1 / node1_phA_I_test->Im() : node1_phA_I_test->Im() /iI_1);
00225
00226 CPPUNIT_ASSERT(validate_re < VALIDATE_THRESHOLD);
00227 CPPUNIT_ASSERT(validate_im < VALIDATE_THRESHOLD);
00228
00229 OBJECTDATA(node1,node)->voltageA = 72555;
00230 OBJECTDATA(node1,node)->voltageA.SetImag(-40767);
00231 OBJECTDATA(node1,node)->voltageB = -65459;
00232 OBJECTDATA(node1,node)->voltageB.SetImag(-40776);
00233 OBJECTDATA(node1,node)->voltageC = -7139;
00234 OBJECTDATA(node1,node)->voltageC.SetImag(81515);
00235
00236 local_callbacks->sync_all(PC_POSTTOPDOWN);
00237
00238
00239 double rV_2 = OBJECTDATA(node2,load)->voltageA.Re();
00240 double iV_2 = OBJECTDATA(node2,load)->voltageA.Im();
00241
00242 validate_re = 1 - (rV_2 <= node2_phA_V_test->Re() ? rV_2 / node2_phA_V_test->Re() : node2_phA_V_test->Re() /rV_2);
00243 validate_im = 1 - (iV_2 <= node2_phA_V_test->Im() ? iV_2 / node2_phA_V_test->Im() : node2_phA_V_test->Im() /iV_2);
00244 CPPUNIT_ASSERT(validate_re < VALIDATE_THRESHOLD);
00245 CPPUNIT_ASSERT(validate_im < VALIDATE_THRESHOLD);
00246
00247 rV_2 = OBJECTDATA(node2,load)->voltageB.Re();
00248 iV_2 = OBJECTDATA(node2,load)->voltageB.Im();
00249
00250 validate_re = 1 - (rV_2 <= node2_phB_V_test->Re() ? rV_2 / node2_phB_V_test->Re() : node2_phB_V_test->Re() /rV_2);
00251 validate_im = 1 - (iV_2 <= node2_phB_V_test->Im() ? iV_2 / node2_phB_V_test->Im() : node2_phB_V_test->Im() /iV_2);
00252 CPPUNIT_ASSERT(validate_re < VALIDATE_THRESHOLD);
00253 CPPUNIT_ASSERT(validate_im < VALIDATE_THRESHOLD);
00254
00255 rV_2 = OBJECTDATA(node2,load)->voltageC.Re();
00256 iV_2 = OBJECTDATA(node2,load)->voltageC.Im();
00257
00258 validate_re = 1 - (rV_2 <= node2_phC_V_test->Re() ? rV_2 / node2_phC_V_test->Re() : node2_phC_V_test->Re() /rV_2);
00259 validate_im = 1 - (iV_2 <= node2_phC_V_test->Im() ? iV_2 / node2_phC_V_test->Im() : node2_phC_V_test->Im() /iV_2);
00260 CPPUNIT_ASSERT(validate_re < VALIDATE_THRESHOLD);
00261 CPPUNIT_ASSERT(validate_im < VALIDATE_THRESHOLD);
00262 }
00263
00264 void test_wye_wye_transformer(){
00265 OBJECT *node1,*node2;
00266 OBJECT *tformer;
00267
00268
00269 complex* node1_phA_I_test = new complex(285.25,-199.1);
00270 complex* node1_phB_I_test = new complex(-291.28,-141.09);
00271 complex* node1_phC_I_test = new complex(29.262,335.54);
00272
00273 complex* node2_phA_V_test = new complex(2242.9,-144.8);
00274 complex* node2_phB_V_test = new complex(-1251.3,-1892.4);
00275 complex* node2_phC_V_test = new complex(-1002.9,2020.8);
00276
00277
00278 CLASS *cl = get_class_by_name("node");
00279 node1 = gl_create_object(cl);
00280 OBJECTDATA(node1,node)->create();
00281 cl = get_class_by_name("load");
00282 node2 = gl_create_object(cl);
00283 OBJECTDATA(node2,load)->create();
00284 cl = get_class_by_name("transformer");
00285 tformer = gl_create_object(cl);
00286 OBJECTDATA(tformer,transformer)->create();
00287
00288 OBJECTDATA(tformer,transformer)->from = node1;
00289 OBJECTDATA(tformer,transformer)->to = node2;
00290
00291 SET_ADD(OBJECTDATA(tformer,transformer)->phases,PHASE_ABCN);
00292 OBJECTDATA(node1,node)->voltageA = OBJECTDATA(node2,load)->voltageA = 2242.9;
00293 OBJECTDATA(node1,node)->voltageA.SetImag(-114.8);
00294 OBJECTDATA(node2,load)->voltageA.SetImag(-114.8);
00295 OBJECTDATA(node2,load)->currentA.SetReal(855.08);
00296 OBJECTDATA(node2,load)->currentA.SetImag(-596.83);
00297
00298 OBJECTDATA(node1,node)->voltageB = OBJECTDATA(node2,load)->voltageB = -1251.3;
00299 OBJECTDATA(node1,node)->voltageB.SetImag(-1892.4);
00300 OBJECTDATA(node2,load)->voltageB.SetImag(-1892.4);
00301 OBJECTDATA(node2,load)->currentB.SetReal(-873.15);
00302 OBJECTDATA(node2,load)->currentB.SetImag(-422.93);
00303
00304 OBJECTDATA(node1,node)->voltageC = OBJECTDATA(node2,load)->voltageC = -1002.9;
00305 OBJECTDATA(node1,node)->voltageC.SetImag(2020.8);
00306 OBJECTDATA(node2,load)->voltageC.SetImag(2020.8);
00307 OBJECTDATA(node2,load)->currentC.SetReal(87.717);
00308 OBJECTDATA(node2,load)->currentC.SetImag(1005.8);
00309
00310
00311 cl = get_class_by_name("transformer_configuration");
00312 OBJECT *trans_config = gl_create_object(cl);
00313 OBJECTDATA(trans_config,transformer_configuration)->V_primary = 12.47 * 1000;
00314 OBJECTDATA(trans_config,transformer_configuration)->V_secondary = 4.16 * 1000;
00315 OBJECTDATA(trans_config,transformer_configuration)->kVA_rating = 6000;
00316
00317 OBJECTDATA(trans_config,transformer_configuration)->impedance.SetReal(0.01);
00318
00319 OBJECTDATA(trans_config,transformer_configuration)->impedance.SetImag(0.06);
00320 OBJECTDATA(trans_config,transformer_configuration)->connect_type = transformer_configuration::WYE_WYE;
00321 OBJECTDATA(tformer,transformer)->configuration = trans_config;
00322
00323
00324 CPPUNIT_ASSERT(local_callbacks->init_objects() != FAILED);
00325
00326
00327 CPPUNIT_ASSERT(local_callbacks->setup_test_ranks() != FAILED);
00328
00329
00330 local_callbacks->sync_all(PC_PRETOPDOWN);
00331 local_callbacks->sync_all(PC_BOTTOMUP);
00332
00333 double rI_1 = OBJECTDATA(node1,node)->currentA.Re();
00334 double iI_1 = OBJECTDATA(node1,node)->currentA.Im();
00335
00336
00337 double validate_re = 1 - (rI_1 <= node1_phA_I_test->Re() ? rI_1 / node1_phA_I_test->Re() : node1_phA_I_test->Re() /rI_1);
00338 double validate_im = 1 - (iI_1 <= node1_phA_I_test->Im() ? iI_1 / node1_phA_I_test->Im() : node1_phA_I_test->Im() /iI_1);
00339
00340 CPPUNIT_ASSERT(validate_re < VALIDATE_THRESHOLD);
00341
00342
00343 OBJECTDATA(node1,node)->voltageA = 7106.9;
00344 OBJECTDATA(node1,node)->voltageA.SetImag(-42.069);
00345 OBJECTDATA(node1,node)->voltageB = -3607.1;
00346 OBJECTDATA(node1,node)->voltageB.SetImag(-6162);
00347 OBJECTDATA(node1,node)->voltageC = -3520.6;
00348 OBJECTDATA(node1,node)->voltageC.SetImag(6190.1);
00349
00350 local_callbacks->sync_all(PC_POSTTOPDOWN);
00351
00352
00353 double rV_2 = OBJECTDATA(node2,load)->voltageA.Re();
00354 double iV_2 = OBJECTDATA(node2,load)->voltageA.Im();
00355
00356 validate_re = 1 - (rV_2 <= node2_phA_V_test->Re() ? rV_2 / node2_phA_V_test->Re() : node2_phA_V_test->Re() /rV_2);
00357 validate_im = 1 - (iV_2 <= node2_phA_V_test->Im() ? iV_2 / node2_phA_V_test->Im() : node2_phA_V_test->Im() /iV_2);
00358 CPPUNIT_ASSERT(validate_re < VALIDATE_THRESHOLD);
00359 CPPUNIT_ASSERT(validate_im < VALIDATE_THRESHOLD);
00360
00361 rV_2 = OBJECTDATA(node2,load)->voltageB.Re();
00362 iV_2 = OBJECTDATA(node2,load)->voltageB.Im();
00363
00364 validate_re = 1 - (rV_2 <= node2_phB_V_test->Re() ? rV_2 / node2_phB_V_test->Re() : node2_phB_V_test->Re() /rV_2);
00365 validate_im = 1 - (iV_2 <= node2_phB_V_test->Im() ? iV_2 / node2_phB_V_test->Im() : node2_phB_V_test->Im() /iV_2);
00366 CPPUNIT_ASSERT(validate_re < VALIDATE_THRESHOLD);
00367 CPPUNIT_ASSERT(validate_im < VALIDATE_THRESHOLD);
00368
00369 rV_2 = OBJECTDATA(node2,load)->voltageC.Re();
00370 iV_2 = OBJECTDATA(node2,load)->voltageC.Im();
00371
00372 validate_re = 1 - (rV_2 <= node2_phC_V_test->Re() ? rV_2 / node2_phC_V_test->Re() : node2_phC_V_test->Re() /rV_2);
00373 validate_im = 1 - (iV_2 <= node2_phC_V_test->Im() ? iV_2 / node2_phC_V_test->Im() : node2_phC_V_test->Im() /iV_2);
00374 CPPUNIT_ASSERT(validate_re < VALIDATE_THRESHOLD);
00375 CPPUNIT_ASSERT(validate_im < VALIDATE_THRESHOLD);
00376
00377 }
00378
00379
00380 void test_center_tapped_transformer_Aphase(){
00381 OBJECT *node1,*node2;
00382 OBJECT *tformer;
00383
00384
00385 complex* node1_phA_I_test = new complex(5.9265,-3.0529);
00386 complex* node1_phB_I_test = new complex(0,0);
00387 complex* node1_phC_I_test = new complex(0,0);
00388
00389 complex* node2_phA_V_test = new complex(118,-1.2627);
00390 complex* node2_phB_V_test = new complex(117.85,-1.2634);
00391 complex* node2_phC_V_test = new complex(0,0);
00392
00393
00394 CLASS *cl = get_class_by_name("node");
00395 node1 = gl_create_object(cl);
00396 OBJECTDATA(node1,node)->create();
00397 cl = get_class_by_name("load");
00398 node2 = gl_create_object(cl);
00399 OBJECTDATA(node2,load)->create();
00400 cl = get_class_by_name("transformer");
00401 tformer = gl_create_object(cl);
00402 OBJECTDATA(tformer,transformer)->create();
00403
00404 OBJECTDATA(tformer,transformer)->from = node1;
00405 OBJECTDATA(tformer,transformer)->to = node2;
00406
00407 SET_ADD(OBJECTDATA(tformer,transformer)->phases,PHASE_A|PHASE_S);
00408 OBJECTDATA(node1,node)->voltageA = complex(7200,0);
00409 OBJECTDATA(node2,load)->voltageA = complex(118.01,-0.6131);
00410 OBJECTDATA(node2,load)->currentA = complex(160.62,-80.451);
00412 OBJECTDATA(node1,node)->voltageB = complex(-3600,-6235.4);
00413 OBJECTDATA(node2,load)->voltageB = complex(117.85,-0.61424);
00414 OBJECTDATA(node2,load)->currentB = complex(-194.97,102.72);
00415
00416
00417 OBJECTDATA(node1,node)->voltageC = complex(-3600,6235.4);
00418 OBJECTDATA(node2,load)->voltageC = complex(0,0);
00419 OBJECTDATA(node2,load)->currentC = complex(-34.355,22.272);
00420
00421
00422
00423 cl = get_class_by_name("transformer_configuration");
00424 OBJECT *trans_config = gl_create_object(cl);
00425 OBJECTDATA(trans_config,transformer_configuration)->V_primary = 7.2 * 1000;
00426 OBJECTDATA(trans_config,transformer_configuration)->V_secondary = 0.120 * 1000;
00427 OBJECTDATA(trans_config,transformer_configuration)->kVA_rating = 50;
00428 OBJECTDATA(trans_config,transformer_configuration)->phaseA_kVA_rating = 50;
00429
00430 OBJECTDATA(trans_config,transformer_configuration)->impedance.SetReal(0.011);
00431
00432 OBJECTDATA(trans_config,transformer_configuration)->impedance.SetImag(0.018);
00433 OBJECTDATA(trans_config,transformer_configuration)->connect_type = transformer_configuration::SINGLE_PHASE_CENTER_TAPPED;
00434 OBJECTDATA(tformer,transformer)->configuration = trans_config;
00435
00436
00437 CPPUNIT_ASSERT(local_callbacks->init_objects() != FAILED);
00438
00439
00440 CPPUNIT_ASSERT(local_callbacks->setup_test_ranks() != FAILED);
00441
00442
00443 local_callbacks->sync_all(PC_PRETOPDOWN);
00444 local_callbacks->sync_all(PC_BOTTOMUP);
00445
00446 double rI_1 = OBJECTDATA(node1,node)->currentA.Re();
00447 double iI_1 = OBJECTDATA(node1,node)->currentA.Im();
00448
00449
00450 double validate_re = 1 - (rI_1 <= node1_phA_I_test->Re() ? rI_1 / node1_phA_I_test->Re() : node1_phA_I_test->Re() /rI_1);
00451 double validate_im = 1 - (iI_1 <= node1_phA_I_test->Im() ? iI_1 / node1_phA_I_test->Im() : node1_phA_I_test->Im() /iI_1);
00452
00453 CPPUNIT_ASSERT(validate_re < VALIDATE_THRESHOLD);
00454
00455
00456 OBJECTDATA(node1,node)->voltageA = complex(7200,0);
00457 OBJECTDATA(node1,node)->voltageB = complex(-3600,-6235.4);
00458 OBJECTDATA(node1,node)->voltageC = complex(-3600,6235.4);
00459 OBJECTDATA(node2,load)->currentA = complex(160.62,-80.451);
00460 OBJECTDATA(node2,load)->currentB = complex(-194.97,102.72);
00461 OBJECTDATA(node2,load)->currentC = complex(-34.355,22.272);
00462
00463 local_callbacks->sync_all(PC_POSTTOPDOWN);
00464
00465
00466 double rV_2 = OBJECTDATA(node2,load)->voltageA.Re();
00467 double iV_2 = OBJECTDATA(node2,load)->voltageA.Im();
00468
00469 validate_re = 1 - (rV_2 <= node2_phA_V_test->Re() ? rV_2 / node2_phA_V_test->Re() : node2_phA_V_test->Re() /rV_2);
00470 validate_im = 1 - (iV_2 <= node2_phA_V_test->Im() ? iV_2 / node2_phA_V_test->Im() : node2_phA_V_test->Im() /iV_2);
00471 CPPUNIT_ASSERT(validate_re < VALIDATE_THRESHOLD);
00472 CPPUNIT_ASSERT(validate_im < VALIDATE_THRESHOLD);
00473
00474 rV_2 = OBJECTDATA(node2,load)->voltageB.Re();
00475 iV_2 = OBJECTDATA(node2,load)->voltageB.Im();
00476
00477 validate_re = 1 - (rV_2 <= node2_phB_V_test->Re() ? rV_2 / node2_phB_V_test->Re() : node2_phB_V_test->Re() /rV_2);
00478 validate_im = 1 - (iV_2 <= node2_phB_V_test->Im() ? iV_2 / node2_phB_V_test->Im() : node2_phB_V_test->Im() /iV_2);
00479 CPPUNIT_ASSERT(validate_re < VALIDATE_THRESHOLD);
00480 CPPUNIT_ASSERT(validate_im < VALIDATE_THRESHOLD);
00481
00482
00483
00484
00485
00486
00487
00488
00489
00490 }
00491
00492
00493
00494
00495
00496 CPPUNIT_TEST_SUITE(transformer_tests);
00497
00498
00499
00500
00501
00502
00503 CPPUNIT_TEST(test_wye_wye_transformer);
00504 CPPUNIT_TEST(test_delta_delta_transformer);
00505 CPPUNIT_TEST(test_delta_Gwye_transformer);
00506 CPPUNIT_TEST(test_center_tapped_transformer_Aphase);
00507 CPPUNIT_TEST_SUITE_END();
00508 };
00509
00510 #endif
00511
00512 #endif