Rotary Table Tuning Problems

More
28 Oct 2016 06:51 - 28 Oct 2016 07:03 #82164 by schmidtmotorworks
I have been trying to tune a rotary table for 3 months of evenings and weekends but can't figure out what is wrong.

This is on a Mori Seiki MVJR (20"X) and the rotary table is a Tsudakoma 200mm table

I have it to the point that is will move.but can't do much better than that.

The main symptoms are:

1. When I do "Touch Off 0.0" the readout in Axis says about 0.050 degrees
2. When I use the hand-wheel to move it in one direction it can move slowly in one direction but it growls.
3. When I use the hand-wheel to move it in the opposite direction it move very very slowly but if I try to turn it fast at all, it bucks and gets a following error. When the following error happens the motor lurches back the opposite way a few table degrees. Each time I turn the servos back on, it repeats the lurching and errors out again. If I repeat turning on the servos 3 or 4 times, they will stop lurching. But then I am back where I started.

I have tried settings
P from 1 to 100
I 0 to 10
D 0 to 2
Min Ferror can't be less than 0.1 or it erors out with following error

Basically tried 100's of combination of tuning values for all variables but nothing seems to help much.
I can find setting that will make it worse,, just not better.

I tried reversing the tachometer leads, that didn't make any difference, maybe the tach isn't working at all?

I have run out of ideas to try, short of buying a new motor.

If you have any ideas, please let me know.

Here is a picture of what it looks like. It is balanced within the drag of the bearings. If I loosen the backlash, I can rotate it either way by hand.

Last edit: 28 Oct 2016 07:03 by schmidtmotorworks.

Please Log in or Create an account to join the conversation.

More
28 Oct 2016 12:08 #82175 by andypugh
This could potentially be motor hardware.
If the motor is controlled by a velocity-mode drive then it might be worth dismounting the motor and testing that it will move slowly and smoothly at constant speed. Do this with a direct command, ie with no PID loop anywhere in the system.

It could also be that your P-gain is too high, or too low. 1 is not the lowest possible gain. Try 0.1, 0.001. 0.0001 just to see.

Please Log in or Create an account to join the conversation.

More
28 Oct 2016 20:56 #82216 by schmidtmotorworks
Thanks, I will try the small P values tonight.

I didn't understand what you meant by "Do this with a direct command," can you tell me how to do that?

With regards to testing tuning variables, I have wondered which ones negative values are valid for.
Do you know if negative values are valid for: P,I,D, etc?

Please Log in or Create an account to join the conversation.

More
28 Oct 2016 21:03 #82217 by andypugh

With regards to testing tuning variables, I have wondered which ones negative values are valid for.
Do you know if negative values are valid for: P,I,D, etc?


The linuxCNC PID controller doesn't work well with any negative values, as far as I know. Certainly if you have negative P or I you need to reverse the motor instead.

Please Log in or Create an account to join the conversation.

More
29 Oct 2016 00:20 #82220 by schmidtmotorworks
OK could you tell me what you mean by a direct command?
Do you mean a G1 instead of turning the hand wheel?

Please Log in or Create an account to join the conversation.

More
29 Oct 2016 00:50 #82222 by andypugh

OK could you tell me what you mean by a direct command?
Do you mean a G1 instead of turning the hand wheel?


No, I mean without involving PID anywhere. Just a constant, small, analogue voltage command to the servo drive.

Please Log in or Create an account to join the conversation.

More
29 Oct 2016 06:58 - 29 Oct 2016 07:02 #82227 by schmidtmotorworks
OK, I didn't know how to do that with a command so I removed the motor and connected it to a variable voltage power supply.

The supply goes from 0-25 volts and that turned the motor from 0 to about 250 RPM (by eye). With all the resistance drag I could put on it squeezing the shaft at 200 RPM it got to 5 amps and worked smoothly in both directions. I guess the motor is OK. That is a relief.

I measured the tachometer voltage while it was still connected and it was constant voltage about 0.3 volts.even when it is sitting still or running at 250 rpm..

I disconnected it and found the voltage varied as expected with change of RPM.
I will try to see what the voltage is on other tachometers and if they have a range of 0-7 like I expect, then I will try to find out why this one in not working that way.

Thanks for your help. It was good to remove the motor, Now I see how to tighten the backlash a little more than was possible before; that was on my to-do list anyhow.
Last edit: 29 Oct 2016 07:02 by schmidtmotorworks.

Please Log in or Create an account to join the conversation.

More
29 Oct 2016 10:02 #82228 by andypugh

The supply goes from 0-25 volts and that turned the motor from 0 to about 250 RPM (by eye). With all the resistance drag I could put on it squeezing the shaft at 200 RPM it got to 5 amps and worked smoothly in both directions. I guess the motor is OK. That is a relief..


If it is a DC servo then that's a good test.
I was assuming it was a brushless one, so that you would need the amplifier to drive it.

The next step would be to test the motor on the amplifier. Then check it with LinuxCNC.

So, connect the motor back to the amp, and send an analogue control voltage from your DC power supply. (carefully). The motor should rotate at a steady speed regardless of load.

Then reconnect the amp to LinuxCNC and manually set the PWM duty cycle.
You can do this by temporarily commenting out the line in the HAL file which connects the PWM or analogout to the PID.
Then open a terminal window and type
halcmd -kf
to get an interactive HAL prompt.
then commands like
setp hm2_5i25.0.7i7.0.1.analogout-00.value 0.1
will set a constant voltage on the control pins.
You will need to use the same pin names as the HAL file, that pin name above was just a guess. If you want a list of pin names, the show pin" command will help. And you can do a more specific listing, eg "show pin *analog* "

You should check that the motor moves at a steady speed in both directions for positive and negative pwm / analog values. And that the speed is independent of load to check that the tacho is working.
The following user(s) said Thank You: schmidtmotorworks

Please Log in or Create an account to join the conversation.

More
29 Oct 2016 15:54 #82235 by schmidtmotorworks
Thanks, that is a useful testing strategy, I didn't know how to do that..

Please Log in or Create an account to join the conversation.

More
29 Oct 2016 16:05 #82236 by andypugh
Anything you can do in a HAL file you can do live at the command line.
With tab-completion too, so there is less typing and scope for error.

Please Log in or Create an account to join the conversation.

Time to create page: 0.115 seconds
Powered by Kunena Forum