@@ -156,6 +156,16 @@ def input_data() -> Dict[str, np.ndarray]:
156
156
three_winding_transformer ["pk_13_max" ] = [- 40 , nan_type ("three_winding_transformer" , "pk_12_max" ), 40 , 50 ]
157
157
three_winding_transformer ["pk_23_max" ] = [- 120 , nan_type ("three_winding_transformer" , "pk_12_max" ), 40 , 30 ]
158
158
159
+ transformer_tap_regulator = initialize_array ("input" , "transformer_tap_regulator" , 4 )
160
+ transformer_tap_regulator ["id" ] = [51 , 52 , 53 , 1 ]
161
+ transformer_tap_regulator ["status" ] = [0 , - 1 , 2 , 5 ]
162
+ transformer_tap_regulator ["regulated_object" ] = [14 , 15 , 28 , 2 ]
163
+ transformer_tap_regulator ["control_side" ] = [1 , 2 , 0 , 60 ]
164
+ transformer_tap_regulator ["u_set" ] = [100 , - 100 , 100 , 100 ]
165
+ transformer_tap_regulator ["u_band" ] = [100 , - 4 , 100 , 0 ]
166
+ transformer_tap_regulator ["line_drop_compensation_r" ] = [0.0 , - 1.0 , 1.0 , 2.0 ]
167
+ transformer_tap_regulator ["line_drop_compensation_x" ] = [0.0 , 4.0 , 2.0 , - 4.0 ]
168
+
159
169
source = initialize_array ("input" , "source" , 3 )
160
170
source ["id" ] = [16 , 17 , 1 ]
161
171
source ["node" ] = [10 , 1 , 2 ]
@@ -238,6 +248,7 @@ def input_data() -> Dict[str, np.ndarray]:
238
248
"link" : link ,
239
249
"transformer" : transformer ,
240
250
"three_winding_transformer" : three_winding_transformer ,
251
+ "transformer_tap_regulator" : transformer_tap_regulator ,
241
252
"source" : source ,
242
253
"shunt" : shunt ,
243
254
"sym_load" : sym_load ,
@@ -273,6 +284,7 @@ def test_validate_input_data_sym_calculation(input_data):
273
284
("transformer" , "id" ),
274
285
("three_winding_transformer" , "id" ),
275
286
("fault" , "id" ),
287
+ ("transformer_tap_regulator" , "id" ),
276
288
],
277
289
[
278
290
("asym_gen" , 1 ),
@@ -301,6 +313,7 @@ def test_validate_input_data_sym_calculation(input_data):
301
313
("transformer" , 1 ),
302
314
("three_winding_transformer" , 1 ),
303
315
("fault" , 1 ),
316
+ ("transformer_tap_regulator" , 1 ),
304
317
],
305
318
)
306
319
in validation_errors
@@ -550,6 +563,31 @@ def test_validate_three_winding_transformer_ukpkminmax(input_data):
550
563
assert NotGreaterOrEqualError ("three_winding_transformer" , "pk_23_max" , [1 ], 0 ) in validation_errors
551
564
552
565
566
+ def test_validate_input_data_transformer_tap_regulator (input_data ):
567
+ validation_errors = validate_input_data (input_data , calculation_type = CalculationType .power_flow )
568
+ assert NotBooleanError ("transformer_tap_regulator" , "status" , [52 , 1 , 53 ]) in validation_errors
569
+ assert (
570
+ InvalidIdError (
571
+ "transformer_tap_regulator" , "regulated_object" , [1 ], ["transformer" , "three_winding_transformer" ]
572
+ )
573
+ in validation_errors
574
+ )
575
+ assert (
576
+ InvalidEnumValueError ("transformer_tap_regulator" , "control_side" , [1 ], [BranchSide , Branch3Side ])
577
+ in validation_errors
578
+ )
579
+ # TODO (nbharambe) Add control side error after it is included
580
+ # assert InvalidControlSideError("transformer_tap_regulator", "control_side", [52], BranchSide) in validation_errors
581
+ assert NotGreaterOrEqualError ("transformer_tap_regulator" , "u_set" , [52 ], 0.0 ) in validation_errors
582
+ assert NotGreaterThanError ("transformer_tap_regulator" , "u_band" , [52 , 1 ], 0.0 ) in validation_errors
583
+ assert (
584
+ NotGreaterOrEqualError ("transformer_tap_regulator" , "line_drop_compensation_r" , [52 ], 0.0 ) in validation_errors
585
+ )
586
+ assert (
587
+ NotGreaterOrEqualError ("transformer_tap_regulator" , "line_drop_compensation_x" , [1 ], 0.0 ) in validation_errors
588
+ )
589
+
590
+
553
591
def test_fault (input_data ):
554
592
validation_errors = validate_input_data (input_data , calculation_type = CalculationType .short_circuit )
555
593
assert InvalidEnumValueError ("fault" , "fault_type" , [50 ], FaultType ) in validation_errors
0 commit comments