fault loop calculator

Fault Loop Calculator Link May 2026

# Create calculator instance calc = FaultLoopCalculator(supply_voltage=230, frequency=50)

def source_impedance(self, fault_current_available: float = 10000) -> Tuple[float, float]: """ Calculate source impedance from available fault current Args: fault_current_available: Available fault current at supply point (A) Returns: Tuple of (source resistance, source reactance) """ # Typical X/R ratio for LV systems xr_ratio = 0.15 # Low voltage typical value # Source impedance magnitude z_source = self.supply_voltage / fault_current_available # Calculate R and X from X/R ratio r_source = z_source / math.sqrt(1 + xr_ratio**2) x_source = xr_ratio * r_source return r_source, x_source fault loop calculator

def cable_impedance(self, cable: CableData, use_temp_correction: bool = True) -> Tuple[float, float]: """ Calculate cable resistance and reactance Returns: Tuple of (resistance ohms, reactance ohms) """ resistivity = cable.RESISTIVITY[cable.material] # Temperature correction factor temp_factor = cable.TEMP_FACTOR_FAULT if use_temp_correction else 1.0 # Phase conductor resistance r_phase = resistivity * temp_factor * cable.length / cable.cross_section_phase # Earth conductor resistance r_earth = resistivity * temp_factor * cable.length / cable.cross_section_earth # Total loop resistance (phase + earth) r_total = r_phase + r_earth # Reactance (typical for LV cables: ~0.08 ohm/km for 50Hz) reactance_per_km = 0.08 # ohms/km x_total = reactance_per_km * cable.length / 1000 return r_total, x_total frequency=50) def source_impedance(self

# Define cable segments cables = [ CableData( length=25, # meters cross_section_phase=2.5, # mm² cross_section_earth=2.5, # mm² material='copper' ) ] fault_current_available: float = 10000) -&gt

Other projects: