Derating Calculator
.derating-container {
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
max-width: 800px;
margin: 20px auto;
padding: 25px;
border: 1px solid #ddd;
border-radius: 12px;
background-color: #f9f9f9;
color: #333;
box-shadow: 0 4px 6px rgba(0,0,0,0.05);
}
.derating-container h2 {
color: #004a99;
margin-top: 0;
text-align: center;
}
.input-group {
margin-bottom: 15px;
}
.input-group label {
display: block;
margin-bottom: 5px;
font-weight: 600;
font-size: 14px;
}
.input-group input, .input-group select {
width: 100%;
padding: 10px;
border: 1px solid #ccc;
border-radius: 6px;
box-sizing: border-box;
}
.calc-btn {
width: 100%;
padding: 15px;
background-color: #004a99;
color: white;
border: none;
border-radius: 6px;
font-size: 16px;
font-weight: bold;
cursor: pointer;
transition: background 0.3s;
}
.calc-btn:hover {
background-color: #003366;
}
.results-box {
margin-top: 20px;
padding: 20px;
background-color: #eef6ff;
border-left: 5px solid #004a99;
border-radius: 4px;
}
.results-box h3 {
margin-top: 0;
color: #004a99;
}
.result-item {
display: flex;
justify-content: space-between;
margin-bottom: 10px;
font-size: 16px;
}
.result-value {
font-weight: bold;
color: #d32f2f;
}
.article-section {
margin-top: 30px;
line-height: 1.6;
}
.article-section h3 {
color: #004a99;
border-bottom: 1px solid #eee;
padding-bottom: 10px;
}
function calculateDerating() {
// Get Input Values
var baseRating = parseFloat(document.getElementById("baseRating").value);
var ambientTemp = parseFloat(document.getElementById("ambientTemp").value);
var standardTemp = parseFloat(document.getElementById("standardTemp").value);
var altitude = parseFloat(document.getElementById("altitude").value);
var standardAlt = parseFloat(document.getElementById("standardAlt").value);
// Validate
if (isNaN(baseRating) || isNaN(ambientTemp) || isNaN(standardTemp) || isNaN(altitude) || isNaN(standardAlt)) {
alert("Please enter valid numeric values.");
return;
}
// Temperature Factor Logic
// Assumption: 1.5% derating per degree above standard
var tFactor = 1.0;
if (ambientTemp > standardTemp) {
var diffT = ambientTemp – standardTemp;
tFactor = 1 – (diffT * 0.015);
}
if (tFactor standardAlt) {
var diffA = altitude – standardAlt;
aFactor = 1 – ((diffA / 100) * 0.01);
}
if (aFactor < 0) aFactor = 0;
// Combine Factors (Multiplicative)
var combinedFactor = tFactor * aFactor;
var finalRating = baseRating * combinedFactor;
var reduction = ((baseRating – finalRating) / baseRating) * 100;
// Display Results
document.getElementById("results").style.display = "block";
document.getElementById("deratedCapacity").innerHTML = finalRating.toFixed(2);
document.getElementById("reductionPercent").innerHTML = reduction.toFixed(2) + "%";
document.getElementById("tempFactor").innerHTML = tFactor.toFixed(3);
document.getElementById("altFactor").innerHTML = aFactor.toFixed(3);
}