I
I
Illivion2013-08-23 23:20:54
Project management
Illivion, 2013-08-23 23:20:54

Linear drive control?

There is a task to control a linear actuator with an electric motor ( www.exlar.com/product_lines/23-tritex-ii-ac-linear... in servo mode. As an input parameter, the position of the rod. The parameter can change randomly. It is necessary to make the actuator follow
The drive has 3 modes of operation: 1. Setting the coordinate
with restrictions on speed, acceleration and current We set these values ​​and the rod itself went to the specified point, and stopped with a slight deceleration
2. Setting the speed with restrictions on acceleration and current We set the speed and the drive starts moving with it until you change the sign of the speed or set it to 0 (well, or until it hits the end - overcurrent).
3. Current control. Unlimited mode, so to speak. Stupidly put the current in amperes. I can't tell from the behavior as I haven't tried it.
For example, I took the input periodic signal in the form of a sinusoid. Initially, I decided to try to control the coordinate. That is, with a certain frequency (30-50 Hz), update the drive with the calculated value of the coordinate, setting speed, acceleration and current limits on the verge of the drive's capabilities. It worked, but on a small period of the sine, there was no noticeable dynamism of movements, plus an uneven movement of the stem begins if a dynamic load acts on it.
Sounds like it needs speed or current control feedback.
I tried to control the speed according to this algorithm: When the timer expires, every 30ms we check the actual coordinate of the rod from the sensor, compare it with the calculated coordinate, divide the coordinate difference by the time between updates (30ms) and get the speed that we send to the drive. It turns out that the drive should work with a delay of >=30ms from a real change in coordinates, but this, I think, is normal. However, in practice it turned out that the speed values ​​always turn out to be extremely small, and the drive barely moves. I tried to multiply the resulting speed by some constant factor (for example, 100). Movement back and forth is obtained, but also very slurred. It can be seen that the error in the coordinate is very large.
In connection with this question. How to properly manage such things? I looked at the theory on the Internet, but there it’s more focused not on software, but on hardware control - I don’t have the opportunity to use feedback with instant action. Tell me where to dig, or poke your nose, what to read. I will answer any questions. Thank you.

Answer the question

In order to leave comments, you need to log in

2 answer(s)
I
iliasam, 2013-08-25
@Illivion

Maybe try implementing a PID controller ?

A
Akson87, 2013-08-24
@Akson87

Look towards control theory or TAU.

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question