Electrical Equipment Selection Calculator tailwind.config = { theme: { extend: { colors: { primary: '#165DFF', success: '#00B42A', danger: '#F53F3F', warning: '#FF7D00', neutral: { 50: '#F7F8FA', 100: '#F2F3F5', 200: '#E5E6EB', 300: '#C9CDD4', 400: '#86909C', 500: '#4E5969', 600: '#272E3B', 700: '#1D2129', } }, fontFamily: { inter: ['Inter', 'system-ui', 'sans-serif'], }, }, } } @layer utilities { .content-auto { content-visibility: auto; } .input-focus { @apply focus:border-primary focus:ring-2 focus:ring-primary/20 focus:outline-none transition-all; } .tooltip-container { @apply relative inline-block; } .tooltip-text { @apply invisible absolute bottom-full left-1/2 transform -translate-x-1/2 bg-neutral-700 text-white text-xs rounded py-1 px-2 w-max mb-1 opacity-0 transition-opacity duration-200; } .tooltip-container:hover .tooltip-text { @apply visible opacity-100; } .card-shadow { @apply shadow-sm hover:shadow-md transition-shadow duration-300; } }

System Configuration & Equipment Selection

System Basic Parameters

kV
MVA
Solidly Grounded (≤10Ω/LV, ≤50Ω/HV) Resistance Grounded (10-100Ω) Reactance Grounded (X₀/R₀ > 3) Ungrounded (Isolated Neutral) Peterson Coil Grounded (Arc Suppression)
s
Indoor Normal Environment Outdoor Normal Environment Lightning-Prone Area (Mountain/Open Air) Heavy Pollution Area (Industrial/Coastal)

BIL & Insulation Parameters

6 kV (LV: 0.48kV Systems) 12 kV (LV: 0.69kV Systems) 18 kV (MV: 1kV Systems) 24 kV (MV: 3.3kV Systems) 36 kV (MV: 6kV Systems) 45 kV (MV: 10kV Systems) 60 kV (MV: 12kV Systems) 75 kV (MV: 15kV Systems) 95 kV (MV: 20kV Systems) 125 kV (MV: 25kV Systems) 150 kV (MV: 33kV Systems) Custom BIL Rating
Class Y (90°C) - LV Distribution Class A (105°C) - LV Motors/Transformers Class E (120°C) - MV Switchgear Class B (130°C) - MV Transformers Class F (155°C) - HV Equipment Class H (180°C) - High-Temp HV Class C (220°C+) - Specialized HV
Yes (Recommended) No
Circuit Breaker (MVCB/HVCB) Switchgear Transformer Power Cable Busbar

Results Summary

System Max Voltage (Um)

12 kV

System Short-Circuit Current (Isc_sys)

38.5 kA

System Dynamic Stability Current

97.8 kA

Thermal Stability I²t

2964 kA²s

Minimum Required BIL

60 kV

Selected BIL Value

60 kV

BIL Safety Margin

0 %

kV/BIL Ratio

0.1667

Recommended Equipment Parameters

  • Rated Max Voltage (Um): 12 kV
  • Rated Short-Circuit Current: 50 kA / 2 s
  • Dynamic Stability Current: 125 kA
  • BIL Rating: 60 kV (1.2×50μsec)
  • Insulation Class: Class B (130°C)

Compliance Status

Selected equipment parameters meet system requirements. Both BIL and short-circuit current are compliant with sufficient safety margin.

Detailed Selection Analysis

Short-Circuit Withstand Analysis

Parameter System Requirement Recommended Equipment Status
Rated Max Voltage (Um) 12 kV 12 kV Matched
Short-Time Withstand Current (Isc) 38.5 kA 50 kA Satisfied
Peak Withstand Current (Idyn) 97.8 kA 125 kA Satisfied
Thermal Stability I²t 2964 kA²s 5000 kA²s Satisfied
Safety Margin - 31% Sufficient

BIL & Insulation Coordination Analysis

Parameter System Requirement Selected Equipment Status
Minimum Required BIL 60 kV - -
Selected BIL Value - 60 kV Satisfied
BIL Safety Margin ≥15% 0% Low
kV/BIL Ratio ≤0.02 0.1667 High
Insulation Class Match Class B Class B Matched

Detailed Equipment Recommendation

