Machine state estimation and process supervision
Purpose
Combine sensor data into a coherent machine state
Supervise the machining process based on estimated state
Prevent tolerance loss, chatter, and spindle stall
Never perform motion planning or trajectory generation
Machine state estimation
State estimation performed in ECU
Inputs:
vibration:
piezo surface microphones
accelerometers
quasi-static tilt:
low-pass-filtered accelerometer data
structural load:
X-carriage strain gauge
spindle load:
motor current
Sensor fusion performed with explicit time-scale separation:
fast signals:
vibration
chatter indicators
slow signals:
tilt
strain
motor current envelope
Machine state classification
ECU classifies the current operating state as:
normal operation
static overload / excessive compliance
dynamic instability (chatter)
incipient spindle stall
Process supervision actions
ECU supervises process only
ECU does not:
control axis motion
modify trajectories
override safety systems
Actions requested via:
Duet macros
GPIO signals for low latency
Supervision logic
Static overload / excessive compliance:
detected by increased tilt and/or strain
action: reduce feed rate
Dynamic instability (chatter):
detected by elevated vibration energy
action: adaptive spindle speed adjustment
Incipient stall:
detected by rapid motor current increase
action: immediate feed reduction
State transitions and hysteresis
State transitions implemented using Schmitt-trigger logic
Upper threshold:
spindle motor current ≥ 100 % rated
transition to reduced-feed state
Lower threshold:
spindle motor current ≤ configurable value (e.g. 80 %)
maintained for configurable time
transition back to normal-feed state
Hysteresis prevents oscillation and hunting
Configuration and scope
All thresholds and timing parameters:
configurable via Raspberry Pi plugin
logged for analysis
Supervisory logic:
non-safety-critical
fully disable-able
degrades gracefully if unavailable
Safety functions remain hardware-only and independent