Society of Robots - Robot Forum

Electronics => Electronics => Topic started by: sysysy on December 02, 2010, 08:15:51 AM

Title: DC motors speed synchronization issue
Post by: sysysy on December 02, 2010, 08:15:51 AM
Hi,

I am making a robot car with 2 wheels that control by 2 independent dc motor.

In current stage, i'm having some difficulties.
i manage to control both of my dc motor moving forward, but the problem is how to synchronous their speed?

1 moving faster and another one slower.
Mean the both motor RPM is different?

Anyone can give me a solution, how to synchronous both motor speed?

Is it with using feedback encoder? if so, may i know any schematic and how the theory work?

Thanks.


Regards,

sysysy.
Title: Re: DC motors speed synchronization issue
Post by: Soeren on December 02, 2010, 09:26:11 AM
Hi,

[...] the problem is how to synchronous their speed?

1 moving faster and another one slower.
Mean the both motor RPM is different?
Assuming you use wheels of the same diameter on each side, yes.
But even a small difference in RPM would mean that it would be going in (large) circles.
How much is the deviation from a straight line on eg. 10m?


Anyone can give me a solution, how to synchronous both motor speed?

Is it with using feedback encoder? if so, may i know any schematic and how the theory work?
Yes, you need encoders on both wheels.
If you get more pulses from say the left encoder in a given time, you can slow down the left motor an amount like this:

  Left motor speed * [Number of pulses right] / [number of pulses left]

Since motor speed won't be a completely linear function of neither voltage, nor PWM duty cycle, you have to do this repetedly (how often will depend on the number of sgments on your encoder), but the error will be less with each iteration (unless you introduce a step function).
I don't think it would be necessary to involve a PID loop, but that's the next step towards a higher precision.