another CL stepper + glass scale topic
07 Apr 2021 09:55 - 08 Apr 2021 06:45 #205241
by mydani
another CL stepper + glass scale topic was created by mydani
Hi guys,
not wanted to mess up Hakkans thread (thanks mate), so I started this one.
Sorry for writing a booklet-size post #1, but I have to note it down somewhere...
I am currently (again) retrofitting an EMCOTURN, this time with - you guessed it - CL steppers and glas scales.
So far it progresses well, however during tuning, I found some borders for my tuning capabilities.
For this I attached some scope pictures as well.
What I did:
So now I am stuck with 3 options to get rid of the vibrations, and I dislike all of them. Reducing P is a no go because it renders the whole exercise of gaining more precision pretty much useless. Reducing speed also bugs me since w/o the PID loop it works reliably.
Which leaves me to reduce acceleration...
Now the question to you experts - what options do you see?
Is there a possibility to reduce acceleration only at higher speeds (motor rpms)?
Is is maybe better to leave everything to the controller and just add a second PID around to add an I term for position correctness?
Looking forward to some suggestions.
Regards,
Daniel
not wanted to mess up Hakkans thread (thanks mate), so I started this one.
Sorry for writing a booklet-size post #1, but I have to note it down somewhere...
I am currently (again) retrofitting an EMCOTURN, this time with - you guessed it - CL steppers and glas scales.
So far it progresses well, however during tuning, I found some borders for my tuning capabilities.
For this I attached some scope pictures as well.
What I did:
- Pictures 1-3: I measured the "real" ferror using the glas scales while not using the linuxcnc PID (standard settings from pncconf, P:1000 FF1:1) with glass scale feedback at different speeds. Beware, it's a bit awkward since the final position is also not 100% correct, and it counts into the ferror graph as well:
Speed Ferror 5000 0.17 1000 0.07 200 0.02? - Pictures 4-6: Then I connected the glass scales position to the PID feedback and started tuning like you normally do with servos. FF1:1, PID up to where it reduces the follow error sufficiently but does not cause stability/vibration issues, also added very little FF2 and even smaller I term (which is not really that necessary after all).
Speed Ferror 5000 +/-0.017 1000 +/-0.007 200 +/-0.007 - What happens is - only at fast speeds - every now and then (2 out of 10 moves) the movement sounds really "vibraty" and you can see the same in picture 7. I tried to narrow down what the issue is.
- Without the glass scales/PID loop, this does not happen at all. So the PID causes this. And it eliminates the CL between motor and driver as root cause. It works reliably with 5m/min.
- If I increase speeds even more, e.g. to 7m/min, even the closed loop btw. driver and motor struggles and it causes the same vibration. I conclude we run out of stepper motor torque at high rpm to do the necessary corrections sufficiently fast and this causes the vibration.
- So back at 5m/min with the PID and glass scale loop, if I reduce the P value, the problem is also gone. happen. then it really also takes away precision at low speeds significantly, so it's not an option.
- Reducing the stepper acceleration (750 => 400mm/s²), it also fixes the vibration issue, however it makes it - again also at slow speeds - little less exciting. So my conclusion seems more valid, running out of torque at high rpm. Seems the PID with glass scales demands little more torque/acceleration at 5m/min than only the loop btw. driver and motor.
- Reducing the max. speed will of course fix this as well.
So now I am stuck with 3 options to get rid of the vibrations, and I dislike all of them. Reducing P is a no go because it renders the whole exercise of gaining more precision pretty much useless. Reducing speed also bugs me since w/o the PID loop it works reliably.
Which leaves me to reduce acceleration...
Now the question to you experts - what options do you see?
Is there a possibility to reduce acceleration only at higher speeds (motor rpms)?
Is is maybe better to leave everything to the controller and just add a second PID around to add an I term for position correctness?
Looking forward to some suggestions.
Regards,
Daniel
Last edit: 08 Apr 2021 06:45 by mydani.
Please Log in or Create an account to join the conversation.
07 Apr 2021 23:09 #205290
by andypugh
Replied by andypugh on topic another CL stepper + glass scale topic
Try reducing P and increasing I to compensate.
Please Log in or Create an account to join the conversation.
08 Apr 2021 01:13 #205302
by PCW
Replied by PCW on topic another CL stepper + glass scale topic
You could also reduce P at higher speeds, perhaps using the lincurve
component to map velocity into appropriate P values
component to map velocity into appropriate P values
Please Log in or Create an account to join the conversation.
08 Apr 2021 03:18 - 08 Apr 2021 06:22 #205305
by Hakan
Replied by Hakan on topic another CL stepper + glass scale topic
That's what I do, reduce pid parameters the faster the axis goes.
Input to the lincurve.in is the absolute value of the net x-vel-cmd
setp lincurve.Px.x-val-00 5
setp lincurve.Px.y-val-00 [JOINT_0]P
setp lincurve.Px.x-val-01 30
setp lincurve.Px.y-val-01 20
Input to the lincurve.in is the absolute value of the net x-vel-cmd
Last edit: 08 Apr 2021 06:22 by Hakan. Reason: was too short so added things
Please Log in or Create an account to join the conversation.
Time to create page: 0.094 seconds