Loss in Weight Feeder Calculator | Gravimetric Feeding Analysis
:root {
–primary-color: #004a99;
–secondary-color: #003366;
–accent-color: #28a745;
–bg-color: #f8f9fa;
–text-color: #333;
–border-color: #ddd;
–white: #ffffff;
}
* {
box-sizing: border-box;
margin: 0;
padding: 0;
}
body {
font-family: 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
line-height: 1.6;
color: var(–text-color);
background-color: var(–bg-color);
}
.container {
max-width: 960px;
margin: 0 auto;
padding: 20px;
}
/* Header */
header {
text-align: center;
margin-bottom: 40px;
padding: 20px 0;
border-bottom: 2px solid var(–primary-color);
}
h1 {
color: var(–primary-color);
font-size: 2.5rem;
margin-bottom: 10px;
}
.subtitle {
color: #666;
font-size: 1.1rem;
}
/* Calculator Section */
.calc-wrapper {
background: var(–white);
padding: 30px;
border-radius: 8px;
box-shadow: 0 4px 15px rgba(0,0,0,0.1);
margin-bottom: 50px;
}
.input-section {
margin-bottom: 30px;
}
.input-group {
margin-bottom: 20px;
}
label {
display: block;
font-weight: 600;
margin-bottom: 8px;
color: var(–secondary-color);
}
input, select {
width: 100%;
padding: 12px;
border: 1px solid var(–border-color);
border-radius: 4px;
font-size: 16px;
transition: border-color 0.3s;
}
input:focus {
outline: none;
border-color: var(–primary-color);
box-shadow: 0 0 0 3px rgba(0,74,153,0.1);
}
.helper-text {
font-size: 0.85rem;
color: #666;
margin-top: 5px;
}
.error-msg {
color: #dc3545;
font-size: 0.85rem;
margin-top: 5px;
display: none;
}
.btn-group {
display: flex;
gap: 15px;
margin-top: 25px;
}
button {
padding: 12px 24px;
border: none;
border-radius: 4px;
font-size: 16px;
font-weight: 600;
cursor: pointer;
transition: background 0.3s;
}
.btn-reset {
background-color: #6c757d;
color: white;
}
.btn-copy {
background-color: var(–primary-color);
color: white;
}
.btn-reset:hover { background-color: #5a6268; }
.btn-copy:hover { background-color: var(–secondary-color); }
/* Results Section */
.results-section {
background-color: #f1f8ff;
padding: 25px;
border-radius: 6px;
border-left: 5px solid var(–primary-color);
margin-top: 30px;
}
.main-result {
text-align: center;
margin-bottom: 25px;
padding-bottom: 20px;
border-bottom: 1px solid #d1e3f1;
}
.main-result h3 {
color: var(–secondary-color);
font-size: 1.2rem;
margin-bottom: 10px;
}
.result-value {
font-size: 2.5rem;
font-weight: 700;
color: var(–primary-color);
}
.result-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
gap: 20px;
}
.result-item {
background: white;
padding: 15px;
border-radius: 4px;
box-shadow: 0 2px 4px rgba(0,0,0,0.05);
}
.result-label {
font-size: 0.9rem;
color: #666;
margin-bottom: 5px;
}
.result-number {
font-size: 1.25rem;
font-weight: 600;
color: var(–text-color);
}
/* Chart & Table */
.chart-container {
margin-top: 40px;
background: white;
padding: 20px;
border: 1px solid var(–border-color);
border-radius: 4px;
height: 350px;
position: relative;
}
canvas {
width: 100%;
height: 100%;
}
.table-container {
margin-top: 40px;
overflow-x: auto;
}
table {
width: 100%;
border-collapse: collapse;
margin-top: 10px;
background: white;
}
th, td {
padding: 12px;
text-align: left;
border-bottom: 1px solid var(–border-color);
}
th {
background-color: var(–primary-color);
color: white;
font-weight: 600;
}
tr:nth-child(even) {
background-color: #f8f9fa;
}
/* Article Section */
.article-content {
background: white;
padding: 40px;
border-radius: 8px;
box-shadow: 0 2px 10px rgba(0,0,0,0.05);
}
.article-content h2 {
color: var(–primary-color);
margin-top: 40px;
margin-bottom: 20px;
font-size: 1.8rem;
border-bottom: 1px solid #eee;
padding-bottom: 10px;
}
.article-content h3 {
color: var(–secondary-color);
margin-top: 25px;
margin-bottom: 15px;
font-size: 1.4rem;
}
.article-content p {
margin-bottom: 15px;
color: #444;
}
.article-content ul, .article-content ol {
margin-bottom: 20px;
padding-left: 25px;
}
.article-content li {
margin-bottom: 8px;
}
.data-table {
width: 100%;
margin: 20px 0;
border: 1px solid var(–border-color);
}
.data-table th {
background-color: #e9ecef;
color: var(–text-color);
}
.faq-item {
margin-bottom: 20px;
background: #f8f9fa;
padding: 20px;
border-radius: 6px;
}
.faq-question {
font-weight: 700;
color: var(–primary-color);
margin-bottom: 10px;
display: block;
}
.internal-links {
margin-top: 40px;
padding: 20px;
background: #eef2f7;
border-radius: 6px;
}
.internal-links ul {
list-style: none;
padding: 0;
}
.internal-links li {
margin-bottom: 10px;
}
.internal-links a {
color: var(–primary-color);
text-decoration: none;
font-weight: 600;
}
.internal-links a:hover {
text-decoration: underline;
}
footer {
text-align: center;
padding: 40px 0;
color: #666;
font-size: 0.9rem;
margin-top: 40px;
border-top: 1px solid var(–border-color);
}
@media (max-width: 600px) {
h1 { font-size: 2rem; }
.result-grid { grid-template-columns: 1fr; }
.article-content { padding: 20px; }
}
Time Between Refills
0 min
Operational time before the hopper needs refilling.
Figure 1: Simulated Weight vs. Time (Gravimetric Cycle)
Refill Cycle Schedule (Next 5 Cycles)
| Cycle # |
Start Time (min) |
Refill Trigger Time (min) |
Weight Consumed (kg) |
Status |
What are Loss in Weight Feeder Calculations?
Loss in weight feeder calculations are the mathematical foundation of gravimetric feeding systems used in industrial processing. Unlike volumetric feeders that dispense material based on speed and volume, a loss-in-weight (LIW) feeder continuously weighs the material in its hopper and adjusts the discharge speed to maintain a precise mass flow rate (e.g., kg/hr or lbs/hr).
These calculations are critical for industries such as plastics compounding, food processing, pharmaceuticals, and chemical manufacturing. Accurate calculations ensure consistent product quality, reduce material waste, and prevent process downtime caused by improper refill timing or capacity planning.
Engineers and operators use these calculations to determine the gravimetric feed rate, the refill frequency, and the usable capacity of the system. Understanding the relationship between the target feed rate and the hopper's weight loss over time is essential for tuning the PID controllers that manage the feeder's motor speed.
Loss in Weight Feeder Formula and Explanation
The core principle of a loss-in-weight system is measuring the negative rate of change of weight ($\Delta W$) over a specific time interval ($\Delta t$). The fundamental formula for the actual feed rate is:
Feed Rate (F) = (Wstart – Wend) / (tend – tstart)
Where:
- Wstart = Weight of material at the beginning of the sample.
- Wend = Weight of material at the end of the sample.
- telapsed = Time duration of the sample.
Key Variables Table
| Variable |
Meaning |
Common Unit |
Typical Range |
| Target Rate |
Desired mass flow output |
kg/hr or lbs/hr |
0.5 – 5000+ |
| Usable Capacity |
Weight available between refill limits |
kg or lbs |
10% – 90% of Hopper |
| Bulk Density |
Mass per unit volume of material |
kg/m³ or lbs/ft³ |
200 – 1500 |
| Refill Interval |
Time between refill cycles |
Minutes |
5 – 60 mins |
Practical Examples of Feeder Calculations
Example 1: Plastic Extrusion Line
A plastics manufacturer needs to feed polyethylene pellets into an extruder at a rate of 120 kg/hr. They have a hopper with a total capacity of 50 kg. To maintain accuracy, they set the refill trigger at 20% and stop refilling at 90%.
- Usable Capacity: 50 kg × (0.90 – 0.20) = 35 kg.
- Time Between Refills: 35 kg / 120 kg/hr = 0.291 hours.
- In Minutes: 0.291 × 60 = 17.5 minutes.
Interpretation: The operator must ensure the central vacuum system can refill the hopper every 17.5 minutes. If the refill system takes longer than the "gravimetric hold" period allows, the feeder may run empty.
Example 2: Micro-Ingredient Dosing
A bakery line doses a vitamin premix at 2.5 kg/hr. The hopper is small, holding only 5 kg.
- Usable Capacity: 5 kg × 0.70 (70% swing) = 3.5 kg.
- Time Between Refills: 3.5 kg / 2.5 kg/hr = 1.4 hours (84 minutes).
Interpretation: This low feed rate allows for a long time between refills. However, with such a slow rate, the resolution of the weigh scale becomes critical. The loss in weight feeder calculations must account for scale sensitivity to detect small weight changes over short intervals.
How to Use This Loss in Weight Feeder Calculator
- Enter Target Feed Rate: Input the required mass flow for your process (e.g., 50 kg/hr).
- Define Hopper Capacity: Enter the maximum weight rating of your feeder's hopper.
- Set Refill Limits:
- Refill Stop Level: The high point where refilling stops (usually 80-90%).
- Refill Trigger Level: The low point that signals a refill request (usually 20-30%).
- Input Density (Optional): Enter material bulk density to see volumetric data.
- Analyze Results:
- Check Time Between Refills to ensure your upstream material handling system can keep up.
- Review the Refill Batch Size to size your refill valves or vacuum receivers correctly.
Key Factors That Affect Loss in Weight Results
Several physical and mechanical factors influence the accuracy of loss in weight feeder calculations and performance:
- Material Bulk Density: Variations in density (e.g., fluffy powder vs. pellets) change the volume required to meet the target weight. If density drops, the screw speed must increase.
- Refill Phase Disturbance: During refill, the feeder cannot weigh the material loss (since weight is being added). It enters "volumetric mode" based on recent history. Long refill times reduce overall accuracy.
- Vibration and Noise: External vibrations can cause the load cells to read incorrectly. Filtering algorithms in the controller are used to smooth the weight signal.
- Feeder Screw Geometry: The design of the screw (single, twin, spiral) affects the consistency of the flow. Inconsistent flow leads to noisy weight data.
- Venting: Proper venting is crucial. If air is trapped during refill, it can aerate the material, causing it to flush through the screw like a liquid (flooding), destroying accuracy.
- Minimum Throughput: Running a large feeder at a very low rate (e.g., <5% of capacity) often leads to poor results because the weight loss per second is too small for the load cell to resolve accurately.
Frequently Asked Questions (FAQ)
What is the difference between volumetric and gravimetric feeding?
Volumetric feeding relies on the speed of the screw (RPM) to dispense material, assuming density is constant. Gravimetric feeding (Loss-in-Weight) measures the actual weight change and adjusts the speed dynamically to maintain a set mass flow, compensating for density changes.
Why is the "Refill Time" important?
During refill, the feeder operates blindly (volumetrically). The shorter the refill time, the sooner the feeder returns to gravimetric control, ensuring higher overall accuracy.
What is a typical turndown ratio for a LIW feeder?
Most manufacturers specify a 10:1 or 20:1 turndown ratio. This means a feeder designed for 100 kg/hr can typically run accurately down to 5-10 kg/hr.
How do I calculate the required refill rate?
The refill device (e.g., vacuum loader) must supply material significantly faster than the feeder consumes it. A common rule of thumb is that the refill rate should be at least 10 times the maximum feed rate.
Can I use this calculator for liquid loss-in-weight?
Yes, the math is identical. Simply treat the "Hopper Capacity" as the tank capacity and ensure units (kg/hr) are consistent.
What happens if the bulk density changes?
In a gravimetric system, the controller detects that weight is not leaving fast enough (or too fast) and adjusts the screw speed automatically. This calculator shows how density affects the volumetric rate (L/hr).
What is "Gravimetric Mode" vs "Volumetric Mode"?
Gravimetric Mode uses live weight data to control speed. Volumetric Mode uses a fixed speed (usually the average of the last few minutes) during disturbances like refilling.
Why does my feeder read negative weight?
This usually indicates a calibration error, a mechanical bind on the load cell, or upward forces (like air pressure) acting on the hopper.
Related Tools and Resources
// Initialize calculator on load
window.onload = function() {
calculateFeeder();
};
function calculateFeeder() {
// 1. Get Inputs
var targetRate = parseFloat(document.getElementById('targetRate').value);
var capacity = parseFloat(document.getElementById('capacity') ? document.getElementById('capacity').value : document.getElementById('hopperCapacity').value);
var highLevel = parseFloat(document.getElementById('highLevel').value);
var lowLevel = parseFloat(document.getElementById('lowLevel').value);
var bulkDensity = parseFloat(document.getElementById('bulkDensity').value);
// 2. Validation
var isValid = true;
// Reset errors
document.getElementById('err-targetRate').style.display = 'none';
document.getElementById('err-hopperCapacity').style.display = 'none';
document.getElementById('err-highLevel').style.display = 'none';
document.getElementById('err-lowLevel').style.display = 'none';
if (isNaN(targetRate) || targetRate <= 0) {
document.getElementById('err-targetRate').style.display = 'block';
isValid = false;
}
if (isNaN(capacity) || capacity 100 || highLevel = highLevel || lowLevel 0) {
volRate = (targetRate / bulkDensity) * 1000;
}
// 4. Update UI
document.getElementById('res-timeBetween').innerText = formatNumber(timeMinutes, 1) + " min";
document.getElementById('res-batchSize').innerText = formatNumber(usableWeight, 2) + " kg";
document.getElementById('res-refillsPerHour').innerText = formatNumber(refillsPerHour, 1);
document.getElementById('res-volRate').innerText = formatNumber(volRate, 0) + " L/hr";
document.getElementById('res-usableCap').innerText = formatNumber(usableWeight, 2) + " kg";
// 5. Update Chart & Table
updateChart(capacity, highLevel, lowLevel, timeMinutes);
updateTable(timeMinutes, usableWeight);
}
function formatNumber(num, decimals) {
return num.toLocaleString('en-US', { minimumFractionDigits: decimals, maximumFractionDigits: decimals });
}
function resetCalculator() {
document.getElementById('targetRate').value = 50;
document.getElementById('hopperCapacity').value = 100;
document.getElementById('highLevel').value = 90;
document.getElementById('lowLevel').value = 20;
document.getElementById('bulkDensity').value = 600;
calculateFeeder();
}
function copyResults() {
var time = document.getElementById('res-timeBetween').innerText;
var batch = document.getElementById('res-batchSize').innerText;
var rate = document.getElementById('targetRate').value;
var text = "Loss in Weight Feeder Calculation Results:\n";
text += "Target Feed Rate: " + rate + " kg/hr\n";
text += "Time Between Refills: " + time + "\n";
text += "Refill Batch Size: " + batch + "\n";
var tempInput = document.createElement("textarea");
tempInput.value = text;
document.body.appendChild(tempInput);
tempInput.select();
document.execCommand("copy");
document.body.removeChild(tempInput);
var btn = document.querySelector('.btn-copy');
var originalText = btn.innerText;
btn.innerText = "Copied!";
setTimeout(function(){ btn.innerText = originalText; }, 2000);
}
function updateTable(cycleTime, batchSize) {
var tbody = document.querySelector('#cycleTable tbody');
tbody.innerHTML = "";
var currentTime = 0;
for (var i = 1; i <= 5; i++) {
var row = "
";
row += "| " + i + " | ";
row += "" + formatNumber(currentTime, 1) + " | ";
currentTime += cycleTime;
row += "" + formatNumber(currentTime, 1) + " | ";
row += "" + formatNumber(batchSize, 2) + " | ";
row += "Active | ";
row += "
";
tbody.innerHTML += row;
}
}
function updateChart(capacity, highPct, lowPct, cycleTime) {
var canvas = document.getElementById('feederChart');
var ctx = canvas.getContext('2d');
// Handle high DPI
var dpr = window.devicePixelRatio || 1;
var rect = canvas.getBoundingClientRect();
canvas.width = rect.width * dpr;
canvas.height = rect.height * dpr;
ctx.scale(dpr, dpr);
var width = rect.width;
var height = rect.height;
// Clear
ctx.clearRect(0, 0, width, height);
// Margins
var padding = { top: 20, right: 20, bottom: 40, left: 50 };
var chartW = width – padding.left – padding.right;
var chartH = height – padding.top – padding.bottom;
// Y Axis Scale (0 to Capacity)
var maxY = capacity * 1.1; // 10% headroom
// X Axis Scale (Show 2.5 cycles)
var totalTime = cycleTime * 2.5;
// Draw Axes
ctx.beginPath();
ctx.strokeStyle = '#ccc';
ctx.lineWidth = 1;
// Y Axis
ctx.moveTo(padding.left, padding.top);
ctx.lineTo(padding.left, height – padding.bottom);
// X Axis
ctx.lineTo(width – padding.right, height – padding.bottom);
ctx.stroke();
// Draw Grid & Labels
ctx.fillStyle = '#666′;
ctx.font = '10px Arial';
ctx.textAlign = 'right';
// Y Labels
for (var i = 0; i <= 5; i++) {
var val = (maxY / 5) * i;
var y = (height – padding.bottom) – (val / maxY) * chartH;
ctx.fillText(Math.round(val) + ' kg', padding.left – 5, y + 3);
// Grid line
ctx.beginPath();
ctx.strokeStyle = '#eee';
ctx.moveTo(padding.left, y);
ctx.lineTo(width – padding.right, y);
ctx.stroke();
}
// X Labels
ctx.textAlign = 'center';
for (var i = 0; i <= 5; i++) {
var t = (totalTime / 5) * i;
var x = padding.left + (t / totalTime) * chartW;
ctx.fillText(Math.round(t) + 'm', x, height – padding.bottom + 15);
}
// Draw Data Line (Sawtooth)
ctx.beginPath();
ctx.strokeStyle = '#004a99';
ctx.lineWidth = 2;
var highVal = capacity * (highPct / 100);
var lowVal = capacity * (lowPct / 100);
// Start at high
var startY = (height – padding.bottom) – (highVal / maxY) * chartH;
ctx.moveTo(padding.left, startY);
var currentTime = 0;
var currentX = padding.left;
// Simulate cycles
while (currentTime width – padding.right) {
// Clip to end
var slope = (lowY – startY) / (nextX – currentX); // This logic is simplified for clipping
// Just draw to edge for simplicity in this view
ctx.lineTo(width – padding.right, lowY); // Approx
break;
}
ctx.lineTo(nextX, lowY);
// Refill spike (instant for simulation, or small time step)
// Let's assume refill takes 1/10th of cycle time
var refillTime = cycleTime * 0.1;
currentTime += refillTime;
var refillX = padding.left + (currentTime / totalTime) * chartW;
if (refillX > width – padding.right) break;
ctx.lineTo(refillX, startY); // Back to high
currentX = refillX;
}
ctx.stroke();
// Legend
ctx.fillStyle = '#004a99';
ctx.fillRect(width – 100, 20, 10, 10);
ctx.fillStyle = '#333';
ctx.textAlign = 'left';
ctx.fillText("Hopper Weight", width – 85, 29);
}