dual 12vdc dc motor position and speed synchronization


Thread Starter

David Braddy

I need some advice on an application using 2 12vdc motors on a linear slide mech. These 2 motors must move to a desired position at the same speed and position throughout the move. They are mech. linked. If one motor lags this linear slide will bind. I am using a plc with 2 10khz hsc inputs for 2 encoders, being coupled to each motor. this plc also has 2 12khz pwm outputs. Can i use these 2 outputs to control 2 small dc drives to accomplish this, or am i off track. This application is for the automotive industry. Everything must be 12vdc.

Robert Scott

It would be a lot easier to do this with stepper motors. You would simply drive both steppers from the same stepper control board.

If you absolutely must use DC motors, then a high-bandwidth PID loop can be used to slave one motor to the other based on position feedback.

If they are mechanically linked-how are they not going to move together? If they are not linked, they should be because all the people I have known to try this hasn't work out so good.

Nilesh Pradhan

I am not a mechanical expert here, but you may want to use some kind of a servo motor for positioning. Then you may want to use a cam drive mechanism to achieve the desired linear displace ment. You may want to trigger the motion by a DC relay of some kind.

Hope it helps,

-Nilesh Pradhan
1. My first comment concerns the title of the article. You can synchronize either the speed or the position (as regards to the control task) but not both. If you choose to synchronize the position the speed being a derivative of the
former is also synchronized but only as a result of position.

2. You can control the positions of the two drives independently as parallel channels and theoretically it should work but in practice there always exist small differences between the parameters of the two drives as well as a
difference between their load. This will result in the difference between how these drives will track the input signal. And this difference may be significant for the functioning of the device. This is like comparing two not
absolutely exact values: for example, we want both drives to track the value 100 but the first one has the output of 99.5 and the second one has 100.5 that results in 1.0 difference, which is almost unnoticeable by the control system
as it is just 1% of the set point (or output value). It is much better to organize the system so that to make it track the difference. That is master drive - slave drive arrangement. The master drive tracks the input signal and
the slave drive tracks the position of the master drive measuring the difference between the two positions.

3. I think you could also consider an arrangement of the slave drive that implements the tension measurement (and control) in your device (see the
postings on tension control).

Dr. Igor Boiko
Consulting in Control is available
[email protected]
Tel: 1-403-294-2745

Bob Peterson

Sounds excessively complicated to me. In the first place, why do you need two motors? Getting two motors to run at the same speed is not difficult, but not trivial. If your PLC has built in electronic line shaft capabilities, it might even be fairly easy to implement. But an even easier solution is to use a single motor and run a shaft to drive the other side. With a small motor like this, my guess is your torque requirements are low. You probably also could get a cam or lever feed mechanism, or maybe a cylinder to drive the slide that would work better then this, and with less pain.

A lot of these decisions come down to the application, and with so little information given its not easy to make suggestions.

Bob Peterson
This will be difficult to do with a PLC. Are you familiar with motion control concepts? If so, then you need a position feedback loop with proportional gain only. Both motors should be given the same command, accel rate, decel rate... You may need velocity feedforward also. You will also need to tune and calibrate both drives to the same settings, possibly with a 'scope.

Good luck. It can be done, but not easily.

Bill Sturm
Cannot agree with that. The proposed control is very sensitive to the motor parameter and load variations. In practice, such a system would work very poorly (see my comments above). If we want to control the difference of rotor
positions we need to CONTROL THIS DIFFERENCE but not to obtain it as a result of the control of two separate motor positions. The input of one of the motors should be the sum of the control command (common for both motors) plus the signal proportional to the difference (or even an integral of it) of the rotor positions. Completely agree with another recommendation: apply very little I-action or don't apply at all within your control loops. Position control loop has an integrating property within itself.

Dr. Igor Boiko
Consulting in Control is available
(including modeling, simulations and control design)
[email protected]
Tel: 1-403-294-2745

Cameron Anderson

Servo or stepper would be a better way to go, will run on 12VDC too...but if you need to use the 12VDC motor you will need some sort of position feedback. You will either need an encoder on the back of both motors or use liner pots for a 0-10V analog position feedback.

You will need a controller that can bring in the feedback to close the position loop. You said it is for the automotive industry. Sliding car doors?
Convertiable Tops? Some "New Technology?" (Did you read that post?) Your probably best having a custom motor/control company devloping a board for your needs if the volume is there. I'm sure there is a dc control board out there already doing this.

-Cameron Anderson
Motion Control Specialist
Are your drives regenerative? Which quadrant are these drives running in?
You could input your PWM into a freq/voltage converter option component on your chosen isolated
drives. Since the motors are mechanically linked, you would need to consider a torque following concept. This would ensure both motors are producing the same current draw.

If the motors are mechanically linked, then you could get by with just one encoder, but don't
know about your regulation factor.

The encoder feeds an input counting module, then the plc takes the data and then converts it into
a PWM, then sent to a F/V converter. Technically it could work, but your percent of regulation
could be highly effected.

Another viable alternative would be servos. You can better guarantee tighter regulation between
the two motors, but mechanically linking them would not be necessary.

Good luck to you!