10kV Resistance-Grounded System - Circuit Breaker Selection Recommendation

  • Equipment Type: Medium-Voltage Vacuum Circuit Breaker (MVCB)
  • Rated Parameters: Um=12kV, Rated Current=630A, Rated Short-Circuit Breaking Current=50kA, Short-Time Withstand Current=50kA/2s
  • BIL Requirement: ≥60kV (1.2×50μsec), 75kV recommended to improve safety margin
  • Auxiliary Requirements: Surge arrester (residual voltage ≤48kV), Spring-operated mechanism
  • Installation Requirements: Switchgear IP Rating ≥IP4X, Creepage Distance ≥12mm/kV (Normal Environment)
  • Standard Compliance: IEC 60947-2, ANSI C37.06, IEC 60664-1

Reference Standards

IEC Standards

  • IEC 60038: Standard Voltages (Definition of rated maximum voltage Um)
  • IEC 60947-2: Low-Voltage Switchgear and Controlgear (Short-circuit current requirements)
  • IEC 60664-1: Insulation Coordination (BIL requirements and grounding type matching)
  • IEC 60076-3: Power Transformers (Insulation levels and BIL requirements)
  • IEC 60060-1: High-Voltage Test Techniques (Definition of BIL 1.2×50μsec waveform)
  • IEC 62271-1: High-Voltage Switchgear and Controlgear (Short-circuit current and BIL coordination)

ANSI Standards

  • ANSI C37.06: High-Voltage Circuit Breakers (Rated short-circuit current and Um requirements)
  • ANSI C37.20.1: Metal-Clad Switchgear (BIL and insulation coordination)
  • ANSI/IEEE C62.82.1: Metal-Oxide Surge Arresters (BIL coordination requirements)
  • ANSI/IEEE C57.12.00: Power Transformers (Short-circuit withstand and BIL)
  • ANSI/IEEE 141: Industrial Power Distribution Systems (Equipment selection and coordination)
  • ANSI/IEEE 32: Insulation Coordination (System overvoltage and BIL matching)

Equipment Selection Guide

1. Core Selection Principles

  • Voltage Matching: Equipment rated maximum voltage (Um) ≥ System rated maximum voltage (Um_sys)
  • Current Matching: Equipment rated short-circuit current ≥ System short-circuit current (10-20% margin)
  • BIL Matching: Equipment BIL ≥ System minimum required BIL (determined by grounding type)
  • Insulation Coordination: BIL hierarchy across all equipment (Arrester residual voltage ≤ Cable BIL ≤ Equipment BIL)
  • Environment Adaptation: Increase safety margin for harsh environments (lightning/pollution) and enhance IP rating

2. Selection Focus by Grounding Type

Grounding Type Overvoltage Characteristics BIL Requirement Selection Recommendation
Solidly Grounded Low overvoltage (2.5-3x) Minimum Standard BIL, 10% margin, economical equipment optional
Resistance Grounded Medium overvoltage (3-4x) Medium Standard BIL + 20% margin, surge arrester recommended
Reactance/Peterson Coil High overvoltage (4-5x) High BIL + 30% margin, surge arrester mandatory
Ungrounded Very high overvoltage (6-8x) Very High BIL + 50% margin, reinforced insulation, multiple surge arresters

3. Common Selection Pitfalls to Avoid

Mistake 1: Focus only on rated voltage, ignore Um

Using 10kV equipment (Um=12kV) in 12kV system (Um=15kV) causes insulation breakdown due to voltage mismatch.

Mistake 2: BIL-grounding type mismatch

Selecting solidly grounded equipment (insufficient BIL) for ungrounded systems leads to overvoltage damage.

Mistake 3: Inadequate short-circuit current margin

System short-circuit current=38.5kA, selecting 40kA equipment (4% margin) becomes insufficient after system expansion.

Mistake 4: Ignoring component BIL coordination

Circuit breaker BIL=60kV with transformer BIL=75kV creates BIL inversion, risking transformer insulation damage.

