Machining Roughness Lab

Can 10 kHz force and vibration signals predict surface roughness in Inconel-625 turning? 27 cuts, 1740 one-second windows, 122 features per window. Data: Mendeley Data 10.17632/ybyhxv4czd.3 (CC BY 4.0, Amrita Vishwa Vidyapeetham). Code: GitHub.

+0.94R² with a random window split (leaky)
-0.58R² with whole cuts held out
p = 0.92permutation test, sensor model vs shuffled labels
0.86R² ceiling set by repeat Ra readings

1. Plausibility audit first

Before any model: does the trial data behave like turning? Two checks fail and the log needs a question to the lab.

verdict check expect observed
warn implied cut length (duration x f x n) is constant same bar length on every pass, CV < 10 % 38-97 mm, CV 35.0 %; 6 cuts at about 2.0x: 0630_0.10_0.20, 0630_0.10_0.40, 0630_0.10_0.60, 0630_0.16_0.20, 0630_0.16_0.40, 0630_0.16_0.60
pass logged spindle speed matches the force spectrum spindle line within +-8 % of nominal deviation +3 to +5 %; long cuts 0630_0.10_0.20, 0630_0.10_0.40, 0630_0.10_0.60, 0630_0.16_0.20, 0630_0.16_0.40, 0630_0.16_0.60 also match, so feed or pass length differs from the log (ask the lab)
fail mean resultant force rises with chip cross-section f x d strong positive rank correlation (rho > 0.7) rho +0.45 (p 0.019), median force 37-743 N
fail force is stationary within one cut first vs last 10 % of windows within +-20 % median drift +38 %, 20/27 cuts beyond +-20 %
warn: speeds may be separate sessions (batch effect) vibration level ordered by spindle speed RMS acceleration rises with speed (same mount, same setup) 400 rpm 0.344 g, 630 rpm 0.090 g, 1000 rpm 0.173 g
pass roughness repeatability (3 readings per cut) CV of Ra readings below about 20 % median CV 9 %, worst 0400_0.16_0.60 35 %, 0400_0.05_0.60 29 %, 0630_0.10_0.20 27 %
warn single roughness readings without gross outliers robust z-score of every Rz reading < 5 1000_0.16_0.60 rep 2: Rz 8.306 um

Implied cut length per cut; six cuts at 630 rpm are twice as long

Mean resultant force over time for three cuts, rising within each cut

2. The split decides the headline

Neighbouring 1 s windows of one cut share the same roughness label and nearly the same signal. A random split puts them on both sides and reports R² 0.94. Holding out whole cuts gives -0.58.

R2 random split vs held-out cuts

3. Twelve models, cut-level validation

Leave-one-cut-out (27 folds) and leave-one-speed-out (3 folds). The bootstrap column is the 95 % interval of the RMSE difference to the mean baseline; every interval includes zero or is worse.

Ra RMSE per model with the measurement floor

Ra (µm)
model RMSE cut-out R² cut-out RMSE speed-out Δ RMSE vs mean, 95 % CI
mean per depth of cut 0.130 0.052 0.122 -0.032 .. +0.019
mean of training cuts 0.139 -0.078 0.136 -
kinematic f²/32r (calibrated) 0.146 -0.189 0.150 +0.002 .. +0.011
sensor top-5 (chosen in fold), ridge 0.147 -0.208 0.264 -0.006 .. +0.023
sensor + process windows, LightGBM 0.155 -0.344 0.186 -0.005 .. +0.040
process params, GP 0.156 -0.362 0.162 +0.005 .. +0.036
process params, quadratic ridge 0.160 -0.430 0.159 +0.000 .. +0.055
sensor features, ridge 0.165 -0.522 0.136 +0.000 .. +0.060
sensor windows, LightGBM 0.166 -0.541 0.185 +0.008 .. +0.048
sensor + process, ridge 0.170 -0.626 0.308 +0.005 .. +0.062
sensor features, PLS-2 0.188 -0.991 0.421 +0.027 .. +0.074
kinematic f²/32r (raw) 0.390 -7.551 0.390 +0.177 .. +0.320
Rz (µm)
model RMSE cut-out R² cut-out RMSE speed-out Δ RMSE vs mean, 95 % CI
mean per depth of cut 0.751 0.128 0.801 -0.222 .. +0.106
sensor + process windows, LightGBM 0.783 0.053 1.121 -0.173 .. +0.116
mean of training cuts 0.835 -0.078 0.827 -
kinematic f²/32r (calibrated) 0.871 -0.172 0.895 -0.009 .. +0.089
sensor windows, LightGBM 0.887 -0.215 1.290 -0.048 .. +0.178
sensor top-5 (chosen in fold), ridge 0.914 -0.291 1.045 +0.006 .. +0.172
process params, quadratic ridge 0.949 -0.391 0.951 -0.028 .. +0.306
sensor + process, ridge 0.961 -0.427 1.113 +0.009 .. +0.297
sensor features, ridge 0.978 -0.478 1.282 +0.016 .. +0.357
process params, GP 1.011 -0.579 0.971 +0.003 .. +0.411
sensor features, PLS-2 1.115 -0.922 2.705 +0.147 .. +0.438
kinematic f²/32r (raw) 2.743 -10.625 2.743 +1.640 .. +2.180

4. What to run next

A Gaussian process on speed, feed and depth finds only depth informative. Greedy max-variance selection proposes these validation cuts (re-run the six double-length cuts first). Repeat readings per cut shrink the floor as 1/√n.

order speed feed depth pred_Ra_um pred_sd_um
1 1000.000 0.160 0.300 0.488 0.131
2 1000.000 0.160 0.500 0.524 0.131
3 400.000 0.050 0.300 0.488 0.131
4 400.000 0.050 0.500 0.523 0.131
5 1000.000 0.050 0.300 0.488 0.131
6 1000.000 0.050 0.500 0.524 0.131
readings_per_cut sd_of_cut_mean_um
1 0.088
2 0.062
3 0.051
5 0.039
8 0.031

5. Trial plan to simulation input decks

python -m mrl.siminput examples/grinding_plan.csv validates each row (units, ranges, speed ratio) and writes one deck per trial with derived grinding quantities (q = vs/vw, equivalent chip thickness, Q'w, contact length). Rejected rows are listed with the reason. The deck format is a template, not any company's real format.

Limits

One public dataset, 27 cuts, one bar of Inconel-625, turning (not grinding). Roughness is measured at three random points per cut, so it cannot be tied to individual windows. A negative result here says this trial set is too small and too inconsistent for a sensor model, not that sensor-based roughness models cannot work.

Pavan Yadav Annappa - all numbers are produced by make all from the public data.