Hello, good morning.
I'm facing a problem in controlling a device using a deltatau controller (Faraday Powerbrick LV IMS).
The motor is a Nanotec L4118S1404-M6x1 two phase stepper
The encoder is an absolute Renishaw 32 bits linear encoder
the device is an uncooled in-flange slit ASM0239 by FMB-Oxford (find drawing attached)
As seen on the attached image, for one axis of the device, when I try to make a negative movement, we find some recurring noise on the position error signal( which can also be heard). At the end of the movement, the position error oscillates by +-50 counts, which corresponds to 2,5 micrometers. This happens only at certain positions on the axis course.
The solution I found for this was to lower the servo frequency, after which the oscillations had their amplitude lowered to +-5 counts. Then I applied a deadband with outdbon=3 and outdboff=5.
However, I'd like to pursue a better solution.
One thing we noted is that when we move the motor in open loop, we cannot find the same oscillation signal in the encoder position signal while the motor moves.
Because of that, we came up with the idea of implementing a "re-iterated open-loop control".
The idea is: Whenever a movement is requested for the axis, a cycle is activated. The cycle goes like this:
First, the motor is moved in open-loop, by a small quantity, towards the desired position. After the movement, the system checks the encoder position, and, if it is not close enough to the desired position, another open-loop movement is issued. This cycle repeats itself until the desired position is reached, within a pre-determined position band.
By doing this, the movement would not be prone to noise and oscillations as observed in closed-loop control, since it would be based now in open-loop control. We can adjust the open-loop increments in order to minimize time to target and prevent introducing new oscillations in the system when the motor is close to its desired position, due to the nature of the technique.
The question is: Is this doable in a deltatau controller? Is there a native solution to implement such a technique? How can I best approach this solution, in order to try it out?
Thank you very much for your attention.