Regulator between battery and motor driver

I’m building a small and simple four-wheeled robot. I will be using a single battery, two motor drivers (mosfet H-bridge) and four motors. I haven’t decided on the exact components yet, but say the battery has ~11 V and the motors are 6 V.

I know connect the battery directly to the motor drivers and then use a PWM duty cycle less than 6/11 (~60%) and it should be safe for my motors. What worries me is the reduced voltage of the battery as it discharges. This will cause the power delivered by battery given a 60% duty cycle to reduce over time. I have come up with a few alternatives to deal with this:

1. Linear regulator between battery and motor driver
BAD idea because it will be very energy inefficient and dissipate a lot of heat.

2. Switching regulator between battery and motor driver
I believe this is a good idea. Except for some extra money spent and
extra components, I don’t see any obvious disadvantages. This is the
option I’m leaning towards.

3. Measure the voltage of the battery from the microcontroller
Another good idea I think. If I know the voltage of the battery I can adjust
the PWM accordingly.

4. Measure the motor position and calculate the speed
Apart from the need for an encoder on the motor, I don’t think this is
viable because my motor won’t run at constant speed. So I can’t really
derive anything useful from estimating the motor speed for a given PWM?

5. I don’t do anything at all
Maybe I’m making this a bigger problem than it really is since I have had a hard
time finding anyone discussing it. Maybe there are other effects at work here that
makes this a minor problem? But if I’m right then the performance of most smaller
robots I have seen should decrease as the battery discharges.

Any other options I haven’t thought about?

Recharge the battery more often? I don't think most people run small robots for long enough at one time to worry about the reduction in power and if you get used to charging the battery fairly often you'll never notice it either.

Steve

The answer is 5. In power electronics try to avoid anything that wastes power. A motor and motor driver are
effectively a switching regulator so adding another one is wasteful. You will need to monitor the motor speed or
current to prevent overdriving it long-term, but a 6V motor can handle full 11V for short periods anyway. If you
are monitoring the robot's speed, just limit it to the max speed of the motor at 6V and it should be fine - you'll have a bit more torque in reserve with the 11V supply. Monitoring the speed allows you to compensate for battery voltage changes too of course.

Motor voltage ratings are based on the longevity of the motor's moving parts (keeping wear and tear under
control), as voltage controls the speed. The current is proportional to load torque, and if too high will overheat
the windings (at 11V that will happen much quicker than at 6V, but stalling a motor continuously at its rated
voltage is usually going to cook a DC motor).

MarkT:
The answer is 5. In power electronics try to avoid anything that wastes power. A motor and motor driver are
effectively a switching regulator so adding another one is wasteful. You will need to monitor the motor speed or
current to prevent overdriving it long-term, but a 6V motor can handle full 11V for short periods anyway. If you
are monitoring the robot's speed, just limit it to the max speed of the motor at 6V and it should be fine - you'll have a bit more torque in reserve with the 11V supply. Monitoring the speed allows you to compensate for battery voltage changes too of course.

Motor voltage ratings are based on the longevity of the motor's moving parts (keeping wear and tear under
control), as voltage controls the speed. The current is proportional to load torque, and if too high will overheat
the windings (at 11V that will happen much quicker than at 6V, but stalling a motor continuously at its rated
voltage is usually going to cook a DC motor).

Good info. But it's not the over-driving I was worried about, it's the fact that my motor performance will decline as the battery voltage goes down. But as slipstick said, this is probably nothing I have to worry about.

And yes adding a switching regulator would be wasteful (though switching regulators are quite efficient?), but it would solve my problem of declining battery voltage right?

I've addressed these points already.

Monitor and regulate your motor speed, its all there.

MarkT:
I've addressed these points already.

Monitor and regulate your motor speed, its all there.

Okay but then I don't understand you, would you mind elaborating?

My robot is not going to drive at constant speed all the time. It's going to accelerate, de-accelerate, and
push objects around. Therefore I don't think speed is a reliable measurement.