// Basic Data Definitions const umTable = { 0.48: 0.69, 1.0: 1.2, 3.3: 3.6, 6.0: 7.2, 10.0: 12.0, 12.0: 15.0, 15.0: 17.5, 20.0: 24.0, 25.0: 27.5, 33.0: 36.0, 35.0: 40.5, 66.0: 72.5, 110.0: 126.0, 220.0: 252.0, 330.0: 363.0, 500.0: 550.0 }; const bilMultipliers = { solidly: { lv: 5.0, mv: 5.5, hv: 6.0 }, resistance: { lv: 6.0, mv: 6.5, hv: 7.0 }, reactance: { lv: 7.0, mv: 7.5, hv: 8.0 }, ungrounded: { lv: 8.0, mv: 8.5, hv: 9.0 }, peterson: { lv: 7.5, mv: 8.0, hv: 8.5 } }; const insulationClasses = { y: { tempRating: 90, minBIL: 6, description: "Class Y (90°C) - LV Distribution" }, a: { tempRating: 105, minBIL: 12, description: "Class A (105°C) - LV Motors/Transformers" }, e: { tempRating: 120, minBIL: 24, description: "Class E (120°C) - MV Switchgear" }, b: { tempRating: 130, minBIL: 36, description: "Class B (130°C) - MV Transformers" }, f: { tempRating: 155, minBIL: 45, description: "Class F (155°C) - HV Equipment" }, h: { tempRating: 180, minBIL: 75, description: "Class H (180°C) - High-Temp HV" }, c: { tempRating: 220, minBIL: 150, description: "Class C (220°C+) - Specialized HV" } }; const standardBilTable = [ { voltage: 0.48, solidly: 6, resistance: 12, reactance: 18, ungrounded: 24, peterson: 18 }, { voltage: 1.0, solidly: 18, resistance: 24, reactance: 36, ungrounded: 45, peterson: 36 }, { voltage: 3.3, solidly: 24, resistance: 36, reactance: 45, ungrounded: 60, peterson: 45 }, { voltage: 6.0, solidly: 36, resistance: 45, reactance: 60, ungrounded: 75, peterson: 60 }, { voltage: 10.0, solidly: 45, resistance: 60, reactance: 75, ungrounded: 95, peterson: 75 }, { voltage: 12.0, solidly: 60, resistance: 75, reactance: 95, ungrounded: 125, peterson: 95 }, { voltage: 15.0, solidly: 75, resistance: 95, reactance: 125, ungrounded: 150, peterson: 125 }, { voltage: 20.0, solidly: 95, resistance: 125, reactance: 150, ungrounded: 200, peterson: 150 }, { voltage: 25.0, solidly: 125, resistance: 150, reactance: 200, ungrounded: 250, peterson: 200 }, { voltage: 33.0, solidly: 150, resistance: 200, reactance: 250, ungrounded: 350, peterson: 250 }, { voltage: 35.0, solidly: 150, resistance: 200, reactance: 250, ungrounded: 350, peterson: 250 }, { voltage: 66.0, solidly: 200, resistance: 250, reactance: 350, ungrounded: 450, peterson: 350 }, { voltage: 110.0, solidly: 250, resistance: 350, reactance: 450, ungrounded: 550, peterson: 450 }, { voltage: 220.0, solidly: 450, resistance: 550, reactance: 650, ungrounded: 800, peterson: 650 } ]; // Custom BIL Display Toggle document.getElementById('bil-rating').addEventListener('change', function() { const customBilGroup = document.getElementById('custom-bil-group'); customBilGroup.classList.toggle('hidden', this.value !== 'custom'); }); // Calculate Button Click Event document.getElementById('calculate-btn').addEventListener('click', function() { // Get Input Parameters const systemVoltage = parseFloat(document.getElementById('system-voltage').value) || 10; const shortCircuitCapacity = parseFloat(document.getElementById('short-circuit-capacity').value) || 800; const groundingType = document.getElementById('grounding-type').value; const shortCircuitDuration = parseFloat(document.getElementById('short-circuit-duration').value) || 2; const environmentType = document.getElementById('environment-type').value; const surgeArrester = document.getElementById('surge-arrester').value; const equipmentType = document.getElementById('equipment-type').value; const insulationClass = document.getElementById('insulation-class').value; // Get BIL Value let selectedBIL = parseFloat(document.getElementById('bil-rating').value); if (document.getElementById('bil-rating').value === 'custom') { selectedBIL = Math.max(6, Math.min(1500, parseFloat(document.getElementById('custom-bil').value) || 75)); } // Calculate System Parameters // 1. System Rated Maximum Voltage (Um) let um = umTable[systemVoltage] || Math.ceil(systemVoltage * 1.2); // 2. System Short-Circuit Current const shortCircuitCurrent = (shortCircuitCapacity / (Math.sqrt(3) * um)).toFixed(1); // 3. Dynamic Stability Current (X/R=10, peak factor=1.8) const dynamicCurrent = (shortCircuitCurrent * Math.sqrt(2) * 1.8).toFixed(1); // 4. Thermal Stability I²t Value const itSquared = (Math.pow(shortCircuitCurrent, 2) * shortCircuitDuration).toFixed(0); // 5. Voltage Category Classification let voltageCategory = 'lv'; if (systemVoltage > 1 && systemVoltage 36) voltageCategory = 'hv'; // 6. Calculate Required BIL const standardBilEntry = standardBilTable.find(entry => Math.abs(entry.voltage - systemVoltage) < 0.01); let requiredBIL; if (standardBilEntry) { requiredBIL = standardBilEntry[groundingType]; } else { const multiplier = bilMultipliers[groundingType][voltageCategory]; requiredBIL = Math.ceil(systemVoltage * multiplier); } // Apply Insulation Class Minimum BIL Limit const insulationMinBIL = insulationClasses[insulationClass].minBIL; requiredBIL = Math.max(requiredBIL, insulationMinBIL); // 7. Calculate Safety Margin const bilMargin = Math.round(((selectedBIL - requiredBIL) / requiredBIL) * 100); // 8. kV/BIL Ratio const kvBilRatio = (systemVoltage / selectedBIL).toFixed(4); // 9. Determine Recommended Equipment Parameters const recommendedIsc = Math.ceil(parseFloat(shortCircuitCurrent) * 1.3); // 30% margin const recommendedIdyn = Math.ceil(parseFloat(dynamicCurrent) * 1.3); const recommendedItSquared = Math.ceil(Math.pow(recommendedIsc, 2) * shortCircuitDuration); // 10. Environment and Surge Arrester Impact on Margin let bilMarginStatus = 'Sufficient'; let bilMarginClass = 'text-success'; if (bilMargin < 15) { bilMarginStatus = 'Low'; bilMarginClass = 'text-warning'; } if (bilMargin 0.02) { kvBilRatioStatus = 'High'; } // 11. Compliance Status Judgment let complianceText = ''; let complianceClass = 'bg-success/5 border-success/20'; if (selectedBIL >= requiredBIL && bilMargin >= 10 && recommendedIsc >= parseFloat(shortCircuitCurrent)) { complianceText = 'Selected equipment parameters meet system requirements. Both BIL and short-circuit current are compliant with sufficient safety margin.'; } else { complianceText = 'Selected equipment parameters do not fully meet system requirements (insufficient BIL safety margin or short-circuit current withstand capability). Recommended to adjust equipment parameters.'; complianceClass = 'bg-warning/5 border-warning/20'; } // 12. Generate Detailed Recommendation Text let detailedRecommendation = ''; const insulationDesc = insulationClasses[insulationClass].description; switch(equipmentType) { case 'circuit-breaker': detailedRecommendation = `

