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.
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 |
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.
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.
| 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 |
| 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.