An example:
My robot may push an object of mass 1 kg when the battery is fully charged with 11 V.
I apply PWM to "get the voltage down" to 6 V which translates to a certain motor torque. But now
if I push that same object once my battery has dropped to 10 V, my corresponding voltage with
the same PWM will be lower than 6V and therefore the torque will also be lower.

I don't see how measuring the speed can help me in that example. How can I compensate if I
don't know what the speed should be? The load will vary. Neither do I see how current
limiting can help me besides preventing me from applying too much current (torque).

However, I can see how a switching regulator can help me. It would supply my motor driver with a
consistent voltage level so a given PWM would always translate to the same voltage which in turn
would translate to the same torque (if the load is the same). Yes, it might take up some space, add
noise, drain battery and cost some money, but it would make the torque consistent?

Once again, I know it may not matter and that I can just charge my battery more often, but
this is for my understanding.

"I apply PWM to "get the voltage down" to 6 V which translates to a certain motor torque."

Well, that sounds maybe 20 deg. off plumb. You can get a 6v UBEC voltage regulator off of ebay to supply each motor driver with 6v from the 11v battery. You don't mention the voltage drop thru the motor driver, so that may need to be addressed also.

Is it a lipo battery? If so, what's it's 'C' rating? That's the important factor unless the voltage is sufficiently high to cause problems with your motor's insulation, or heat resistance. In my (admittedly somewhat limited) experience, using twice the rated voltage results in higher rpms, increased torque as well as increased hardware temperature that can be mitigated with a sink.

If you are going to use a regulator, be sure to have sufficient capacity for spikes and drops that doing realtime adjustment of a on-off-on-off.. motor will produce.

nembedded:
Okay but then I don't understand you, would you mind elaborating?

Monitor the speed and thus control the speed. If its going faster than the nominal top speed slow
it down, if slower, speed it up - i.e. use a control loop.

Make the nominal speed the same as the 6V motor speed and everythings happy. Till the battery drops
below 6V you'll never even know (perhaps acceleration might become more sluggish a little).

zoomkat:
"I apply PWM to "get the voltage down" to 6 V which translates to a certain motor torque."

Well, that sounds maybe 20 deg. off plumb. You can get a 6v UBEC voltage regulator off of ebay to supply each motor driver with 6v from the 11v battery. You don't mention the voltage drop thru the motor driver, so that may need to be addressed also.

What is "20 deg. off plumb"? UBEC is basically just a switching regulator right? No I guess there will be some voltage drop in the motor driver I have to account for, but I'm going to use mosfet drivers so shouldn't be that much.

ChrisTenone:
Is it a lipo battery? If so, what's it's 'C' rating? That's the important factor unless the voltage is sufficiently high to cause problems with your motor's insulation, or heat resistance. In my (admittedly somewhat limited) experience, using twice the rated voltage results in higher rpms, increased torque as well as increased hardware temperature that can be mitigated with a sink.

If you are going to use a regulator, be sure to have sufficient capacity for spikes and drops that doing realtime adjustment of a on-off-on-off.. motor will produce.

Yes, I'm planning to use a LIPO battery, not decided which one yet. Yes my understanding is that I can overvoltage the motor a bit as long as I'm not overdoing it and handle the high currents (e.g. current limiting, heat sink etc.) and can accept a shorter lifespan.

By sufficient capacity, you mean capacity of the battery or capacitors? both I guess?

MarkT:
Monitor the speed and thus control the speed. If its going faster than the nominal top speed slow
it down, if slower, speed it up - i.e. use a control loop.

Make the nominal speed the same as the 6V motor speed and everythings happy. Till the battery drops
below 6V you'll never even know (perhaps acceleration might become more sluggish a little).

What nominal speed? You mean the speed when I apply the 6 V and the motor is not loaded? How would that help me if my load is varying?