Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

DC motors speed synchronization issue

Status
Not open for further replies.

sysysy

Member level 3
Member level 3
Joined
Nov 11, 2010
Messages
56
Helped
2
Reputation
4
Reaction score
1
Trophy points
1,288
Activity points
1,801
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 the operating theory and how it work?

Thx.

Regards,

sysysy.
 

R u purchase both motor of same rpm .....
 
  • Like
Reactions: peg

    peg

    Points: 2
    Helpful Answer Positive Rating
Yes. both also same model and spec.
 

Even with two the same motors, and the same drivers, I don't think the car will go straight for a log time due to tolerances.

The only solution is to add a rotary encoder and an intelligent drive system (feedback loop). If your system uses a variable speed drive at the moment, you should process the actual wheel position or speed in your microcontroller (if available in your design) to set a new target for the desired speed.

Or using motors that react more or less by their own in a predefined way like stepper motors or BLDC-motors. Stepper motors are simple to synchronize, you just give the same pulses to both motor controllers. However they consume more power to do the same movements.

Stefaan
 

Thanks for the reply.

I am already doing the DC motor in the halfway, i dun think going to change the motor type now.

Anyway, may i know any idea to build a rotary encoder circuit by our own or just buy a IC instead of?

Finally, i just wondering how the theory work? is it the feedback signal will drive both the wheel move in same speed and RPM?

Thanks.


Regards,

sysysy
 

Another option would be a stepper motor, by which you can control both speed and position.
 

Finally, i just wondering how the theory work? is it the feedback signal will drive both the wheel move in same speed and RPM?

The feedback signal (pilses from the encoder) must be processed with an additional functional block in your system.

You need to count pulses, this gives you the angular position of the wheel.
If you look at the speed of the pulses, it gives you the speed of the wheel.

Normally, you should count the pulses, and derive the speed from that by for example calculate the difference between two positions after 10 milliseconds in time. This gives you the number of pulses from the encoder passed in that 10 millisecond interval, and so the angular speed of the motor.

I should develop the motor control independed for each motor first, this will give you an insight in this matter. And if you manage to do one, you can easily copy to make 2 of them. Further down the line you give the two motor controller the same reference speed, and there you go... Later on you can try some more sofisticated control loops that thake also the difference between the two motors into account if nessecary.

Do you have some experience with electronics? This is not something for the entry-level hobyist.

Stefaan
 

Thanks for the reply.

svhb,

Actually i already develop 2 of the dc motor up with controlled by L298 motor driver through PIC micro-controller.

When testing my motor, i found that both motor running speed have a slightly different. So,it really will affect my robot movement.

My problem now is dunno where to find the feedback decoder and externally add in to my whole circuit.

i search through the web, many dc motor in come together with the decoder (optical disc).

so, may i know, where can i get the decoder circuit and add in externally to my circuit?

i am really headache with this. If any suggestion, can share?

Thanks,



Regards,

sysysy
 

another solution i can suggest is by use PWM..let your driver motor circuit have a mosfet to receive PWM input..then do programming at micro-controller for PWM value..so you need to chnge the PWM value until you get a strait robot movement..
 

Attachments

  • motor.bmp
    88.8 KB · Views: 175

Hi lockman,

thanks for ur suggestion, The mosfet is it connected between the ground and the motor diode?

In my case, i'm using L298 motor driver to control my motor direction and turn on and turn off.

I have abit confusing, because i use 2 input pin and 1 enable pin to control 1 motor motion.
OK, before that i do test my motor driver input with the PWM and i see the speed changes.

But now my problem is, why the PWM signal is connect to the MOSFET that connnected btw gound and the motor diode?

can explain abit how does it actually work?

Thanks.


Regards,

sysysy.
 

sysysy,

If you already connected all signals from the L298 to the PIC, you can try PWM drive without completely changing your hardware.
Several pics have already a PWM hardware block inside. It depends a bit on how you connected the L298.

Can you post your schematic?

Stefaan
 

Regarding "feedback decoder", simply think of a disk with slits or holes cut into it at each motor shaft and a standard photointerrupter, connected to a PIC pin. At moderate pulse rates, the measurement can be processed in software without uitilizing specific hardware capture inputs. Design a speed controller reacting on the measurement.
 

Hi,

Following is the block diagram of feedback speed control, can anyone tell me what is the integrator act as and how it work?
Any recommended integrator chip?

**broken link removed**
 

ur diagram is a typical control system..error detector being phase comaparator....ok talking abt ur question u can use a variable resistor and a capacitor(not for commerical) or i remember u can design an integrator (which is a very good option) circuit using 741 op-amp(anyone similar to it which eliminates its problem of offset)...hope it helps:)
 

For reasonable operation, you would change the toplogy like below

 

there is some mistake in both diagrams,
it should be one reference to both driving circuits. and indivisual feed back chould use for both drive.
reference has positive effect means it increases the speed or set some speed although feed back has negative effect it decrease the speed integrator just simple add both signals and
result there algebraic sum which is always positive less then reference to drive the motor.
any op-amp like LM 741 or TL082 or same type can be used.
other idea is get some mechanical engineer help and try to drive both wheel with one motor.
good luck
 
  • Like
Reactions: FvM

    FvM

    Points: 2
    Helpful Answer Positive Rating
Hi,

Use the internal of a n old computer mouse (with a ball) inside you have the sensor and wheel for detecting rotation and speed.

succes
 

there is some mistake in both diagrams, it should be one reference to both driving circuits.
I agree, that individual speed control loops with a common setpoint are the better solution. The integral term of the control loop would also zero the position error.
 

i am also working on PWM... i have heard that even if we manage to control the speed of both motors. But the speed varies when the robot gets loaded and again then you have to calibrate your motor with PWM. Is that true?
 

With a true speed measurement, as suggested, the controller would compensate for any load changes.
 

Status
Not open for further replies.

Similar threads

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top