Motion Control and Motor Drives

cancel
Showing results for 
Search instead for 
Did you mean: 

hunting motor

Solved!
Go to solution

Hi, I'm trying to tune a servo motor on a PXI-7358 using MAX 1D interactive without success. My problem is the motor hunts around the target position.

I have tried auto-tuning and varying trajectory settings and move constraints (dead band etc.) and now have move complete staus as true, however the motor just keeps hunting.

I have inhibit enabled and would like to have the motor energised only for the move i.e. as soon as position is within dead zone kill axis.

Is this possible in MAX or do i have to write LabVIEW 8.5 code.

many thanks

Darren

 

0 Kudos
Message 1 of 8
(5,698 Views)
Are the moves you are trying to make working well, and you only have the hunting issue at a set commanded position?  If other moves are OK, then it is just a tuning issue.  Your Kp is probably too high.  What methods are you using to tune it?
0 Kudos
Message 2 of 8
(5,687 Views)

If tuning is the issue, please refer to these documents:

A Simple Method for Servo Motor Tuning

Understanding Servo Tune

 

Additionally if you want the axis to be deenergized within a certain window around your target position, you could use the Static Friction Deadzone for this purpose. You can find this feature on the Filter Settings tab in the Control Loop Settings in MAX. Here is the description from the NI-Motion help:

 

Deadzone

The maximum and minimum deadzones are the windows around a static position that determine its sensitivity to external forces that try to move it from its position.

Inside the maximum deadzone window, an axis can be moved without response. As soon as the movement causes the axis to exceed the maximum deadzone, the control loop responds by correcting the position back to within the window defined by minimum deadzone.

 

I hope that helps,

Jochen

 

 

Message Edited by Jochen on 10-14-2008 10:23 AM
0 Kudos
Message 3 of 8
(5,677 Views)
I should also ask if you are trying to tune just the motor.  Do you have it connected to the load?
0 Kudos
Message 4 of 8
(5,671 Views)

Hi Brian and Jochen

thanks for your reply.

I think the problem is when our motor is enabled the 60kg device being moved free falls toward the ground. The chattering at a constant position is therefore the motor repeatedly pull it back into position then releasing it in the deadzone only to have to catch it again.

Killing the axis at the end of a move seems to be the only way to stop this. I have writtern a simple piece of code that loops until the target is reached and kills axis at the exit of the loop. But this dosn't appear possible in MAX.

The only problem with the code method seems to be the final position can be upto 1000 counts out (16384 counts/rpm). I'm guessing this is a tuning issue. I used auto tune and produced kp 3294 kd 22688 ki 657, and am now in the process of manually tuning as per 'a simple method for servo motor tuning'. I'm trying to do this for low speed motion with a reduced torque output voltage and a high speed motion with a standard torque voltage. It looks like i'll need PID settings for each.

 

many thanks

Darren

0 Kudos
Message 5 of 8
(5,669 Views)
The best thing to do for a vertical load like that is to use an offset.  I am not that familiar with NI motion controllers, but to determine the value, put the motion controller in open loop mode and keep increasing the output until the load is balanced.  Use this value to determine what offset to use.  This will make tuning much easier.  Return your deadband and other move complete settings back to default.  You should not have to kill the axis to keep it in position.
Message 6 of 8
(5,661 Views)

For the case, that you want to try Brian's idea, you can find the offset settings at the same location in MAX as the static friction settings.

You are absolutely right that you might have to tune the system for the two different use cases, as the parameters of a PID controller are only valid within a certain range of torque and velocity.

 

Message 7 of 8
(5,657 Views)
Solution
Accepted by topic author scoobydont

Hi Brian and Jochen

 

have reset deadband etc. to defaults and applied an torque offset and it seems to have done the trick.  Now I just need to tune the motor.

Many thanks for your assistance.

Darren

Message 8 of 8
(5,654 Views)