#: script=scriptloader
- lib/numeric-1.2.6.min.js
.row
.col-md-3
br
br
#inputform
.col-md-1
.col-md-8
h3 Results
#results
#plot
#: jquery=dform outputid=inputform
html:
- name: equip
type: select
bs3caption: Equipment
choices:
- Switchgear
- MCCs and Panels
- Open Air
- Cable
- name: V
type: number
bs3caption: "Voltage, line to line, kV"
value: 12.5
- name: grounded
type: checkbox
bs3caption: Grounded
checked: checked
- name: Din
type: number
step: 5
bs3caption: "Working distance, in"
value: 36
- name: clothing
type: number
bs3caption:
html:
- html: Clothing rating, cal/cm
type: span
- type: sup
html: 2
value: 8.0
- name: Ib
type: number
bs3caption: "Bolted current, kA"
value: 6.0
- name: t
type: number
bs3caption: "Duration, sec"
step: 0.1
value: 1.0
- name: graphextras
type: select
bs3caption: Plotting extras
choices:
- Vary working distance
- Vary clothing
- None
#: name=tbl
key: ["LVe1","LVe3","LVe4","LVe2","MV1e1","MV1e3","MV1e2","MV1e4","MV2e1","MV2e3","MV2e2","MV2e4"]
G: [32,32,25,13,102,102,13,102,153,153,13,153]
x: [2,1.473,1.641,2,2,0.973,2,0.973,2,0.973,2,0.973]
equip:
- Open Air
- Cable
- Switchgear
- MCCs and Panels
D = Din * 25.4 // convert to mm
//println("Equipment = " + equip)
equipcode = tbl.equip.indexOf(equip) + 1
//println("Equipment code = " + equipcode)
var Vlab = "LV"
if (V > 1) Vlab = "MV1"
if (V > 5) Vlab = "MV2"
key = Vlab + "e" + equipcode
idx = tbl.key.indexOf(key)
//println("key = " + key)
//println("idx = " + idx)
G = tbl.G[idx]
x = tbl.x[idx]
//println("G = "+ G)
//println("x = "+ x)
findcals = function(Ib) {
if (V > 1) {Cf = 1.0} else {Cf = 1.5}
if (equip == "Open Air") {K1 = -0.792; K = -0.153} else {K1 = -0.555; K = -0.097}
if (!grounded) {K2 = 0.0} else {K2 = -0.113}
lgIb = Math.log(Ib)/ Math.LN10
if (V > 1) {
lgIa = 0.00402 + 0.983 * lgIb
} else {
lgIa = K + 0.662 * lgIb + 0.0966 * V + 0.000526 * G + 0.5588 * V * lgIb - 0.00304 * G * lgIb
}
Ia = Math.pow(10, lgIa)
En = Math.pow(10, K1 + K2 + 0.0011 * G + 1.081 * lgIa)
return Cf * En * t/0.2 * Math.pow(610/D, x)
}
cals = findcals(Ib)
//:output=markdown outputid=results
println()
println("Incident energy for the given current and duration = **" + cals.toFixed(2) + " cal/cm^2**")
duration = clothing / cals * t
println()
println("Duration limit for the given current and clothing = **" + duration.toFixed(2) + " secs**")
#: name=plotinfo
chart:
type: line
width: 500
height: 500
spacingRight: 20
title:
text: Time-current curve
plotOptions:
series:
marker:
enabled: false
xAxis:
type: 'logarithmic'
min: 1
max: 100
endOnTick: true
tickInterval: 1
minorTickInterval: 0.1
gridLineWidth: 1
title:
text: "Current, kA"
yAxis:
type: 'logarithmic'
min: .02
max: 10
tickInterval: 1
minorTickInterval: 0.1
title:
text: "Time, sec"
legend:
align: right
verticalAlign: middle
layout: vertical
borderWidth: 0
currents = numeric.pow(10,numeric.linspace(0,2,100))
durations1 = _.map(currents, function(I) {return clothing / findcals(I) * t})
series1 = _.zip(currents,durations1)
if (graphextras == "Vary clothing") {
durations0 = _.map(currents, function(I) {return clothing / findcals(I) * t * 2})
series0 = _.zip(currents,durations0)
durations2 = _.map(currents, function(I) {return clothing / findcals(I) * t / 2})
series2 = _.zip(currents,durations2)
plotinfo.series = [{name: clothing*2 + " cals at " + Din + '"',
data: series0},
{name: clothing + " cals at " + Din + '"',
data: series1},
{name: clothing/2 + " cals at " + Din + '"',
data: series2}]
} else if (graphextras == "Vary working distance") {
Dorig = D
D = Dorig * 2
durations0 = _.map(currents, function(I) {return clothing / findcals(I) * t})
series0 = _.zip(currents,durations0)
D = Dorig / 2
durations2 = _.map(currents, function(I) {return clothing / findcals(I) * t})
series2 = _.zip(currents,durations2)
plotinfo.series = [{name: clothing + " cals at " + Din*2 + '"',
data: series0},
{name: clothing + " cals at " + Din + '"',
data: series1},
{name: clothing + " cals at " + Din/2 + '"',
data: series2}]
} else {
plotinfo.series = [{name: clothing + " cals at " + Din + '"',
data: series1}]
}
//plotinfo.series = [{data: series1}]
$("#plot").highcharts(plotinfo)
This app models the arc flash incident energy based on 1584-2002 - IEEE Guide for Performing Arc Flash Hazard Calculations. The results are based on regression models from a series of tests on equipment. Most of the tests were based on vertical busbars in boxes. IEEE 1584 states that these regression equations are applicable for the following ranges of variables:
Note that for voltages above 15 kV, this app continues to use the 1584 regression equations. This is based on analysis and tests reported in EPRI 1018693 [2009], EPRI 1022697 [2011], and Short [2011]. The system voltage has little to do with arc energies at medium voltage. The main impact is from arc lengths, and these are determined by equipment spacing. Equipment bus and enclosure spacings only moderately increase across distribution voltages. Tests mimicking the IEEE 1584 tests found that increasing bus spacings did not increase arc energies, and increased enclosure sizes decreased incident energies.
For equipment operated at 480 V and below, these calculations do not account for self-extinguishing arcs. Depending on electrode size, arrangements, spacings, voltage, and enclosure characteristics, faults may not sustain continuously. Arcs may burn out or expand and self extinguish. See section 14.8 and also the NESC [IEEE C2-2012] and Eblen and Short [2012] for more information, especially information on incident energies for utility equipment that are much lower than IEEE 1584 predictions.
Because the IEEE 1584 tests were based on vertical electrodes, the results may underpredict incident energies for equipment with horizontal bus bars. See this app for arc flash calculations for a padmounted switch with horizontal electrodes.
The IEEE 1584 working group is working on updating this model to account for a wider range of equipment conditions and to account for other bus geometries.
Eblen, M. L. and Short, T. A., “Arc-Flash Testing of Typical 480-V Utility Equipment,” IEEE Transactions on Industry Applications, vol. 48, no. 2, pp. 581-592, March-April 2012. Approved version
EPRI 1018693, Distribution Arc Flash: Analysis Methods and Arc Characteristics, Electric Power Research Institute, Palo Alto, CA, 2009.
EPRI 1022697, Distribution Arc Flash: Phase II Test Results and Analysis, Electric Power Research Institute, Palo Alto, CA, 2011.
IEEE 1584-2002, IEEE Guide for Performing Arc Flash Hazard Calculations.
IEEE C2-2012, National Electrical Safety Code.
Short, T. A., “Arc-Flash Analysis Approaches for Medium-Voltage Distribution,” IEEE Transactions on Industry Applications, vol. 47, no. 4, pp. 1902-1909, July-Aug. 2011. Approved version