Mixing Jaguars and Victors

Is there any danger in using one Jag and one Vic to control a pair of CIMs that are connected to the same ToughBox? Using C++ four-motor Tank Drive from WPILIB.

Bad idea. The jaguars and Victors have different output curves, and the Victors are much more non-linear, so the motors will not be running at the same speeds at low speeds. Software makes no difference.

That was my concern, I will find a work-around. Thanks!

Actually, I don’t think this would be as bad as you think. The motors are mechanically coupled in the toughbox, so they will run at the same speed regardless. The only issue would be unequal sharing of the load, but I suspect that due to differences in motors the load is never perfectly balanced, even with identical speed controllers. They key obviously is to have the Victor and Jaguar run the motors in the same direction :slight_smile:
On that note, I would say that the way things are done in FIRST is far from ideal. In industry, you would typically see a single motor sized large enough to handle the load. Or you might come across multiple motors connected in parallel to the same driver. Or motors electronically synchronized with encoders. But having separate drivers control two mechanically coupled motors is really asking for trouble. All it takes is a wrong connection or incorrect code to run the motors in opposite directions, which would stall both of them. And when motors stall, bad things happen.

If you use 2 Jags with CAN, you can balance the load by balancing the current. You could close the loop on speed for motor#1 and close the loop on current for motor#2 (to make motor#2 match motor#1 current). With some filters and careful tuning I’m guessing this could be made to work well.


Precisely. We really ought to have some examples in WPIlib to do this.

I’d recommend against the Jaguar + Victor on one toughbox scenario. If you command e.g. 50% forward and hit free speed, you will have a motor/generator situation with potentially large currents. I don’t believe it will destroy either controller, but it will be extremely inefficient.

How could that work seeing as they always spin at the same speed, and thus have the same encoder reading.

Maybe they aren’t connected using something that can’t slip (like a gearbox–if you can cause that to slip, you’ve destroyed it).

He’s not talking about FRC applications. What if you had two starter motors for your car, say, and they had slightly different turn speeds?

You have to be careful with an arrangement like this. If motor #2 is a little bit less efficient than motor #1 (and no two brushed DC motors are exactly the same), you can get into a positive feedback situation. Motor #2 could draw an equal amount of current to motor #1 but at a lower speed, which drags on motor #1, which forces #1 to draw more current to maintain its speed, which causes motor #2 to draw more current, etc. That said, there are some things you could do to help limit this behavior.

Ideally, you would match the speeds of the motors and let the loads balance themselves according to output torque at that operating point on both motors’ curves. However, that is easier said than done (due to difficulties in measuring each motors’ free speed at a given voltage, for example).

If permitted, one way to do nifty load balancing is to put both motors in a series circuit - when one motor gets overloaded, its back EMF decreases and more electrical power becomes available to the other motor (an electronic differential).

Imagine a 4WD robot where each wheel is independently driven without being slaved to any other (for example, a mecanum or crab drive). To drive straight you want to match all 4 motors to each other, but there is a “slipping” clutch between each of them (your tread material!).

It doesn’t work that way, Jared. The motors are connected to the same toughbox so they are always at the same speed. Motor2’s control loop adjusts Motor2’s PWM so that Motor2 has the same current as Motor1. If Motor2 is less efficient than Motor1, that simply means that Motor2 is providing slightly less torque than Motor1 (at the same speed and current). It does not mean that Motor2 “drags on” Motor1; it is in fact assisting Motor1. With proper tuning and filtering the loops can be made stable. If you have access to Simulink/Matlab or some other dynamic modeling software, try it and see for yourself.

The two motors in question are connected to the same toughbox, so they are always at the same speed. If connected in series, they will both have the same current. So the scenario “one motor gets overloaded and its back EMF decreases and more electrical power becomes available to the other motor” does not occur.

Connecting two 12-volt motors in series, and then powering them with a 12 volt supply reduces the efficiency of the motors.


They are always at the same speed, yes. Jared was talking about efficiency, not necessarily speed.

For some reason I completely ignored the fact that the motors were mechanically linked at their outputs…

In theory, you might be able to write a function to map the victor’s inputs to that of the jaguar (so that 50% throttle on one will be the same as 50% on the other).

One little item no one has mentioned here is the switching frequency of the individual controllers. The Victor is 150 Hz while the Jaguar is 15 kHz. At 50% throttle the Jaguar would switch an additional 50 times during the period that the Victor is turned off. Although the motors are linked and there would certainly be some flywheel action provided by the transmission and coupled mechanism, I would suspect this would be bad for the Jaguar. The net result on the mechanical output is dependent on the stored mechanical energy in the rest of the system. As to differences in linearity, the two motors are coupled and the result would be a combined speed slower than expected. As the two motors both will supply power, it is a matter of which is providing more power. In this case I believe the Victor supplied motor will be contributing the majority of the power below about 75% throttle. At full throttle there is little difference.
In the case of the series wired motors, the current is theoretically the same in each motor. However, the production variations in inexpensive motors will affect the output power vs input current. The result is that the power output of the transmission is never fully shared by each of the motors. One is always providing more power than the other.

I think everyone agrees with this.

That depends on what you are “expecting”. If you are closing the loop on speed, you’ll get the speed you expect.

If you are running open loop, you will get the speed you expect, if you take each controller’s performance into account in the calculation.

Unless you correct for this in software, as Nick suggested in his earlier post:


It will have no effect on the Jaguar at all.

The electrical and mechanical dynamic response through the path from the Victor’s output, to CIM#1, through the toughbox, into CIM#2, and back out CIM#2’s power leads to the Jag is so highly attenuated at 150Hz that the Jag will not even see it.


No where did I suggest in my post that any of my statements were predicated on a closed loop response.

Hi Al,

Neither did I.