From 016da2266197bcf2d4a22250ecd0e444abaaec4e Mon Sep 17 00:00:00 2001 From: "Zink, Zephyr" Date: Tue, 29 Sep 2026 16:35:51 -0600 Subject: [PATCH] compare same voltage type --- .../base/distribution_branch_base.py | 21 ++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/src/gdm/distribution/components/base/distribution_branch_base.py b/src/gdm/distribution/components/base/distribution_branch_base.py index 5da69f49..7accb854 100644 --- a/src/gdm/distribution/components/base/distribution_branch_base.py +++ b/src/gdm/distribution/components/base/distribution_branch_base.py @@ -8,7 +8,7 @@ from pydantic import model_validator, Field from gdm.distribution.components.distribution_bus import DistributionBus -from gdm.distribution.enums import Phase +from gdm.distribution.enums import Phase, VoltageTypes from gdm.distribution.components.base.distribution_component_base import ( InServiceDistributionComponentBase, ) @@ -48,14 +48,25 @@ def validate_fields_base(self) -> "DistributionBranchBase": ) raise ValueError(msg) + rated_voltage_LN_from = ( + self.buses[0].rated_voltage + if self.buses[0].voltage_type == VoltageTypes.LINE_TO_GROUND + else self.buses[0].rated_voltage / math.sqrt(3) + ) + rated_voltage_LN_to = ( + self.buses[1].rated_voltage + if self.buses[1].voltage_type == VoltageTypes.LINE_TO_GROUND + else self.buses[1].rated_voltage / math.sqrt(3) + ) + if not math.isclose( - self.buses[0].rated_voltage.magnitude, - self.buses[1].rated_voltage.magnitude, + rated_voltage_LN_from.magnitude, + rated_voltage_LN_to.magnitude, rel_tol=0.001, # 10^-3 ): msg = ( - f"From bus {self.buses[0].rated_voltage=}" - f"and to bus voltage {self.buses[1].rated_voltage=} rating should be same." + f"From bus line to ground voltage {rated_voltage_LN_from=}" + f"and to bus line to ground voltage {rated_voltage_LN_to=} rating should be same." ) raise ValueError(msg)