I have a three wheeled vehicle in a tricycle configuration attached to a fixed frame. Each wheel is powered by an AC electric motor. The AC motors are fed by motor controllers that take a speed demand. The single main wheel (which is also steerable) has a lower gear ratio than the rear wheels so it has a theoretical higher top speed.

When the vehicle drives in a straight line each of the motor controllers are given identical speed requests. Unfortunately feedback from the controller indicates that some motors are pushing while some are pulling. In particular we have a common scenario where one rear wheel is pushing while the front wheel is trying to slow down. The third wheel will often have almost no current.

What can be done to make all three motors work together and avoid situations where they fight? Is there a way to change the request to the motor controller to encourage the drives to work together? Do we have to switch from a speed request setup to a current control setup? If so what is the appropriate way to control the motors then?

Let me know if I haven't included any important details and I will update my question.

  • 1
    $\begingroup$ Is there a single controller with a single setpoint that drives the three motors, or three setpoints and three feedbacks? If the latter, change individual setpoints whenever feedbacks are too different. $\endgroup$ – James Waldby - jwpat7 May 8 '13 at 21:57

You're facing a problem that's normally solved mechanically, with 2 or 4 wheels, by a differential gearbox. Technically, you'd be able to adapt a 4WD differential to a 3WD case, but you'd have to use a single motor for that.

The concept you're looking for is an electronic differential, although I'm not sure where to find resources on building and calibrating your own. It might be as simple as switching your motor controllers to just set identical torque, based on a desired average speed between the 3 of them.

The bottom line, though, is that you can't expect to set 3 motors to the same speed and have them follow 3 paths of different lengths while maintaining the same distance from each other.

| improve this answer | |
  • $\begingroup$ Hi Ian. Thanks for the response. The expectation isn't for them to necessarily work perfectly together. Some loss is definitely expected and I would also expect there to be cases where one motor is doing more work than the others. What I would like to figure out how to avoid is the motors actively fighting each other. I'll look into the concept of an electronic differential though! $\endgroup$ – ApockofFork May 8 '13 at 19:30

You need to command your motors by torque, and not speed

then with n motors, you get n vectors, so you now get 1 vector you regulate according the speed, and you compute the torque for each three motors.

To control an AC motor by current you need an inverter capable of Field Oriented Control, and for the vectoring an Arduino could be fine

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.