Curry wrote:
> Hi all,
>
> I am having problems doing motion control with a servo motor. The
> problem is that the error (difference between setpoint position and
> acutal position) never, or almost never, reaches zero, but oscillates
> slowly about zero, e.g. 1 to -1 increments.
>
> I do the motion control using a DAQ-card, and it is desirable that the
> system reaches an exact position, i.e. error=zero.
>
> I think the problem has to do with the finite min. velocity at which
> my axis can move. When the axis has stopped, and the error is small,
> but non-zero, the PID output starts to increase due to the integral
> term, and the axis stays still until the output reaches a voltage that
> is high enough to start the axis. However, at this point the axis
>
moves to far, and then the same thing happens but in the opposite
> direction, repeatingly until by chance it manages to stop at a zero
> error.
>
> The voltage-band around zero (-1 to 1V) at which the signal is too
> weak to start the axis I have tried to compensate with a look-up
> table. However, it doesn't remedy my problem, only shortens the
> oscillation period.
>
> Any hints, someone?!!
>
> thanks,
> Mats
If the motor can't move when at rest due to hysteresis then you don't
need an integrator, a term there to keep the position from drifting when
on target. I would go for a tune that has no integrator and no
overshoot, you have to creep up on the target. Other than that, I would
say that you have too small a motor or too much friction in your drive.
Also, I would test to insure that it behaves the same on approaches from
the left or right (up/down) and provide a two lobed tune dependent on
direction if its the case. OK?