Unexpected Jerk/Instantaneous Speed Change Behaviour on Z axis.



  • Duet Ethernet running FW 2.02. Cartesian printer Z axis driven by ballscrew with 2 mm lead coupled to a 0.9 degree stepper motor. 3200 steps/mm (16x with interpolation).

    When I was first testing the Z axis movement, I had M566 Z12 set, as they were some defaults somewhere and I paid no mind to it even though it is equivalent to 0.2 mm/s. M201 Z20 set at first too, I believe. Very conservative.

    Most speeds worked fine with M566 Z12. Commanding the axis at 600 mm/min proved smooth and good, although with a bit of clunkiness here and there.

    At 660 mm/min, however, upon deceleration the axis would stall out loudly. ZIINNNGG. Like when you stall the EFF out of a stepper motor.

    Oddly, increasing the M566 to 60 alleviated the problem completely. I can now go up to 900 mm/min without any noticeable stall upon deceleration.

    However, when I increase M566 further, to say 600 -- the axis doesn't seem to actualy start at the jerk speed. It always applies acceleration and deceleration to every move, even when the moves are slower than the jerk value.

    I guess this might be because the moves are not using the extruder? I'm simply jogging the axis via DWC.

    I'm not really concerned with the fact that jerk doesn't seem to be applied (if that is indeed the intended behaviour), but I'm concerned with the behaviour when jogging the axis with very low M566 value set. Also, in order to test the axis and see which jerk value is appropriate, we will need jerk to be applied to jogging axes, no?

    Any insight into this would be helpful! Thank you.


  • administrators

    @bot said in Unexpected Jerk/Instantaneous Speed Change Behaviour on Z axis.:

    Most speeds worked fine with M566 Z12. Commanding the axis at 600 mm/min proved smooth and good, although with a bit of clunkiness here and there.

    At 660 mm/min, however, upon deceleration the axis would stall out loudly. ZIINNNGG. Like when you stall the EFF out of a stepper motor.

    Oddly, increasing the M566 to 60 alleviated the problem completely. I can now go up to 900 mm/min without any noticeable stall upon deceleration.

    That does seem odd, because RRF does not apply jerk to travel moves. I suspect that increasing jerk didn't really have that effect. Maybe you gave the motors a chance to cool down, or something like that.

    You can use the motor EMF calculator at https://reprapfirmware.org/ to estimate the maximum Z speed before the motors start losing torque.

    However, when I increase M566 further, to say 600 -- the axis doesn't seem to actualy start at the jerk speed. It always applies acceleration and deceleration to every move, even when the moves are slower than the jerk value.

    I guess this might be because the moves are not using the extruder? I'm simply jogging the axis via DWC.

    That's correct.



  • @dc42

    It was 100% related directly to the jerk. I should be able to reproduce it today and I will show you a video.

    I’m not overly concerned with this, but it did seem very odd considering that jerk isn’t even applied!



  • @dc42

    I was not able to reproduce this behaviour when choosing the same settings that I had when it first occurred, so for now this doesn't seem to be a problem.

    The one difference today from yesterday was that today the printer started up and homed its axes with reasonable currents, acceleration, and jerk settings applied. I then changed them to be the previously assumed problematic settings. Yesterday, the machine was started up with some unknown, definitely not "optimal" accceleration, jerk, and current settings. I was then changing all those settings for the axis, testing it, moving it around, etc.

    I've heard you talk about stand-still optimization done by the driver chips themselves when a motor is first energized. Perhaps the optimization that the drivers made with the random settings yesterday caused some kind of problem with the combination of settings I then CHANGED the settings to. Who knows.

    I do know that when the behaviour occurred, there was no practical reason for the motor to be stalling. In no other occasion, with much more aggressive settings, have I stalled the Z stepper. I was very deliberately testing one setting at a time. When I changed M566 Z the behaviour could be easily reproduced and then alleviated by switching between Z12 and Z60. This was without rebooting the machine, and with those previous unknown settings at startup.

    TL:DR: Disregard for now, thanks.



  • What are the characteristics of your Z axis?

    After seeing your post yesterday I tried to duplicate it but wasn't able to. Though I've definitely managed to stall out the Z motor before when tuning it.

    I'm using 60 accel, 60 jerk, and 400 max speed. 3 lead screws, 1mm pitch/lead. Single 1.8 degree 2A motor. 2:1 gear down. Very heavy bed.

    At speeds over 450 or so it starts to have a tendency to want to over rotate after a long travel move, and has a bit of a thunk at the end of the move. Reducing accel helps with this.

    If acceleration is much higher than 60 and the speed much higher than 400 the motor tends to stall out with the same ZIINNNGG sound you described. This happened more often when the lead screws were new and the lubrication was still being worked in.



  • @phaedrux

    Good thoughts. It could be lubrication related! That is a good point I hadn't thought of. These were some of the first full strokes of its life.

    I have a fairly heavy cantilevered bed on linear rails. Z max has the bed moving down.

    I had also thought of simple rotor inertia, or some kind of resonant frequency that may have been excited by JUUUST the wrong settings. For the time being the axis is smooth as silk and can easily move 600 mm/min (the current top speed) with accel at 200 mm/s. I can get away with 500 mm/s accel but things start getting clunky, haha.


 

Looks like your connection to Duet3D was lost, please wait while we try to reconnect.