${systemVoltage}kV ${getGroundingTypeName(groundingType)} System - Circuit Breaker Selection Recommendation

`; break; case 'switchgear': detailedRecommendation = `

${systemVoltage}kV ${getGroundingTypeName(groundingType)} System - Switchgear Selection Recommendation

`; break; // Similar expansion for other equipment types default: detailedRecommendation = `

${systemVoltage}kV ${getGroundingTypeName(groundingType)} System - ${getEquipmentTypeName(equipmentType)} Selection Recommendation

`; } // Update DOM Results // Summary Results document.getElementById('result-um').textContent = um + ' '; document.getElementById('result-isc-sys').textContent = shortCircuitCurrent + ' '; document.getElementById('result-idyn-sys').textContent = dynamicCurrent + ' '; document.getElementById('result-it-squared').textContent = itSquared + ' '; document.getElementById('result-required-bil').textContent = requiredBIL + ' '; document.getElementById('result-selected-bil').textContent = selectedBIL + ' '; document.getElementById('result-bil-margin').textContent = bilMargin + ' '; document.getElementById('result-bil-margin').className = `text-xl font-bold ${bilMarginClass}`; document.getElementById('result-kv-bil-ratio').textContent = kvBilRatio + ' '; // Recommended Parameters document.getElementById('rec-um').textContent = um; document.getElementById('rec-isc').textContent = recommendedIsc; document.getElementById('rec-duration').textContent = shortCircuitDuration; document.getElementById('rec-idyn').textContent = recommendedIdyn; document.getElementById('rec-bil').textContent = selectedBIL; document.getElementById('rec-insulation').textContent = insulationDesc; // Short-Circuit Analysis Table document.getElementById('table-um-sys').textContent = um + ' kV'; document.getElementById('table-um-equip').textContent = um + ' kV'; document.getElementById('table-isc-sys').textContent = shortCircuitCurrent + ' kA'; document.getElementById('table-isc-equip').textContent = recommendedIsc + ' kA'; document.getElementById('table-idyn-sys').textContent = dynamicCurrent + ' kA'; document.getElementById('table-idyn-equip').textContent = recommendedIdyn + ' kA'; document.getElementById('table-it-sys').textContent = itSquared + ' kA²s'; document.getElementById('table-it-equip').textContent = recommendedItSquared + ' kA²s'; document.getElementById('table-margin').textContent = Math.round(((recommendedIsc - parseFloat(shortCircuitCurrent)) / parseFloat(shortCircuitCurrent)) * 100) + '%'; // BIL Analysis Table document.getElementById('table-bil-required').textContent = requiredBIL + ' kV'; document.getElementById('table-bil-selected').textContent = selectedBIL + ' kV'; document.getElementById('table-bil-margin').textContent = bilMargin + '%'; document.getElementById('table-bil-margin').className = bilMarginClass; document.getElementById('table-kv-bil-ratio').textContent = kvBilRatio; document.getElementById('table-kv-bil-ratio').className = parseFloat(kvBilRatio) > 0.02 ? 'text-warning' : 'text-neutral-700'; document.getElementById('table-insulation-match').textContent = insulationDesc; // Compliance Status and Detailed Recommendation document.getElementById('compliance-status').className = `bg-success/5 rounded-lg p-4 border border-success/20`; document.getElementById('compliance-text').textContent = complianceText; document.getElementById('detailed-recommendation').innerHTML = detailedRecommendation; // Draw Chart drawResultChart(shortCircuitCurrent, dynamicCurrent, selectedBIL, requiredBIL); }); // Helper Function: Get Grounding Type Name function getGroundingTypeName(type) { const names = { solidly: 'Solidly Grounded', resistance: 'Resistance Grounded', reactance: 'Reactance Grounded', ungrounded: 'Ungrounded', peterson: 'Peterson Coil Grounded' }; return names[type] || type; } // Helper Function: Get Equipment Type Name function getEquipmentTypeName(type) { const names = { 'circuit-breaker': 'Circuit Breaker', 'switchgear': 'Switchgear', 'transformer': 'Transformer', 'cable': 'Power Cable', 'busbar': 'Busbar' }; return names[type] || type; } // Draw Result Chart function drawResultChart(isc, idyn, bil, requiredBil) { const ctx = document.getElementById('result-chart').getContext('2d'); // Destroy Existing Chart if (window.resultChart) { window.resultChart.destroy(); } window.resultChart = new Chart(ctx, { type: 'bar', data: { labels: ['Short-Circuit Current (kA)', 'Dynamic Stability (kA)', 'Selected BIL (kV)', 'Required BIL (kV)'], datasets: [{ label: 'System Parameters', data: [isc, idyn, bil, requiredBil], backgroundColor: [ 'rgba(22, 93, 255, 0.7)', 'rgba(255, 125, 0, 0.7)', bil >= requiredBil ? 'rgba(0, 180, 42, 0.7)' : 'rgba(245, 63, 63, 0.7)', 'rgba(153, 153, 153, 0.7)' ], borderColor: [ 'rgba(22, 93, 255, 1)', 'rgba(255, 125, 0, 1)', bil >= requiredBil ? 'rgba(0, 180, 42, 1)' : 'rgba(245, 63, 63, 1)', 'rgba(153, 153, 153, 1)' ], borderWidth: 1 }] }, options: { responsive: true, maintainAspectRatio: false, plugins: { legend: { display: false }, tooltip: { callbacks: { label: function(context) { const label = context.dataset.label || ''; const value = context.raw; const unit = context.label.includes('Current') ? ' kA' : ' kV'; return label + ': ' + value + unit; } } } }, scales: { y: { beginAtZero: true, grid: { color: 'rgba(0, 0, 0, 0.05)' } }, x: { grid: { display: false } } } } }); } // Initial Calculation on Page Load window.addEventListener('load', function() { document.getElementById('calculate-btn').click(); });