[SOLVED] AC servo motor not stationary in idle state

Thread Starter

abuhafss

Joined Aug 17, 2010
307
Hi

I am driving AC servo (1.5kW/2000rpm/220V) with Arduino Nano.
Everything is working fine except that after POSITIONing movement, sometimes the motor does not come to halt. The shaft would move 1 step clockwise and then 1 step anti-clockwise (repeatedly).

Parameters:
1000 step per revolution
Electronic Gear ratio = 20
Numerator = 80
Denominator = 4
 
Last edited:

KeithWalker

Joined Jul 10, 2017
3,063
What kind of supplies are you are powering the nano and the servo with? If you are using the same 5V supply for both, electrical noise can feed back from the servo motor to the nano, causing interference.
If your power source is 9 to 12VDC, it is best to power the nano with it and use a separate regulator from it for the servo.for the servo.
 

Thread Starter

abuhafss

Joined Aug 17, 2010
307
What kind of supplies are you are powering the nano and the servo with? If you are using the same 5V supply for both, electrical noise can feed back from the servo motor to the nano, causing interference.
If your power source is 9 to 12VDC, it is best to power the nano with it and use a separate regulator from it for the servo.for the servo.
The servo is AC 220.
 

KeithWalker

Joined Jul 10, 2017
3,063
The nano ADC has a resolution of 10 bits. That is 0 to 1023 steps. If the input to the ADC is set to a voltage which is on the edge of a step, the smallest electrical perturbation can cause the ADC output to vary between two adjacent steps. That will cause the motor position to vary between two adjacent 0 - 1000 resolution steps. The only way to get around that is by introducing a small amount of hysteresis in the feedback path.
 

Thread Starter

abuhafss

Joined Aug 17, 2010
307
I would like to state that this is my first ever project with AC servo with Nano. I have no experience of PLCs. I have limited knowledge of servo which of course, I got from its manual.

Frankly, I am not sure about the feedback system. The encoder wire is properly connected to the drive. The motor works fine except that occasionally it would behave as mentioned in the first post.
 

Thread Starter

abuhafss

Joined Aug 17, 2010
307
The nano ADC has a resolution of 10 bits. That is 0 to 1023 steps. If the input to the ADC is set to a voltage which is on the edge of a step, the smallest electrical perturbation can cause the ADC output to vary between two adjacent steps. That will cause the motor position to vary between two adjacent 0 - 1000 resolution steps. The only way to get around that is by introducing a small amount of hysteresis in the feedback path.
Sorry, but there is no ADC involved to drive the motor.
I am simply generating number of pulses with "for loop" to rotate the motor for a fixed amount of steps, in one direction.
 

MaxHeadRoom

Joined Jul 18, 2013
28,617
Every PID loop system is different, usually the controller is designed with the PID loop method in mind.
IOW, it is designed and integrated into the means of control itself.
There are many manuals on the subject, also Picmicro has one description in a App that refers to a inverted pendulum design.
A means of feedback is normally involved, in the case of an AC servo, it usually involves a quadrature encoder for e.g., on the motor shaft.
 

Thread Starter

abuhafss

Joined Aug 17, 2010
307
I am new to ac servos, but my understanding is that all servos have built in encoders. And so is my servo.

Now the issue for me is that how do I get my servo tuned to get optimum results?
 

Papabravo

Joined Feb 24, 2006
21,159
I am new to ac servos, but my understanding is that all servos have built in encoders. And so is my servo.

Now the issue for me is that how do I get my servo tuned to get optimum results?
You need to start with a definition of optimum. There are many different things you can optimize for. Each one of them involves some tradeoffs.
 

Thread Starter

abuhafss

Joined Aug 17, 2010
307
You need to start with a definition of optimum. There are many different things you can optimize for. Each one of them involves some tradeoffs.
I think it is quite clear. My main requirement is to get rid of the back and forth movement of the servo in idle state.
 

Papabravo

Joined Feb 24, 2006
21,159
I think it is quite clear. My main requirement is to get rid of the back and forth movement of the servo in idle state.
I'm just a poor, old, greasy thumb engineer; and no it was not clear. Normally that slight back and forth movement is not a problem. There are several reasons why this might be happening and you have to run them down one by one. If the magnitude of the error signal is not zero and the integral term gain is high enough this hunting behavior would be expected. You can shutoff the integral term when you reach the setpoint and that might solve the problem. On the other hand the problem may be the result of something else altogether. You are there and we are not. Speculation is the only tool we have to guide you to a solution at the moment.

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'.
 
Last edited:

MaxHeadRoom

Joined Jul 18, 2013
28,617
There are systems that require maintaining a perfectly stationary position when commanded zero movement such as CNC and motion control system used in precision machining etc. ;)
 

Thread Starter

abuhafss

Joined Aug 17, 2010
307
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'.
I am using the servo for (metallic) strip feeding. It is very important for the strip to stay stationary when it has reached its desired length otherwise no way to move on to the next step of the process?
 
Top