:root {
–primary-color: #2c3e50;
–secondary-color: #e67e22;
–accent-color: #3498db;
–light-bg: #ecf0f1;
–text-color: #333;
–border-radius: 8px;
}
body {
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
line-height: 1.6;
color: var(–text-color);
max-width: 1200px;
margin: 0 auto;
padding: 20px;
background-color: #f9f9f9;
}
.calculator-container {
background: #fff;
padding: 30px;
border-radius: var(–border-radius);
box-shadow: 0 4px 15px rgba(0,0,0,0.1);
margin-bottom: 40px;
border-top: 5px solid var(–secondary-color);
}
.calc-grid {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 30px;
}
@media (max-width: 768px) {
.calc-grid {
grid-template-columns: 1fr;
}
}
.input-group {
margin-bottom: 20px;
}
.input-group label {
display: block;
margin-bottom: 8px;
font-weight: 600;
color: var(–primary-color);
}
.input-group input, .input-group select {
width: 100%;
padding: 12px;
border: 1px solid #ddd;
border-radius: 4px;
font-size: 16px;
transition: border-color 0.3s;
}
.input-group input:focus {
border-color: var(–accent-color);
outline: none;
}
.calc-btn {
background-color: var(–primary-color);
color: white;
border: none;
padding: 15px 30px;
font-size: 18px;
border-radius: 4px;
cursor: pointer;
width: 100%;
transition: background-color 0.3s;
font-weight: bold;
}
.calc-btn:hover {
background-color: #1a252f;
}
.results-panel {
background-color: var(–light-bg);
padding: 25px;
border-radius: var(–border-radius);
display: flex;
flex-direction: column;
justify-content: center;
}
.result-item {
margin-bottom: 20px;
border-bottom: 1px solid #dcdcdc;
padding-bottom: 15px;
}
.result-item:last-child {
border-bottom: none;
margin-bottom: 0;
}
.result-label {
font-size: 14px;
color: #7f8c8d;
text-transform: uppercase;
letter-spacing: 1px;
}
.result-value {
font-size: 32px;
font-weight: 700;
color: var(–secondary-color);
}
.result-sub {
font-size: 14px;
color: #7f8c8d;
}
.content-section {
background: #fff;
padding: 30px;
border-radius: var(–border-radius);
box-shadow: 0 2px 10px rgba(0,0,0,0.05);
}
h2, h3 {
color: var(–primary-color);
}
.formula-box {
background-color: #f1f8ff;
border-left: 4px solid var(–accent-color);
padding: 15px;
font-family: 'Courier New', monospace;
margin: 20px 0;
}
.table-container {
overflow-x: auto;
}
table {
width: 100%;
border-collapse: collapse;
margin: 20px 0;
}
th, td {
padding: 12px;
text-align: left;
border-bottom: 1px solid #ddd;
}
th {
background-color: var(–primary-color);
color: white;
}
Understanding Generator Heat Rate
The Generator Heat Rate is a critical performance metric for power plants and standalone generators. It represents the thermal energy efficiency of a power generating unit. Specifically, it measures the amount of heat energy (typically derived from fuel) required to generate one kilowatt-hour (kWh) of electricity.
Unlike many other efficiency metrics where "higher is better," with Heat Rate, lower is better. A lower heat rate indicates that the generator consumes less fuel to produce the same amount of electricity, signifying higher efficiency.
Heat Rate Formula
The calculation essentially compares the thermal energy input to the electrical energy output. The standard formula used in this calculator is:
Heat Rate (Btu/kWh) = (Fuel Flow Rate × Fuel Heating Value) / Power Output (kW)
Where:
- Fuel Flow Rate: The volume or mass of fuel consumed per hour (e.g., Gallons/hour, scf/hour).
- Fuel Heating Value: The energy content contained within one unit of fuel (e.g., Btu/Gallon, Btu/scf).
- Power Output: The actual electrical load being generated in Kilowatts (kW).
Converting Heat Rate to Efficiency
Since electrical energy can also be expressed in thermal units (1 kWh = 3,412 Btu), we can convert Heat Rate directly into a percentage efficiency:
Thermal Efficiency (%) = 3,412 / Heat Rate (Btu/kWh) × 100
Typical Heating Values for Common Fuels
To use this calculator accurately, you need the heating value of your fuel. Below are approximate High Heating Values (HHV) for common generator fuels:
| Fuel Type |
Approximate Heating Value |
Unit |
| Diesel No. 2 |
138,000 |
Btu per Gallon |
| Natural Gas |
1,030 |
Btu per cubic foot (scf) |
| Propane (Liquid) |
91,500 |
Btu per Gallon |
| Gasoline |
124,000 |
Btu per Gallon |
| Coal (Bituminous) |
10,000 – 15,000 |
Btu per Pound |
Example Calculation
Imagine a 1,000 kW diesel generator set running at full load:
- Power Output: 1,000 kW
- Fuel Consumption: 72 Gallons per hour
- Fuel Energy (Diesel): 138,000 Btu/Gallon
Step 1: Calculate Total Heat Input
72 gal/hr × 138,000 Btu/gal = 9,936,000 Btu/hr
Step 2: Calculate Heat Rate
9,936,000 Btu/hr / 1,000 kW = 9,936 Btu/kWh
Step 3: Calculate Efficiency
(3,412 / 9,936) × 100 = 34.34%
Factors Affecting Heat Rate
Several factors can degrade a generator's heat rate over time:
- Load Factor: Generators are typically most efficient (lowest heat rate) near their rated full capacity. Running a generator at low loads often spikes the heat rate significantly.
- Ambient Conditions: High temperatures and altitude can reduce air density, affecting combustion efficiency.
- Maintenance: Clogged air filters, dirty fuel injectors, and worn piston rings reduce combustion efficiency, raising the heat rate.
function calculateHeatRate() {
// 1. Get DOM elements
var powerInput = document.getElementById('powerOutput');
var fuelInput = document.getElementById('fuelConsumption');
var heatValInput = document.getElementById('heatingValue');
var resHeatRate = document.getElementById('resHeatRate');
var resEfficiency = document.getElementById('resEfficiency');
var resTotalHeat = document.getElementById('resTotalHeat');
// 2. Parse values
var powerKW = parseFloat(powerInput.value);
var fuelRate = parseFloat(fuelInput.value);
var heatingVal = parseFloat(heatValInput.value);
// 3. Validation
if (isNaN(powerKW) || isNaN(fuelRate) || isNaN(heatingVal)) {
alert("Please fill in all fields with valid numbers.");
return;
}
if (powerKW <= 0) {
alert("Power output must be greater than zero.");
return;
}
if (fuelRate < 0 || heatingVal 0) {
efficiency = (3412 / heatRate) * 100;
}
// MMBtu conversion (Million British Thermal Units)
var mmBtu = totalBtuPerHour / 1000000;
// 5. Update DOM
// Format numbers with commas for readability
resHeatRate.innerText = heatRate.toLocaleString(undefined, {minimumFractionDigits: 0, maximumFractionDigits: 0});
resEfficiency.innerText = efficiency.toFixed(2);
resTotalHeat.innerText = mmBtu.toFixed(3);
}