Grinding Feed Rate Calculation

Grinding Feed Rate Calculator (Cylindrical Traverse)

This calculator determines the traverse feed rate for cylindrical grinding operations. The traverse feed rate is the speed at which the grinding wheel moves axially along the workpiece. Optimizing this rate is crucial for achieving the desired surface finish and maximizing material removal rates without causing thermal damage.

Enter Grinding Parameters

Rotational speed of the workpiece.
The active width of the grinding wheel face.
Percentage of wheel width overlapping per workpiece revolution (e.g., 20-40% for finish, 60-80% for roughing).

Understanding Grinding Traverse Feed

In cylindrical traverse grinding, the feed rate is not just about how fast the table moves; it relates directly to the rotation of the workpiece and the width of the grinding wheel. The goal is to ensure the entire surface of the workpiece is ground evenly by overlapping the wheel's path with each revolution of the part.

Key Factors Influencing Feed Rate:

  • Workpiece RPM ($n_w$): The rotational speed of the part being ground. A higher RPM generally allows for a faster traverse speed to maintain the same overlap per revolution.
  • Wheel Width ($B_s$): The physical width of the grinding wheel face. Wider wheels can cover more ground per revolution, allowing for faster traverse speeds.
  • Overlap Ratio: This is the fraction of the wheel width that advances for every single revolution of the workpiece.
    • Roughing: Typically uses a higher overlap (e.g., 60% to 80%) to maximize material removal, resulting in a coarser finish.
    • Finishing: Uses a lower overlap (e.g., 20% to 40%) to ensure a smoother surface finish and reduce the risk of feed lines.

The Formulas

The calculator above uses two primary steps to determine the traverse feed rate based on metric inputs:

1. Calculate Traverse Feed per Revolution ($f_{rev}$):
This determines how many millimeters the wheel travels axially during one complete rotation of the workpiece.

$f_{rev} (mm/rev) = Wheel Width (mm) \times \frac{Overlap \%}{100}$

2. Calculate Traverse Feed Rate in Time ($v_{fa}$):
This converts the feed per revolution into a speed over time (millimeters per minute), which is typically how machine tables are usually programmed.

$v_{fa} (mm/min) = f_{rev} \times Workpiece RPM$

Calculation Example

Let's assume you are setting up a finishing pass for a steel shaft.

  • Workpiece Speed: 200 RPM
  • Grinding Wheel Width: 40 mm
  • Desired Overlap for Finish: 25%

First, calculate the feed distance per revolution:

$f_{rev} = 40 \text{ mm} \times (25 / 100) = 10 \text{ mm/rev}$

Next, calculate the required machine traverse speed:

$v_{fa} = 10 \text{ mm/rev} \times 200 \text{ RPM} = \textbf{2000 mm/min}$

To achieve the desired finish, you would set your machine's table traverse speed to 2000 mm/min.

.grinding-calculator-container { max-width: 800px; margin: 20px auto; padding: 20px; font-family: Arial, sans-serif; line-height: 1.6; color: #333; } .grinding-calculator-container h2, .grinding-calculator-container h3 { color: #2c3e50; } .calculator-box { background-color: #f4f7f6; padding: 25px; border-radius: 8px; border: 1px solid #e0e0e0; margin-bottom: 30px; box-shadow: 0 2px 5px rgba(0,0,0,0.05); } .input-group { margin-bottom: 15px; } .input-group label { display: block; margin-bottom: 5px; font-weight: bold; color: #555; } .input-group input { width: 100%; padding: 10px; border: 1px solid #ccc; border-radius: 4px; box-sizing: border-box; /* ensures padding doesn't affect width */ } .input-group small { display: block; margin-top: 5px; color: #777; font-size: 0.85em; } .calculator-box button { width: 100%; padding: 12px; background-color: #0073aa; color: white; border: none; border-radius: 4px; font-size: 16px; font-weight: bold; cursor: pointer; transition: background-color 0.3s; } .calculator-box button:hover { background-color: #005177; } .result-box { margin-top: 20px; padding: 15px; background-color: #eef; border-radius: 4px; border-left: 5px solid #0073aa; display: none; /* Hidden by default until calculation */ } .result-box h3 { margin-top: 0; color: #0073aa; } .result-box p { margin: 10px 0; font-size: 1.1em; } function calculateGrindingFeed() { // 1. Get input values using exact IDs var rpmInput = document.getElementById('workRPM').value; var widthInput = document.getElementById('wheelWidth').value; var overlapInput = document.getElementById('overlapPercent').value; // 2. Validate inputs: Check for empty strings or non-numeric values if (rpmInput === "" || isNaN(rpmInput) || widthInput === "" || isNaN(widthInput) || overlapInput === "" || isNaN(overlapInput)) { var resultDiv = document.getElementById('grindingResult'); resultDiv.style.display = "block"; resultDiv.style.borderLeftColor = "red"; resultDiv.style.backgroundColor = "#ffecec"; resultDiv.innerHTML = "Error: Please enter valid numeric values for RPM, Wheel Width, and Overlap Percentage."; return; // Stop calculation } // 3. Convert inputs to numbers var rpm = parseFloat(rpmInput); var width = parseFloat(widthInput); var overlapPercent = parseFloat(overlapInput); // Handle negative or nonsensical zero inputs if (rpm <= 0 || width <= 0 || overlapPercent < 0) { var resultDiv = document.getElementById('grindingResult'); resultDiv.style.display = "block"; resultDiv.style.borderLeftColor = "red"; resultDiv.style.backgroundColor = "#ffecec"; resultDiv.innerHTML = "Error: RPM and Width must be greater than zero. Overlap cannot be negative."; return; } // 4. Perform Calculations // Calculate Feed per Revolution (mm/rev) var feedPerRev = width * (overlapPercent / 100); // Calculate Traverse Feed Rate (mm/min) var feedRateMmMin = feedPerRev * rpm; // 5. Display Results var resultDiv = document.getElementById('grindingResult'); resultDiv.style.display = "block"; // Reset style in case of previous error resultDiv.style.borderLeftColor = "#0073aa"; resultDiv.style.backgroundColor = "#eef"; resultDiv.innerHTML = "

Calculation Results:

" + "Traverse Feed per Revolution: " + feedPerRev.toFixed(3) + " mm/rev" + "Required Table Feed Rate: " + feedRateMmMin.toFixed(1) + " mm/min" + "
" + "Parameters used: " + width + "mm wheel width with " + overlapPercent + "% overlap at " + rpm + " RPM."; }

Leave a Comment