![]() |
How do you sync multiple motors?
Our team is playing around with parts from last years robot and have been experimenting with multiple motors and 4 wheel drive but we need to synchronize the motors.
Is there an easy way to do this so that the motors on each side are running at the same speed? We have one victor per motor and the victors per each side are sent the same PWM data. Is this just a matter of calibrating the victors? Please advise Thanks |
Re: How do you sync multiple motors?
Well if your willing to get more parts, encoders work wonders on syncing motors to run the same speed. As far as I know, if you don't buy any more parts, I don't think you can get them EXACTLY the same. because no motor is exactly the same.
Someone correct me if I'm wrong though :P |
Re: How do you sync multiple motors?
You could use encoders or a gyro to solve this problem and ensure that your drive straight.
|
Re: How do you sync multiple motors?
Quote:
This whitepaper from Team 33 provides an excellent guide to setting up a gyro. |
Re: How do you sync multiple motors?
I would definitally suggest the gryo. It is quite a bit easier to use becuase you don't need to use interupts in the programing.
However, either route will take a lot of programing to get to work correctly. Alex |
Re: How do you sync multiple motors?
Quote:
|
Re: How do you sync multiple motors?
If the motors that are on the same side are of the same type, and you are feeding them the same PWM values (you could use a Y-cable from a single PWM output to make sure of this), and your Victors are both calibrated properly, then any difference between the speeds of the motors can be considered negligible and won't have an impact on performance.
Clarification edit: This answer is assuming the original question is about synchronizing the speeds two motors on the same side of the robot. |
Re: How do you sync multiple motors?
Quote:
The solutions presented previously work great. Whether you use encoders or a gyro, they essentially provide feedback to your program on the speed each wheel is turning so that your program can dynamically adjust the pwm values to maintain a desired setting. In the case of going straight, your program would make sure that each wheel is turning the same speed which ultimately ensures you drive straight when you want to drive straight. Another sort of wacky way we've played with works, but is more useful as an exercise than a practical way of controlling your robot. After we put our robot together, we used a strobelight tachometer and got the wheel speed of each wheel at each PWM value. We input this data into a spread sheet and plotted the results to visualize the curve. These data form the power curve for each wheel and includes losses to the power train. From this you can calculate an equation for each side that coverts pwm value to speed so that each wheel recieves the appropriate pwm input for a desired wheel speed. While this worked and was interesting academically, it isn't likely to last for long. Changes in the drive train would eventually invalidate the curves. Feedback mechanisms (Gyro/encoders) coupled with PID code work the best because regardless of wear and tear on your drivetrain, or even replacing entire components, your program will still compensate dynamically. |
Re: How do you sync multiple motors?
Quote:
Alex |
Re: How do you sync multiple motors?
Quote:
Now, if it's two different motors on the same side, you've got about 30 days to start designing a gearbox so they'll be the same speed. |
Re: How do you sync multiple motors?
Quote:
We have two motors on the right side of the robot and two motors on the left side of the robot. This is a 4 wheel robot and each of the four wheels is driven by it's own motor. First we would like to make sure that the wheels on each side are operating at the same speed. We have seen that even though both motors operate from the same PWM values, each motor tends to have unique characteristics and can operate at slightly different speeds. This can cause slight binding when both wheels on one side of the robot are not "in sync" speed wise. We have calibrated the victors to our joysticks and this has helped tremendously. Second, we would like to ensure that both sides operate at as close to the same speed as possible so that the operator doesn't have to compensate much with relative joystick positioning to make the robot track straight and true... Hope that the above description is not too ambiguous... thanks |
Re: How do you sync multiple motors?
Ok so to recap what people more experienced than me said here:
Regarding syncing two wheels on the same side, you can:
Regarding syncing the left wheel set to the right wheel set, you can:
Good luck and don't hesitate to ask for clarification about anything or for more help! -Leav |
Re: How do you sync multiple motors?
Has anyone here tried using the current sensors to do load balancing? If so, did it work well?
The basic concept would be to pull current information off of each motor, and use it to approximate the torque per motor. Then adjust the voltage sent to the motors so that they are contributing equal torque. This only syncs the left side with itself and the right side with itself. It does not handle syncing left to right. For the experts here: Can you please comment on how this balancing scheme might be impacted by motor variation? drive train variation? phase of the moon? |
Re: How do you sync multiple motors?
I think this would fall under the calibration idea, since as time went by the coefficient between the current and the speed would change and the whole system would go out of sync...
but that just off the top of my head.. the whole "breaking in" and "wearing out" effect i'm considering might only be significant to change the whole system by 0.5%, which means that the system would actually stay in sync for a long time... unless someone did this before and tested in thoroughly there is no real way to know this but checking! -Leav p.s. you would need to check what happens when there is maximum current and zero speed (i.e. the motor stalled [e.g. a pushing match]) p.p.s don't you love recursive brackets? :) |
Re: How do you sync multiple motors?
Quote:
One of the most significant characteristics of any electric motor is its unloaded (free) speed at rated voltage. Let's take the CIM motor as an example: per its manufacturer's data sheet its shaft will spin freely at 5310 RPM when 12V dc is supplied to its electrical terminals. Zoom in to view the table in the lower left corner of the data sheet linked above, and you will see that the manufacturer also states that the variation on the given free speed is +/- 10%. This variation is caused by differing strengths of the motor's permanent magnet material from one batch to the next, and by angular misalignment of the motor's commutation brushes with respect to those magnets. The graphs shown next to the table on the data sheet linked above indicate that the CIM's current draw is proportional to the torque developed on its shaft. The constant of proportionality (i.e., the slope of the current vs. torque line on that graph) is determined by the same design factors, and the same variations, that determine the motor's free speed. So the stated +/- 10% free-speed variation applies to torque-per-Ampere also. Because the causes of the variation are the same, using current sensors to 'correct' for free speed variation is probably not going to be very effective. |
| All times are GMT -5. The time now is 05:42. |
Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Copyright © Chief Delphi