Fault Loop — Calculator

# Verify protection print("\n🔒 PROTECTION VERIFICATION") print("-" * 40)

multi_cables = [ CableData(length=30, cross_section_phase=16, cross_section_earth=16, material='copper'), CableData(length=20, cross_section_phase=6, cross_section_earth=6, material='copper'), CableData(length=15, cross_section_phase=2.5, cross_section_earth=2.5, material='copper') ]

# Resistivity at 20°C (ohm-mm²/m) RESISTIVITY = { 'copper': 0.0175, 'aluminum': 0.0282 } fault loop calculator

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

multi_result = calc.calculate_fault_loop_impedance(multi_cables, 8000) # meters cross_section_phase=2.5

# Define cable segments cables = [ CableData( length=25, # meters cross_section_phase=2.5, # mm² cross_section_earth=2.5, # mm² material='copper' ) ]

recommendation = calc.recommend_correction( fault_current=result['prospective_fault_current'], protection_rating=20, cable_length=25 ) print(recommendation) # mm² cross_section_earth=2.5

# Temperature correction factors TEMP_FACTOR_OPERATING = 1.25 # for cables at operating temperature TEMP_FACTOR_FAULT = 1.50 # for fault condition class FaultLoopCalculator: """Calculates earth fault loop impedance and prospective fault current"""