![]() |
Encoders for Equalizing Motor Speeds
Hello all. I've read around a bit about encoders, but I haven't seen any advice on how to use them to equalize two motors' speeds. I have a lift powered by two motors. I'd like them to lower and raise at the same rate. However, they are slightly different, and manage to get very off from each other after a few runs.
Can I use encoders to solve this problem? If so, how? |
Re: Encoders for Equalizing Motor Speeds
Quote:
|
Unfortunately no....the motors are opposite each other on the robot, each controlling the z axis movement of the arms, so that we can lift the totes.
|
Re: Encoders for Equalizing Motor Speeds
Quote:
|
1 Attachment(s)
Attachment 18186
It's a bit hard to tell, but the two motors running on the lead screws at the front are what I'm talking about. |
Re: Encoders for Equalizing Motor Speeds
What motor controllers are you using? What encoders? Are encoders wired to the RIO or the motor controllers? |
I don't actually have the encoders on yet. They'll be AS5145Bs. I have Talon SRs, so I don't know whether I'll need to hook the encoders into them or the Rio. I've never used an encoder before.
|
Re: Encoders for Equalizing Motor Speeds
Quote:
Quote:
http://wpilib.screenstepslive.com/s/...control-system Then we can talk about control strategies to synchronize the actuators. |
Re: Encoders for Equalizing Motor Speeds
We had some trouble with a very similar encoder last year because our application made it difficult to get the magnet lined-up perfectly with the sensor on the encoder. If it is out of alignment, it will give bad values. If your application is similar, you may wish to use a potentiometer instead. The number of turns it would have to make could be a deciding factor, as continuous rotation potentiometers are expensive. Wiring and programming* are the same, so you can swap it out if you have a problem. We did.
*you will probably need to tweak the values, depending on the potentiometer you choose. |
Re: Encoders for Equalizing Motor Speeds
That's a tricky bit of hardware you have there. I'd seriously look into a way to mechanically link the two sides so they are synchronized automatically. Would there be room for a chain between them at the top, or at the bottom?
Failing a hardware solution, then encoders can work. Assuming the two sides start out in the same position, you need to "slave" one side to the other. Control one side however you want, and use its encoder value as the set point of an algorithm that controls the other side to get the other encoder to match. Since you're using lead screws, there won't be significant inertia in the system, so a simple proportional controller (drive the motor faster when it's far from target, and slower when it's close) ought to be sufficient. I'd actually add some "feedforward" so the second motor gets some of its control from the same signal that runs the first one. That should keep them close, and the leveling control algorithm just has to account for small errors. |
Thank you all for your advice here. The situation has changed. As of Saturday, we will only have one screw. So this issue has gone away. But thanks!
|
| All times are GMT -5. The time now is 10:28. |
Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Copyright © Chief Delphi