Configuring SINAMICS Notch Filters for 840D sl C-Axis Whistling
When a C-axis on a SINUMERIK 840D sl grinding machine starts to whistle after a heavier workpiece is mounted, the symptom is almost always mechanical resonance that has been re-excited by the speed-control loop. The motor itself is not failing; the closed-loop gain is high enough at the new workpiece mass to drive a structural mode into sustained oscillation, and that oscillation shows up acoustically as a high-pitched tone. The correct response is not to back off the gain to the point where the axis loses productivity, but to add a digital filter in the current or speed setpoint path that suppresses the offending frequency.
This article covers the parameter set used to add and tune those filters on a SINAMICS S120 drive controlled from a SINUMERIK 840D sl NC, how to identify the offending frequency when the drive software is older than the auto-tuning revisions, and how to verify the result. The same approach is valid on any SERVO drive object (DO) on a SINAMICS S120, not only the C-axis of a grinder.
1. Problem Description and Symptoms
Symptom pattern seen on the C-axis of the grinder in question:
- A continuous, narrow-band audible whistle, typically 300 Hz to 1500 Hz, that appears as soon as the axis moves and stops within a fraction of a second when the axis stops moving.
- The whistle is louder and starts at a lower speed when a heavier workpiece is fitted, which is the indicator that the resonance is on the mechanical side (workpiece-tool-spindle system), not the motor bearings.
- Position following error and the position-controller output remain stable; the oscillation is in the speed loop, not the position loop.
- The whistle is independent of feedrate, so it is not a spindle-speed artifact (e.g. tooth mesh on a gearbox). It tracks the C-axis motion.
Acoustic emission at a single fixed frequency is the signature of an undamped or under-damped second-order system being excited by a periodic input. In a closed-loop speed controller, the periodic input is the torque-producing current ripple at the speed-controller bandwidth corner. When the speed-controller proportional gain p1460 is increased to handle the heavier load, the open-loop gain at the mechanical resonance frequency crosses 0 dB with insufficient phase margin, and the loop oscillates at that mode.
2. Root Cause Analysis
Three things change when the workpiece mass goes up on a C-axis:
- Total inertia at the motor shaft increases. The speed controller was originally tuned for a much lower J_total. The mechanical time constant of the axis, Tau_mech = J_total / dM, grows. The integrator time p1462 is sized to the original Tau_mech, so a higher inertia gives more phase lag at the new crossover, which usually forces a lower p1460 if left unchanged.
- Resonant frequency drops. A heavier tool/workpiece on the same mechanical structure lowers the natural frequency of any compliance in the drivetrain (coupling, belt, encoder mounting, workpiece-fixture interface). The mode that was previously well above the speed-loop bandwidth moves into the bandwidth, and the controller excites it.
- Loop gain needs to increase. For the same acceleration, torque demand grows, which generally requires a higher p1460. The combination of a higher proportional gain and a resonance that is now inside the bandwidth is what produces the whistle.
Conclusion: the symptom is a speed-loop / structural-mode interaction. The fix is to (a) re-tune the speed loop for the new inertia, and (b) add a notch filter that removes the offending mode from the loop's plant response before the proportional gain acts on it.
3. SINAMICS Speed Control Loop Architecture
The SERVO drive object on SINAMICS S120 has a cascaded structure: position controller (in the NC) feeds the speed setpoint, the speed controller (p1460, p1462) feeds the torque setpoint, and the current controllers close the inner loop. The current setpoint can be filtered by up to four current-setpoint filters before it reaches the current controllers. Those filters are the primary tool for suppressing mechanical resonance.
| Stage | Source parameter | Filter parameters | Effect |
|---|---|---|---|
| Speed setpoint from NC | r0062 (after ramp-function generator) | p1130, p1131 (PT2 low-pass on setpoint) | Smooths setpoint; reduces excitation of high-frequency modes |
| Speed actual value | r0061 | p1413 / p1414 (low-pass), p1441 (smoothing) | Removes encoder noise that the controller would otherwise amplify |
| Speed controller | p1460 (Kp), p1462 (Tn) | - | PI controller; sets closed-loop bandwidth |
| Torque setpoint | r1503 (output of speed controller) | p1656 (master enable), p1670...p1686 (current-setpoint filters 1...4) | Suppresses resonance; can be configured as band-stop, low-pass, or general 2nd order |
| Current controllers | p1715 / p1717 (Kp), p1716 / p1718 (Tn) | - | Closed by current controller autotuning (p1910); not user-tunable in normal service |
For the whistling symptom, the filters that matter are p1670...p1686 (current-setpoint filters 1...4). They are digital biquad stages inserted in the torque path. The first filter is enabled by default after current-controller autotuning; the remaining three are off until configured.
4. Key Parameters for the C-Axis Speed Controller
Before adding a filter, document the existing controller state. The drive object for the C-axis is the SERVO DO; its parameters are accessible from the SINUMERIK HMI under Startup > Drive System > Drives > SERVO_xxx > Parameters, or from STARTER/Startdrive through the drive device tree.
| Parameter | Description | Typical C-axis grinding starting point | Notes |
|---|---|---|---|
| p1460 | Speed controller P gain, Kp_n [Nm*s/rad] | 0.3 to 1.5 (load-dependent) | Raise after filter is in place; do not raise first |
| p1461 | Speed controller P gain scaling (Kp_n adaptation) | 1.0 | Used with p1465 for speed-dependent gain; not needed for a static load |
| p1462 | Speed controller integral time, Tn_n [s] | 0.005 to 0.030 | Set so p1460 * p1462 ~= J_total / (2 * dM * 0.7) |
| p1465 | Lower speed threshold for Kp_n adaptation | 0 | Default; leave unless running at very low speeds |
| p1441 | Actual speed smoothing time [ms] | 0.0 to 0.4 | Increase slightly to attenuate encoder ripple |
| p1130 | Speed setpoint filter 1 time constant [s] | 0.0 (off) | Use only if following error is the issue; setpoint filter adds lag |
| p1131 | Speed setpoint filter 2 time constant [s] | 0.0 (off) | Same as p1130; chained if needed |
| p1413 | Enable actual speed value filter | 0 | Enable only if encoder-noise measurement shows ripple |
| p1414 | Actual speed value filter time constant [s] | 0.0 | Reduces phase margin; do not combine with low p1462 |
For a higher-inertia load, expect p1460 to settle roughly 1.3x to 2.0x the original value once a filter is in place, and p1462 to be 1.5x to 3.0x the original value because the larger J_total yields a longer Tau_mech.
5. Auto-Tuning Functions in SINUMERIK 840D sl
SINUMERIK 840D sl integrates the SINAMICS commissioning into the HMI under Startup > Drive System > Drives > SERVO_xxx > Commissioning > Automatic Controller Setting. The exact menu text and feature set depend on the SINUMERIK software version. The discussion in the source thread notes that SW 2.05 does not have the auto-tuning menu; SW 2.6 and later (NCU software 4.4 SP2 and up) ship with the drive-side auto-tuning functions enabled.
| Function | Parameter | What it does | SW availability on 840D sl |
|---|---|---|---|
| Motor data identification | p1910 | Identifies stator resistance, leakage inductance, magnetizing curve. Required once after motor change. | All versions |
| Speed controller optimization (no-load) | p1960 = 1, p1965 = 1 | Measures mechanical response with axis detached from load, computes Kp and Tn. | SW 2.5 and later |
| Speed controller optimization (with load) | p1960 = 1, p1967 = 1 | Same but with the workpiece mounted; uses prbs reference signal and FFT to identify resonance. | SW 2.5 and later |
| One-button tuning | p1959 | Combined identification + controller optimization + filter design in a single routine; writes p1460, p1462, and up to two notch filters automatically. | SW 4.4 and later on NCU 6xx; SW 2.7+ with newer SINAMICS firmware |
| Online tuning / adaptive controller | p1970... | Continuously adjusts Kp/Tn during operation; not used during commissioning. | SW 2.6+ |
If the controller is at SW 2.6 or later and the SINAMICS firmware is V4.x, run Startup > Drive System > Drives > SERVO_xxx > Commissioning > Automatic Controller Setting > Speed controller optimization (with load). The routine will:
- Move the C-axis over a small angle (typically ±5°),
- Inject a pseudo-random binary sequence (PRBS) into the torque setpoint,
- Capture the resulting speed response,
- Compute the open-loop frequency response via FFT,
- Fit a closed-loop PI + notch filter model,
- Write p1460, p1462, p1670...p1682 directly to the drive.
After auto-tuning, run a controlled motion test with a representative workpiece and listen for whistle. If the resonance is still present, drop the auto-tuned Kp by 20 % and add a second manual notch filter at the residual peak.
6. Manual Filter Design with Notch and Band-Stop Filters
For a controller at SW 2.05 without auto-tuning, the offending resonance frequency must be measured and a current-setpoint filter configured manually. A "notch filter" in the SINAMICS sense is a band-stop filter (type 2 biquad): it passes all frequencies except a narrow band around its center, where the gain drops sharply. The filter is described by four parameters per stage:
- Type: 1 = low-pass PT2, 2 = general 2nd order (band-stop / band-pass / lead-lag), 3 = band-stop, 4 = band-pass, 5 = general 2nd order with high-pass shelf
- Denominator natural frequency f_dd [Hz] — the frequency where the denominator has its pole pair
- Denominator damping d_dd — the damping of the pole pair (lower = sharper notch, higher = broader)
- Numerator natural frequency f_nn [Hz] — the frequency of the zero pair that creates the notch
- Numerator damping d_nn — the damping of the zero pair
For a pure band-stop (notch) at one frequency, set f_nn = f_resonance and d_nn = 0.7 (moderate depth), and set f_dd slightly above f_nn (typically 1.05 to 1.2x f_nn) with d_dd = 0.3 to 0.5. The width of the notch and its depth are then controlled by the d_nn / d_dd ratio.
7. Filter Parameter Set (p1655...p1686) Detailed Reference
There are four current-setpoint filter stages on a SINAMICS S120 SERVO. Each stage is enabled by the corresponding bit in p1656:
| Filter stage | Enable (p1656 bit) | Type | Frequency | Damping |
|---|---|---|---|---|
| Filter 1 (defaults to low-pass after autotune) | Bit 0 | p1670 | p1671 (f_dd), p1673 (f_nn) | p1672 (d_dd), p1674 (d_nn) |
| Filter 2 | Bit 1 | p1675 | p1676 (f_dd), p1678 (f_nn) | p1677 (d_dd), p1679 (d_nn) |
| Filter 3 | Bit 2 | p1680 | p1681 (f_dd), p1683 (f_nn) | p1682 (d_dd), p1684 (d_nn) |
| Filter 4 | Bit 3 | p1685 | p1686 (f_dd) | - |
For the C-axis whistle, the typical configuration is:
; ---- Current-setpoint filter 1: notch at the measured resonance ----
p1656.0 = 1 ; enable filter 1 (if not already on)
p1670 = 3 ; type = band-stop (notch)
p1671 = 480 ; f_dd = 480 Hz (denominator natural freq, slightly above notch)
p1672 = 0.4 ; d_dd = 0.4
p1673 = 455 ; f_nn = 455 Hz (numerator natural freq = measured resonance)
p1674 = 0.7 ; d_nn = 0.7
; ---- Current-setpoint filter 2: 2nd notch if a 2nd peak remains ----
p1656.1 = 1
p1675 = 3 ; type = band-stop
p1676 = 1200 ; f_dd
p1677 = 0.4
p1678 = 1150 ; f_nn (second resonance from coupling)
p1679 = 0.7
; ---- Speed controller re-tune for the heavier workpiece ----
p1460 = 0.85 ; was 0.45; raise Kp after filters are in place
p1462 = 0.018 ; was 0.008; longer Tn for the larger J_total
For a band-stop filter in SINAMICS, the convention is f_nn = f_resonance, f_dd > f_nn. If the auto-tuning tool has written the values, the typical result is f_dd / f_nn between 1.05 and 1.15. Do not invert the relationship; the biquad becomes unstable if f_dd < f_nn and damping is low.
8. Identifying the Resonant Frequency with STARTER / Startdrive
On a controller without auto-tuning, the resonance is identified by injecting a small chirp or PRBS reference into the open speed loop and capturing the response. The procedure:
- Open STARTER (or Startdrive for newer TIA Portal projects). Connect to the drive device containing the C-axis SERVO DO.
- Open the trace tool (Trace & Graph Generator). Configure two signals: speed setpoint (r0062) and speed actual value (r0061). Set the trigger to "immediate", sample time 0.5 ms, recording time 4 s.
- Pulse-inhibit the drive. Set p1120 (ramp-up time) to a small value, e.g. 0.05 s, so a short reference step is fast enough to excite the mode.
- Enable the drive. Issue a small jog step in the C-axis (e.g. 1° at 1000°/min). Start the trace.
- Stop the trace. Open the trace in the FFT view (right-click > Signal characteristics > FFT). The peak in the speed actual value spectrum (and the corresponding dip in the coherence function) is the resonance frequency f_resonance.
- Repeat the test with the heavy workpiece mounted. The peak frequency will drop; this is the value to write into p1673 (numerator natural frequency).
An alternative measurement that requires no extra tool: use the online spectrum analysis of the torque setpoint (r1503) at a constant speed. The torque setpoint will show a tonal peak at the resonance frequency while the whistle is audible. This method is less precise than the PRBS / FFT approach but works with any STARTER version.
| Tool | Configuration | What to capture | Time |
|---|---|---|---|
| STARTER trace | 4 s record, 0.5 ms sample, two signals (r0061, r1503) | Time-domain torque and speed | ~2 min setup, 1 min test |
| STARTER FFT | Hanning window, 4096-point FFT, 0.244 Hz bin width | Frequency spectrum | ~5 min post-process |
| External accelerometer | Mounted on spindle housing, 1 kHz sample | Vibration spectrum | Requires hardware |
| SinuTrain simulation | Replay trace offline | Iteration on filter parameters | ~30 min |
9. Setpoint and Actual-Value Filters as Alternatives
If the resonance is below ~200 Hz, a band-stop filter is the wrong tool; the speed-loop bandwidth typically needs to be 2x to 3x the resonance frequency, and a notch that low would also notch out useful control signal. In that case, the alternative is to add a low-pass (PT2) on the speed actual value or the speed setpoint:
- p1130 (setpoint PT2 low-pass): Reduces the controller's excitation of the mode, but also adds phase lag and degrades contour accuracy. Use only if p1460 is the limiting factor and the axis is not in a tight contouring cut.
- p1413 / p1414 (actual value low-pass): Removes the high-frequency component from the actual speed used by the controller. Same phase-lag caveat; do not combine with very low p1462.
- p1441 (actual speed smoothing time constant): A simple first-order low-pass; gentler than p1413/p1414, suitable for encoder noise, not for mode suppression.
For a C-axis grinding machine that does contour-following between the wheel and the workpiece, the cleanest answer is a band-stop filter at the resonance frequency (above 200 Hz), not a low-pass on the actual value.
10. C-Axis Specific Considerations on a Grinding Machine
The C-axis on a cylindrical grinder is unusual in that the workpiece itself is a tuned structure. The first resonance is often the workpiece-fixture system, not the drivetrain. The frequency is then proportional to 1/sqrt(m_workpiece). The original poster's report that the whistle appeared only after a heavier workpiece is consistent with this.
Practical implications for the filter design:
- Set the filter frequency for the heaviest workpiece the machine will run, not the lightest. With a lighter workpiece the resonance moves up and out of the notch's effective range, which is fine; the filter will simply have no effect at the higher frequency.
- If the machine grinds a range of workpiece masses, leave filter 1 (notch) on the heaviest-workpiece frequency, and consider adding filter 2 (notch) on a second modal frequency 1.5x to 2x higher. Filter 3 (notch) can be set to a third mode if needed.
- Verify the C-axis position loop in the NC (MD of the position controller) is not also being excited. A sustained whistle that does not decay when motion stops is a speed-loop mode; a whistle that decays when motion stops is a position-loop mode and is treated by adjusting the NC's Kv factor and possibly the position setpoint smoothing (MD of the NCK).
11. Current and Torque Verification
A question raised in the field report: what current is drawn, and what is the rated current? When evaluating a C-axis filter, the relevant limit is the short-time current capacity of the SERVO drive object, not just the rated motor current. Verify the following before declaring a filter successful:
- Drive utilization (r0033) stays below 100 % during a representative grinding pass with the new workpiece. If utilization is consistently above 90 %, the new inertia is at the limit of the drive's capability and a filter will not solve the underlying issue.
- Motor utilization (r0031) does not exceed the rated current of the motor for the duty cycle. The rated current is read from the motor data set and is p0305 [Arms].
- Torque utilization (r0031) does not exceed the short-time torque limit. The maximum torque utilization over a full grinding cycle should be below the S6 / overload capacity stated on the motor nameplate.
- DC-link voltage (r0026) does not collapse under heavy load; if it does, the drive is regenerating and the input filter is undersized. A DC-link collapse can also cause current-controller instability, which can sound similar to a resonance whistle but is at a different frequency.
For the current measurement question in the source, the answer depends on whether the value is single-phase or three-phase. SINAMICS r0027 reports total DC-link current; r0031 reports motor torque utilization as a percentage of rated; r0078 reports the actual torque-producing current Iq in [Arms]. The single most useful number for verifying the filter is r0078 versus the load profile, not the line current on the input side.
12. Step-by-Step Commissioning Procedure
The recommended procedure for a 840D sl at any software level, applicable to the C-axis in the source scenario:
- Baseline readback. Save the current parameter set using the HMI function Startup > Drive System > Drives > SERVO_xxx > Commissioning > Save parameters to CompactFlash. Also export the drive parameter set from STARTER/Startdrive. Do not skip this step.
- Measure the resonance. Use the FFT-on-trace procedure in section 8. Record the frequency, the Q-factor (peak width at -3 dB), and the peak amplitude in dB. Save the trace file.
- Configure filter 1 as a band-stop at the measured frequency. Use the parameter values from section 7. Set p1656.0 = 1.
- Copy RAM to ROM and restart the drive (or do Copy RAM to ROM and re-power the NCU if running). The filter is inactive until the next ramp-up.
- Run a controlled motion test. Jog the C-axis back and forth at the speed used during grinding, with the heavy workpiece mounted. Listen for the whistle. If still present, the peak was either misidentified or is a higher-order mode.
- Add filter 2 if needed. Repeat the FFT measurement with filter 1 active. A second peak at a higher frequency indicates a second mode. Configure filter 2 as a band-stop at that frequency (section 7).
- Re-tune the speed controller. With the filters in place, increase p1460 in 10 % steps and re-run the motion test. Stop when the whistle returns or when the position following error during a contouring pass starts to oscillate. Reduce p1460 by 20 %, leave p1462 at the previous value (Tau_mech-based), and document the final values.
- Run a full grinding cycle with a real workpiece. Verify the surface finish is acceptable, the following error stays within the programmed tolerance, and the drive utilization is below 100 %.
- Save the parameter set to CompactFlash and back up the STARTER/Startdrive project.
13. Verification and Acceptance Test
After the filter is configured, the following checks confirm a stable installation:
| Check | Method | Pass criterion |
|---|---|---|
| Audible whistle | Listen during 5 repeated C-axis jog cycles | No whistle above ambient |
| Speed setpoint spectrum | FFT on r0062 over 4 s | No peak above -30 dB at f_resonance |
| Torque setpoint spectrum | FFT on r1503 over 4 s | No peak above -25 dB at f_resonance |
| Position following error | Record during a representative grinding pass | Max < 1.5x nominal; no sustained oscillation |
| Drive utilization | Record r0033 during full cycle | Max < 90 %; mean < 60 % |
| Motor temperature | Read r0035 at end of 1 h cycle | Within rated limit (typically 80 K rise above 40 °C ambient) |
| Surface finish | Ra measurement on a test workpiece | Within drawing tolerance |
| Contour accuracy | Test cut with the part probe engaged | Roundness / cylindricity within drawing |
14. Troubleshooting Matrix
Common failure modes during filter installation, with their diagnostic signature and the corrective action:
| Symptom after filter install | Most likely cause | Diagnostic | Action |
|---|---|---|---|
| Whistle still present at the same frequency | Filter not active (p1656 bit not set), or filter type not band-stop | Read p1656, p1670; check p1671 / p1673 values | Set p1656.0 = 1, set p1670 = 3, confirm p1673 matches measured f_resonance |
| Whistle moves to a different frequency | First mode is suppressed; a higher mode is now visible | Re-run FFT, identify new peak | Add filter 2 at the new peak |
| Whistle returns when p1460 is raised | Gain is now high enough to excite a 3rd mode the filter does not cover | Trace r1503 during whistle | Add filter 3, or accept lower Kp |
| Follow-up error oscillates at 1 Hz to 5 Hz | p1462 is too small (integrator too fast) for new Tau_mech | Read p1462, check J_total | Increase p1462 by 50 % |
| Drive faults F07900 (motor blocked) or F07902 | Filter coefficients are unstable (f_dd < f_nn with low d_dd) | Read p1671...p1674 | Set f_dd > f_nn; raise d_dd to 0.5 minimum |
| Motor current rises and drive faults F30002 / F30003 (DC-link overvoltage / ground fault) | Filter is not the issue; check regen and input filter | Read r0026, r0027 | Check line filter and ballast resistor sizing |
| Filter causes a new whistle at 2x the original frequency | Notch is too narrow; the second harmonic of the resonance is now dominant | FFT on r1503, look for 2x peak | Widen the notch by raising d_nn from 0.7 to 1.0 |
| Whistle appears only during deceleration | Setpoint filter (p1130) is the source, not the loop | Trace r0062 during decel | Reduce p1130, or add a feedforward precontrol |
What parameter p1460 actually does, and what value should I start with for a heavier C-axis load?
p1460 is the proportional gain of the SINAMICS S120 speed controller on a SERVO drive object, in units of Nm*s/rad. The original C-axis value must be measured (e.g. 0.45); the new starting point after installing a notch filter is approximately 1.3x to 2.0x the original. Raise in 10 % steps and verify the whistle does not return.
How do I find the resonance frequency if my 840D sl is on SW 2.05 and the auto-tuning menu is missing?
Use STARTER's trace tool to record r0061 (actual speed) and r1503 (torque setpoint) during a short jog step, then run an FFT on the captured data. The peak in the speed or torque spectrum is the resonance. Write the value into p1673 (numerator natural frequency of the current-setpoint filter), set p1671 = 1.1x p1673, p1670 = 3 (band-stop), and enable the filter by setting p1656.0 = 1.
Why is the motor whistle audible, and not just visible on a trace?
The whistle is the acoustic emission of the motor stator windings vibrating at the loop's sustained oscillation frequency. The frequency is typically 300 Hz to 1500 Hz, in the most audible band of the human ear (peak sensitivity is around 1 kHz to 4 kHz). It is the same physical phenomenon as the torque setpoint ripple visible on r1503; one is sensed by the ear, the other by the drive.
Can I use more than one notch filter on the C-axis?
Yes. The SINAMICS S120 SERVO has four current-setpoint filter stages (p1670...p1686). Each can be configured as a band-stop. Typical use is one notch per structural mode; in practice, two to three are often enough. Avoid enabling more stages than necessary because each filter adds phase lag and can reduce the achievable speed-loop bandwidth.
What is the difference between p1460 (Kp), p1462 (Tn), and the current-setpoint filters?
p1460 and p1462 set the PI speed controller, which determines the closed-loop bandwidth and how aggressively the controller reacts to speed errors. The current-setpoint filters (p1670...p1686) shape the torque signal that the speed controller produces, before the current controllers act on it. p1460 / p1462 control the speed loop; the current-setpoint filters suppress specific frequencies in the plant. Both are needed when a resonance is inside the speed-loop bandwidth.