[SOLVED] AC servo motor not stationary in idle state

Papabravo

Joined Feb 24, 2006
21,157
I have no idea why it is happening.
There have already been some clues in this thread.
  1. When the machine stops, there is a small error, and the gain of integral term, magnifies that small error and causes a small motion to be commanded. That movement is enough to cause the sign of the error term to reverse, and the result is a small motion in the opposite direction
  2. The resolution of the position feedback is not sufficient to reduce the error term to zero and keep it there.
Do you have a plan for trying to figure out what is going on?
  1. Can you set the integral term gain to zero?
  2. Can you monitor the sign and magnitude of the error term?
 

MaxHeadRoom

Joined Jul 18, 2013
28,617
How do they prevent a small error signal when stationary from causing movement?
Apart from the industrial systems that use a PID tuned loop, I have typically used PC based motion cards, e.g. Galil Motion, typically you would use a DC or BLDC motor and a transconductance servo drive, the motor encoder returns to the Motion card and the PID loop is then tuned for optimum performance in order to produce zero movement when stationary, these cards have a feedback loop frequency of 12Mhz.!
 

Papabravo

Joined Feb 24, 2006
21,157
Apart from the industrial systems that use a PID tuned loop, I have typically used PC based motion cards, e.g. Galil Motion, typically you would use a DC or BLDC motor and a transconductance servo drive, the motor encoder returns to the Motion card and the PID loop is then tuned for optimum performance in order to produce zero movement when stationary, these cards have a feedback loop frequency of 12Mhz.!
That says nothing to me about how they avoid moving when there is a small error signal and the integrator gain is enough to cause movement. How do they solve that particular problem.
 

strantor

Joined Oct 3, 2010
6,782
That says nothing to me about how they avoid moving when there is a small error signal and the integrator gain is enough to cause movement. How do they solve that particular problem.
By properly tuning the PID.
BTW - optimizing the system to be stationary in the idle state has never appeared on my list of priorities in a career spanning half a century. I'm just sayin'.
Then what HAS been on your list of priorities?

Your posts in this thread read like you're trying to make a point in a sly way. Out with it, you're being too sly. I have no idea what you're on about, and if I don't, then guaranteed there's no way TS "gets it."

A properly tuned PID loop absolutely can, and almost always should, have near-zero error at steady state, whether that steady state is 0 speed, max speed, or anywhere in between.
 

Papabravo

Joined Feb 24, 2006
21,157
By properly tuning the PID.


Then what HAS been on your list of priorities?

Your posts in this thread read like you're trying to make a point in a sly way. Out with it, you're being too sly. I have no idea what you're on about, and if I don't, then guaranteed there's no way TS "gets it."

A properly tuned PID loop absolutely can, and almost always should, have near-zero error at steady state, whether that steady state is 0 speed, max speed, or anywhere in between.
Dynamic properties mostly, things that would be important in controlling a disc head, like seeking a new track, and track following once you get there. We don't know if the TS has actually done anything to tune his loop. He is asking what is making the output hunt for a stationary position and we've tried to give his some clues. As yet he has not given any further information, or reported the results of any investigations.

I may be condescending, but I'm hardly sly. Thanks just the same for the complement.
 

strantor

Joined Oct 3, 2010
6,782
@abuhafss exactly what servo motor and drive are you using? Have you done any loop tuning at all? Or did you just take the components out of the boxes, wire them up, and expect them to work?

In case you don't know, the "out of the box" PID parameters in a servo drive are either all set to 0, or generic non-zero values that are just meant as a starting point to begin tuning. The expectation is that you will tune the drive to your application. The tuning needs to match the inertia of your load. Most drives (all good drives) have companion PC software used to control the drive through a guided startup procedure where electrical properties of the motor are measured, rotor inertia and the inertia of the load is measured, and PID parameters are generated. You can further tune the generated PID parameters to dial in your system for "perfect" control. If you have not done any of that, then that is your problem.
 

Thread Starter

abuhafss

Joined Aug 17, 2010
307
@abuhafss exactly what servo motor and drive are you using? Have you done any loop tuning at all? Or did you just take the components out of the boxes, wire them up, and expect them to work?

