|
24 | 24 | )
|
25 | 25 | from power_grid_model.data_types import BatchDataset, Dataset, SingleDataset
|
26 | 26 | from power_grid_model.enum import (
|
| 27 | + AngleMeasurementType, |
27 | 28 | Branch3Side,
|
28 | 29 | BranchSide,
|
29 | 30 | CalculationType,
|
@@ -378,12 +379,22 @@ def validate_required_values(
|
378 | 379 | # Sensors
|
379 | 380 | required["sensor"] = required["base"] + ["measured_object"]
|
380 | 381 | required["voltage_sensor"] = required["sensor"].copy()
|
| 382 | + required["current_sensor"] = required["sensor"] + [ |
| 383 | + "measured_terminal_type", |
| 384 | + "angle_measurement_type", |
| 385 | + "i_sigma", |
| 386 | + "i_angle_sigma", |
| 387 | + ] |
381 | 388 | required["power_sensor"] = required["sensor"] + ["measured_terminal_type"]
|
382 | 389 | if calculation_type is None or calculation_type == CalculationType.state_estimation:
|
383 | 390 | required["voltage_sensor"] += ["u_sigma", "u_measured"]
|
| 391 | + required["current_sensor"] += ["i_measured", "i_angle_measured"] |
384 | 392 | required["power_sensor"] += ["power_sigma", "p_measured", "q_measured"]
|
385 | 393 | required["sym_voltage_sensor"] = required["voltage_sensor"].copy()
|
386 | 394 | required["asym_voltage_sensor"] = required["voltage_sensor"].copy()
|
| 395 | + required["sym_current_sensor"] = required["current_sensor"].copy() |
| 396 | + required["asym_current_sensor"] = required["current_sensor"].copy() |
| 397 | + |
387 | 398 | # Different requirements for individual sensors. Avoid shallow copy.
|
388 | 399 | for sensor_type in ("sym_power_sensor", "asym_power_sensor"):
|
389 | 400 | required[sensor_type] = required["power_sensor"].copy()
|
@@ -458,6 +469,8 @@ def validate_values(data: SingleDataset, calculation_type: CalculationType | Non
|
458 | 469 | ComponentType.asym_power_sensor: ["power_sigma"],
|
459 | 470 | ComponentType.sym_voltage_sensor: ["u_sigma"],
|
460 | 471 | ComponentType.asym_voltage_sensor: ["u_sigma"],
|
| 472 | + ComponentType.sym_current_sensor: ["i_sigma", "i_angle_sigma"], |
| 473 | + ComponentType.asym_current_sensor: ["i_sigma", "i_angle_sigma"], |
461 | 474 | },
|
462 | 475 | )
|
463 | 476 | )
|
@@ -972,6 +985,7 @@ def validate_generic_current_sensor(data: SingleDataset, component: ComponentTyp
|
972 | 985 | errors += _all_greater_than_zero(data, component, "i_sigma")
|
973 | 986 | errors += _all_greater_than_zero(data, component, "i_angle_sigma")
|
974 | 987 | errors += _all_valid_enum_values(data, component, "measured_terminal_type", MeasuredTerminalType)
|
| 988 | + errors += _all_valid_enum_values(data, component, "angle_measurement_type", AngleMeasurementType) |
975 | 989 | errors += _all_valid_ids(
|
976 | 990 | data,
|
977 | 991 | component,
|
|
0 commit comments