Fault Loop Calculator Today

recommendation = calc.recommend_correction( fault_current=result['prospective_fault_current'], protection_rating=20, cable_length=25 ) print(recommendation)

def recommend_correction(self, fault_current: float, protection_rating: float, cable_length: float) -> str: """ Provide recommendations if fault loop impedance is too high """ required_current = 5 * protection_rating # For MCB Type C if fault_current < required_current: max_length = cable_length * (fault_current / required_current) return (f"Fault current ({fault_current:.1f}A) insufficient for " f"{protection_rating}A MCB. Reduce cable length to {max_length:.1f}m " f"or increase conductor size.") else: return "Fault loop impedance meets requirements." def main(): """Example usage of Fault Loop Calculator""" fault loop calculator

print(f"Cold resistance: {r_cold:.4f} Ω") print(f"Hot resistance (fault condition): {r_hot:.4f} Ω") print(f"Resistance increase: {(r_hot/r_cold - 1) * 100:.1f}%") recommendation = calc

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

# Cold condition (no temp correction) r_cold, x_cold = calc.cable_impedance(cable, use_temp_correction=False) # Hot condition (fault temperature) r_hot, x_hot = calc.cable_impedance(cable, use_temp_correction=True)

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