Switchgear Voltage Divider Calculator
Calculate precise voltage division ratios, output voltages, and resistor values for switchgear applications including protection relays, voltage sensors, and control systems. Supports both low-voltage (LV) and medium-voltage (MV) switchgear with industry-standard voltage ranges and power rating considerations.
Voltage Divider Circuit Visualization
Voltage Divider Formula
Vout = Vin × (R2 / (R1 + R2))
Voltage Division Principle
Vin = Input Voltage, R1/R2 = Resistor Values, Vout = Output Voltage
Standard Switchgear Voltage Ranges
Calculate Output Voltage (Vout)
Typical switchgear range: 120V - 34.5kV
High-value resistors recommended for MV applications
Match power rating to application requirements
Typical switchgear range: 120V - 34.5kV
Typical control voltage: 12-240V
High-value resistors recommended for MV applications
Typical switchgear range: 120V - 34.5kV
Typical control voltage: 12-240V
Match power rating to application requirements
Switchgear Voltage Divider Design Guidelines
Critical Design Considerations
Resistor Voltage Rating
For medium-voltage applications, select resistors with voltage ratings exceeding their expected voltage drop by 20-30%. For R1 in a 12.47kV system, use resistors rated for at least 10kV.
Power Dissipation
Resistor power rating should be 5-10 times the calculated power dissipation to prevent overheating and drift. Use the formula P = V²/R for each resistor.
Resistor Tolerance
Use precision resistors (±1% tolerance or better) for accurate voltage division. Carbon film resistors are acceptable for LV, but metal film or wirewound resistors are recommended for MV applications.
Insulation Requirements
Ensure proper insulation between divider components and ground. For MV systems, maintain minimum creepage distances per IEC 60664 or ANSI/IEEE standards.
Temperature Coefficient
Select resistors with low temperature coefficients (≤100 ppm/°C) to maintain accuracy across operating temperature ranges (-40°C to +85°C typical for switchgear).
Switchgear-Specific Applications
Protection Relay Voltage Sensing
Voltage dividers are used to reduce MV system voltages to levels compatible with protection relay inputs (typically 120V or 240V AC). Key requirements:
- High input impedance to avoid loading the system
- Excellent long-term stability
- Immunity to transient voltages
- Compliance with relay manufacturer specifications
Control System Voltage Matching
Dividers match system voltages to control circuit requirements. Common applications include:
- Breaker control circuits
- Indicator light circuits
- Motor control centers
- Monitoring and metering systems
Voltage Monitoring
Precision dividers for voltage measurement applications require:
- Ultra-low tolerance (±0.1% to ±0.5%)
- Low noise characteristics
- Stable performance over time
- Calibration capability
Industry Standards
- • IEC 60664 - Insulation Coordination for Equipment
- • ANSI/IEEE C37.20 - Low-Voltage Switchgear
- • NEMA ICS 1 - Industrial Control and Systems
- • IEC 61850 - Communication Networks and Systems
Frequently Asked Questions
${tabData.formula}
Voltage Divider Calculation
Vin = Input Voltage, R1/R2 = Resistor Values, Vout = Output Voltage
`; // Update result labels resultMainLabel.textContent = tabData.mainLabel; resultMainDesc.textContent = tabData.mainDesc; usedFormula.textContent = tabData.formula; // Perform calculation if inputs are available calculateDivider(); }); }); // Unit Conversion Functions const unitConverters = { // Voltage converters (to volts) vin: (value, unit) => { switch(unit) { case 'kv': return value * 1000; default: return value; // v } }, vout: (value, unit) => { switch(unit) { case 'kv': return value * 1000; default: return value; // v } }, // Resistance converters (to ohms) r1: (value, unit) => { switch(unit) { case 'kohm': return value * 1000; case 'mohm': return value * 1000000; default: return value; // ohm } }, r2: (value, unit) => { switch(unit) { case 'kohm': return value * 1000; case 'mohm': return value * 1000000; default: return value; // ohm } }, // Formatters formatVoltage: (value) => { if (value >= 1000) { return `${(value / 1000).toFixed(2)} kV`; } return `${value.toFixed(1)} V`; }, formatResistance: (value) => { if (value >= 1000000) { return `${(value / 1000000).toFixed(2)} MΩ`; } else if (value >= 1000) { return `${(value / 1000).toFixed(2)} kΩ`; } return `${value.toFixed(0)} Ω`; }, formatCurrent: (value) => { if (value < 0.000001) { // < 1nA return `${(value * 1000000000).toFixed(2)} nA`; } else if (value < 0.001) { // < 1mA return `${(value * 1000000).toFixed(2)} μA`; } else if (value < 1) { // { if (value < 0.001) { // < 1mW return `${(value * 1000000).toFixed(1)} μW`; } else if (value < 1) { // < 1W return `${(value * 1000).toFixed(1)} mW`; } else if (value < 1000) { // { if (input.tagName === 'INPUT' || input.tagName === 'SELECT') { input.addEventListener('input', calculateDivider); } }); // Form submission handlers document.getElementById('calculate-vout-form').addEventListener('submit', (e) => { e.preventDefault(); calculateDivider(); scrollToResults(); }); document.getElementById('calculate-r2-form').addEventListener('submit', (e) => { e.preventDefault(); calculateDivider(); scrollToResults(); }); document.getElementById('calculate-r1-form').addEventListener('submit', (e) => { e.preventDefault(); calculateDivider(); scrollToResults(); }); // Scroll to results function function scrollToResults() { const resultContainer = document.getElementById('result-container'); if (!resultContainer.classList.contains('hidden')) { resultContainer.scrollIntoView({ behavior: 'smooth', block: 'nearest' }); } } // Calculate voltage divider values function calculateDivider() { // Determine active tab const activeTabId = tabElements.find(tab => tab.classList.contains('calc-tab-active')).id; const activeTab = tabs[activeTabId]; let vin, vout, r1, r2, totalR, current, power, ratio; let calculationDetails = ''; try { switch(activeTabId) { case 'tab-calculate-vout': // Get values from calculate Vout form vin = unitConverters.vin(parseFloat(inputs.vin.value) || 12470, inputs.vinUnit.value); r1 = unitConverters.r1(parseFloat(inputs.r1.value) || 10, inputs.r1Unit.value); r2 = unitConverters.r2(parseFloat(inputs.r2.value) || 1.2, inputs.r2Unit.value); // Validate inputs if (r1 <= 0 || r2 <= 0 || vin <= 0) throw new Error('Invalid input values'); // Calculate values vout = vin * (r2 / (r1 + r2)); totalR = r1 + r2; current = vin / totalR; power = (vin * vin) / totalR; ratio = (vin / vout).toFixed(1); // Calculation details const formattedR1 = unitConverters.formatResistance(r1); const formattedR2 = unitConverters.formatResistance(r2); calculationDetails = `${unitConverters.formatVoltage(vin)} × (${formattedR2} / (${formattedR1} + ${formattedR2})) = ${unitConverters.formatVoltage(vout)}`; // Update main result results.mainValue.textContent = unitConverters.formatVoltage(vout); break; case 'tab-calculate-r2': // Get values from calculate R2 form vin = unitConverters.vin(parseFloat(inputs.vinR2.value) || 12470, inputs.vinUnitR2.value); vout = unitConverters.vout(parseFloat(inputs.voutR2.value) || 120, inputs.voutUnitR2.value); r1 = unitConverters.r1(parseFloat(inputs.r1R2.value) || 10, inputs.r1UnitR2.value); // Validate inputs if (r1 <= 0 || vout <= 0 || vin <= vout) throw new Error('Invalid input values'); // Calculate values r2 = r1 * (vout / (vin - vout)); totalR = r1 + r2; current = vin / totalR; power = (vin * vin) / totalR; ratio = (vin / vout).toFixed(1); // Calculation details const formattedR1R2 = unitConverters.formatResistance(r1); calculationDetails = `${formattedR1R2} × (${unitConverters.formatVoltage(vout)} / (${unitConverters.formatVoltage(vin)} - ${unitConverters.formatVoltage(vout)})) = ${unitConverters.formatResistance(r2)}`; // Update main result results.mainValue.textContent = unitConverters.formatResistance(r2); break; case 'tab-calculate-r1': // Get values from calculate R1 form vin = unitConverters.vin(parseFloat(inputs.vinR1.value) || 12470, inputs.vinUnitR1.value); vout = unitConverters.vout(parseFloat(inputs.voutR1.value) || 120, inputs.voutUnitR1.value); r2 = unitConverters.r2(parseFloat(inputs.r2R1.value) || 1.2, inputs.r2UnitR1.value); // Validate inputs if (r2 <= 0 || vout <= 0 || vin <= vout) throw new Error('Invalid input values'); // Calculate values r1 = r2 * ((vin - vout) / vout); totalR = r1 + r2; current = vin / totalR; power = (vin * vin) / totalR; ratio = (vin / vout).toFixed(1); // Calculation details const formattedR2R1 = unitConverters.formatResistance(r2); calculationDetails = `${formattedR2R1} × ((${unitConverters.formatVoltage(vin)} - ${unitConverters.formatVoltage(vout)}) / ${unitConverters.formatVoltage(vout)}) = ${unitConverters.formatResistance(r1)}`; // Update main result results.mainValue.textContent = unitConverters.formatResistance(r1); break; } // Calculate component power dissipation const powerR1 = (current * current) * r1; const powerR2 = (current * current) * r2; // Component recommendation let componentRec = ''; const maxPower = Math.max(powerR1, powerR2); if (maxPower < 0.001) { // <1mW componentRec = 'Use 1/4W metal film resistors (±1% tolerance)'; } else if (maxPower < 0.01) { // <10mW componentRec = 'Use 1/2W metal film resistors (±1% tolerance)'; } else if (maxPower < 0.1) { // <100mW componentRec = 'Use 1W metal film resistors (±1% tolerance)'; } else if (maxPower < 1) { // { results.mainValue.classList.remove('scale-110'); }, 300); } catch (error) { console.error('Calculation error:', error); document.getElementById('result-container').classList.add('hidden'); } } // Add clear button functionality function addClearButtons() { // Clear button for Calculate Vout form const clearVoutBtn = createClearButton('Reset Voltage Divider Values'); clearVoutBtn.addEventListener('click', () => { inputs.vin.value = '12470'; inputs.vinUnit.value = 'kv'; inputs.r1.value = '10'; inputs.r1Unit.value = 'mohm'; inputs.r2.value = '1.2'; inputs.r2Unit.value = 'kohm'; calculateDivider(); }); document.getElementById('calculate-vout-form').appendChild(clearVoutBtn); // Clear button for Calculate R2 form const clearR2Btn = createClearButton('Reset Resistor R2 Calculator'); clearR2Btn.addEventListener('click', () => { inputs.vinR2.value = '12470'; inputs.vinUnitR2.value = 'kv'; inputs.voutR2.value = '120'; inputs.voutUnitR2.value = 'v'; inputs.r1R2.value = '10'; inputs.r1UnitR2.value = 'mohm'; calculateDivider(); }); document.getElementById('calculate-r2-form').appendChild(clearR2Btn); // Clear button for Calculate R1 form const clearR1Btn = createClearButton('Reset Resistor R1 Calculator'); clearR1Btn.addEventListener('click', () => {