Techniques for driving inductive load, e.g DC motor, with PWM and constant current

I'm having trouble getting full torque out of a DC motor at anything other than full speed with a PWM driving circuit.

Assuming the problem is inductance of the coils, what can be done besides decrease the driving frequency?

What is usually done? Nothing? If something, what?

I was thinking of using a constant current source, but at the beginning of each pulse, this would apply a voltage across the coils higher than the rated voltage. So, two questions:

Is applying a higher voltage OK? Or would it have to be a constant power source, rather than a constant current source? Or despite the counter-emf of the coil, is any voltage applied beyond specs going to reduce life or safety of the motor? And would the additional circuits have to be active, or would some clever passive circuit increase the voltage when each pulse energises the coils, without even needing a higher voltage power supply?

@Mark is correct, you can run from a higher voltage if it is available. This will mean running with PWM all of the time.

However, if you are wanting to run near full torque and still be able to run at the top speed at a given voltage, try using a fixed "off" time in your PWM instead of playing with the duty cycle. Trigger your "off" pulse from a threshold against your current sense. When operating properly, the number of pulses per cycle will decrease as you go and you will be able to get down to a single pulse per cycle. During the "off" cycle, switch off the high side driver and switch on the complementary low-side driver to give all that current someplace to go. You can narrow down the fixed pulse width and get as close to full torque as you need.

Be aware that with this approach, the motor will run at full speed until the load is applied, then it will run at your specified torque. So it is a torque control rather than a speed control.

Torque is directly proportional to current. So if you want to control the torque, you need to close the current-loop.

Higher than the rated voltage is fine, as long as you don't exceed the breakdown voltage (determined by the insulation). I typically drive motors from a 160 VDC bus, regardless of their rating. I just need to be sure I don't exceed the current limits (peak and continuous) or temperature limit.

A higher voltage allows for better speed control, as you can easily counter the BEMF at maximum rated motor speed.

At full speed (which is only achieved when the motor is running free) torque is zero - so I think what you really mean is that you only get maximum torque at 100% PWM.

Torque is proportional to current, but you may wonder why current drops when the PWM ratio is reduced. The reason is that the average motor voltage drops, and maximum current draw is equal to voltage divided by resistance (at stall, when there is no back-emf so all the voltage appears across the resistance).

At 'full speed' (100% PWM) the motor voltage is highest, so if you want maximum torque you have to apply 100% PWM. But perhaps you want the motor to spin slower and still get high torque? In that case you need to increase the PWM ratio under heavy load.

One way to maintain full torque capability at low speed is develop a negative feedback loop based on rpm, which 'cancels out' the current limiting effect of the motor's internal resistance. Speed drops as loading increases because the higher current causes a greater voltage drop across the resistances in the circuit. Increasing the voltage (by raising the PWM ratio) compensates for this loss while it keeps the rpm constant.

Is applying a higher voltage OK?

Generally not. The motor is rated for a particular voltage based on speed and power loss. At higher speed there is more risk of bearing failure, excessive brush arcing and thrown windings (in a brushed motor) or thrown magnets (in a brushless motor), and higher magnetic losses. If you want to run at the same speed range as before then you must lower the PWM ratio - and you are back where you started except now you have higher switching losses.

Bottom line - if you are getting sufficient torque and rpm at 'full speed' (100% PWM) on your present setup then there is no need for higher voltage. If you aren't, and you would need to exceed the motor's voltage rating to get it, then you need a more powerful motor. If you already have more rpm than you need then consider using a gearbox, which trades speed for torque.