In case you don't know, the "out of the box" PID parameters in a servo drive are either all set to 0, or generic non-zero values that are just meant as a starting point to begin tuning. The expectation is that you will tune the drive to your application. The tuning needs to match the inertia of your load. Most drives (all good drives) have companion PC software used to control the drive through a guided startup procedure where electrical properties of the motor are measured, rotor inertia and the inertia of the load is measured, and PID parameters are generated. You can further tune the generated PID parameters to dial in your system for "perfect" control. If you have not done any of that, then that is your problem.
You got me right!

As I have already mentioned, I am very much new to servo motors. Yes, I just took out the drive+motor from the box and wired them.

The servo motor is Chinese DORNA 130DNMA2-01D5CKAM (1.5kW, 2000rpm, 7.16Nm) and the drive is its compatible EPS-B1 series. They use DorWin PC software, which I have download right now.

Kindly guide me further, from where should I start.
 

Deleted member 115935

Joined Dec 31, 1969
0
Just as an aside,
what you are seeing is "hunting"
a servo system of any kind relies upon the error signal to inform it what to do ( go left right etc )
when you are close / at the right point, then the error signal is very very small, basclay noise,
as such the servo is hunting left and right , to find an optimum.
The answer is to make the error signal go to zero below a certain size,

PID is a great way to do this,
you take the position, the speed of change and the speed of change of the speed change
( position integral and differential )

but other ways are available, such as a simple "comparator" especially if your using a processor to control.
 

Thread Starter

abuhafss

Joined Aug 17, 2010
307
Just as an aside,
what you are seeing is "hunting"
a servo system of any kind relies upon the error signal to inform it what to do ( go left right etc )
when you are close / at the right point, then the error signal is very very small, basclay noise,
as such the servo is hunting left and right , to find an optimum.
The answer is to make the error signal go to zero below a certain size,

PID is a great way to do this,
you take the position, the speed of change and the speed of change of the speed change
( position integral and differential )

but other ways are available, such as a simple "comparator" especially if your using a processor to control.
Going thru the manual of the drive, I came across these remarks:
"There might be position deviation pulse residual at overtravel in position
control. To clear the residual, use CLR signal
."
As per your explanation, could the "hunting" be because of the residual pulse?
If yes, I can simply use the CLR signal after each rotation of the motor.

2021-07-07.png
 

MaxHeadRoom

Joined Jul 18, 2013
28,617
The quadrature encoder returns to the drive, So it may appear the loop is closed in the drive, like the simple PC CNC based control such as Mach3.
 
Last edited:

GetDeviceInfo

Joined Jun 7, 2009
2,192
Going thru the manual of the drive, I came across these remarks:
"There might be position deviation pulse residual at overtravel in position
control. To clear the residual, use CLR signal
."
As per your explanation, could the "hunting" be because of the residual pulse?
If yes, I can simply use the CLR signal after each rotation of the motor.

View attachment 242887
I suggest that this means if the drive hits an over travel switch, the encoder value may not be dependable, coming off the switch. Clearing it coming of the switch could get you back to the home decel zone.
A pid, at it’s core, may be overlaid with a variety of functions, ie; ramping, deadband, parameter switching... A similar problem that I ran into was a shuddering armature at zero speed, due to a resolver not phased (physically) with the armature.
Sounds like you need to spend some time digesting what you have
 
Last edited:

strantor

Joined Oct 3, 2010
6,782
It is mentioned clearly that the CLR will clear the residual pulse.
My interpretation, which I believe is just a different way of saying what @GetDeviceInfo said, is that in the case where the axis hits an overtravel switch and the enable signal is removed, but the drive continues to receive step/dir pulses commanding it to continue further beyond the overtravel switch (to which it cannot comply), these pulses will accumulate, and position error will therefore accumulate, and this CLR input is meant to clear that error once (or prior to) the axis being commanded to move in the opposite direction, coming off the limit switch.
 

Thread Starter

abuhafss

Joined Aug 17, 2010
307
I would like to report you guys that the issue has been resolved.

After trying different options, I discovered that the issue was not with the servo or the drive. In fact, it was the roller set (directly coupled with the servo) which feeds the strip to desired length. Whenever the TENSION screws are over-tightened, the problem starts.

I could not diagnose it earlier because, I never faced such issue in another identical machine.

I would like to thank all the friends who participated in this discussion.
 
Top