Driving a 250W motor using PWM - Page 1
Forum section: electronics / projects

author: JoeP
author_rank: Contributor
timestamp: October 31, 2018, 10:11:28 am
content: I've been trying to drive a 250W (24V, 13A) motor from a pwm signal using a mosfet. So far, every time I turn on the circuit, the pwm starts with a low duty cycle, then I slowly turn it up, and then the mosfet seems to blow and the motor whizzes out of control. In the most recent attempt, it worked perfectly when the motor had little load, however when the load was applied, the same thing happened. I'm using a mosfet rated for 50A, and a flyback diode rated for a constant 3A or a 150A spike. My current hypothesis is that the diode isn't properly getting rid of the voltage spike, caused by the fact that I'm using a very low frequency pwm (around 10Hz). In my next attempt, I'm planning to using a frequency of 1kHz.What I want to know, is whether this is a likely cause of the problem, and is there anything I should be adding to my circuit (such as a smoothing cap) to stop it happening again.

author: Wolfram
author_rank: Frequent Contributor
timestamp: October 31, 2018, 10:30:01 am
content: At very low PWM frequencies, the current is not averaged by the inductance of the motor, so the motor will potentially draw its full stall current when starting from zero speed. A higher PWM frequency will help with this, but the main problem is that you're not controlling the current to the motor. If you want to make a solution that doesn't kill the MOSFET upon a mechanical overload, you need an active current limiting circuit. This can be as simple as a current sensing circuit that terminates the present PWM pulse when the MOSFET current reaches the maximum safe value.In addition, you need to have a reasonably low impedance loop between the filtering capacitors, the freewheeling diode and the MOSFET. The inductance of this loop determines how much energy the MOSFET has to absorb in the form of turn-off spikes. A picture of your setup will answer more questions than a text description of what you're doing. Also note that the freewheeling diode can end up carrying a considerable fraction of the motor current (it will see an average current of Imotor*(1-(duty cycle)) if the switching frequency is high enough to keep the motor current continous.

author: Pinkus
author_rank: Frequent Contributor
timestamp: October 31, 2018, 11:00:23 am
content: For a quick and dirty solution I would:1) I would add abidirectionalsuppressor diode with 25.6 volt just to make sure that there are no transients etc. killing the Mosfet. For the first test add one directly at the motor and another at the Mosfet.2) Then a low cost protection variant would be to add a 0.5 or 1 Ohm power resistor into power cable. This will limit the maximum current to a e.g. 24V/0.5 Ohm = 48A as a maximum. There might be a minimal power loss, but you probably will not recognize.Nice side effect: you can then use the resistor to measure the voltage across it with an oscilloscope - then you know how much power the motor draws.3) what about cooling of the Mosfet?

author: chemelec
author_rank: Contributor
timestamp: October 31, 2018, 02:01:16 pm
content: What is the Voltage Rating of you Mosfet?

author: schmitt trigger
author_rank: Super Contributor
timestamp: October 31, 2018, 02:06:40 pm
content: An oscilloscope here is your best friend, and if you have a current probe, an even better.Monitoring Vds and Ids simultaneously will provide you with extremely useful insight on what really is going on, instead of speculation.To ensure solid waveforms, trigger from the gate drive output.

author: Ian.M
author_rank: Super Contributor
timestamp: October 31, 2018, 02:30:11 pm
content: The locked rotor current of a DC motor can be an order of magnitude higher than the rated full load running current, so unless you have active current control that limits the PWM duty cycle during startup, braking and reversing, as motor acceleration is relatively slow compared to the timescales of the MOSFET's pulse SOA ratings, for a 13A motor you may well need something like a 150A continuously rated MOSFET. Whether or not it also needs heavy duty heatsinking will depend on how frequently the motor starts, stops or reverses.

author: schmitt trigger
author_rank: Super Contributor
timestamp: October 31, 2018, 02:48:13 pm
content: What Ian said. Your mosfet current rating should be at least that of the locked rotor rating.Large motors will most times provide that information. But if not, you can estimate it by carefully measuring the motor resistance with a DMM.Because the resistance will be *very low*, the DMM should at the very least have a measurement delta option, to null out the probe's resistance. But a 4-wire DMM is best.

author: JoeP
author_rank: Contributor
timestamp: October 31, 2018, 03:36:23 pm
content: Quote from: Ian.M on October 31, 2018, 02:30:11 pmThanks for the reply. How would I implement active current control? Would that not require a series resistor which would give off some serious heat? In the most recent test, the pwm had a duty cycle as small as I could make it, and was absolutely fine as I slowly increased it, up until a point when the mosfet blew. It hadn't started moving until then, so it could well be the current that blew it. I'm using a 5 degree/W heatsink, but the mosfet never got hot at all, even after breaking.Quote from: Wolfram on October 31, 2018, 10:30:01 amThe battery and the motor are fixed down about a meter apart, so I can't control the total length of wire. The diode is still in working order, so that shouldn't be the problem. It's a schottky diode with a forward drop of around 0.35V, in case that's relevant. I don't have any pictures at the moment - I may add some later.Quote from: chemelec on October 31, 2018, 02:01:16 pm60V.Quote from: Pinkus on October 31, 2018, 11:00:23 amIf all else fails, I'll probably end up doing this.Quote from: schmitt trigger on October 31, 2018, 02:48:13 pmMy motor came with next to no information about it; if I remember correctly, my multimeter gave a reading of about 0.3, but I'd have to double check to be sure.

author: schmitt trigger
author_rank: Super Contributor
timestamp: October 31, 2018, 03:44:03 pm
content: 0.3 ohm is *very close* to what ordinary meter leads measure on its own.Make sure you null the reading.

author: rstofer
author_rank: Super Contributor
timestamp: October 31, 2018, 03:52:08 pm
content: You didn't say which MOSFET you were using or how you were driving the gate. It matters...If the gate is slow to turn on and off (like a standard MOSFET driven by a uC), the MOSFET heats up during the turn-on and turn-off interval. Think of current as a trapazoid, slow turn-on, slow turn-off. When your PWM frequency gets high enough, the MOSFET never actually turns on, it spends all its time in the transition region where it acts as a heat generating resistor.Ordinarily, you would want the PWM frequency to be above the hearing level of 20 kHz. The MOSFET may not like this high value - think trapazoid. On the low end, 1 kHz might work well. 10 Hz is toggle switch range and the MOSFET sees full inrush at every turn-on.There is a reason that they invented MOSFET drivers. You really want to be able to dump AMPS into the gate if you want to switch in a short period of time. Be sure to read the datasheet if you buy 'logic level' MOSFETs. There are some gotcha's related to Vgsand it isn't necessarily true that a uC can drive the gate in a short period of time. It's no big deal if the MOSFET is an on-off switch, it matter a lot if the application is PWM.

author: JoeP
author_rank: Contributor
timestamp: October 31, 2018, 07:00:49 pm
content: Quote from: rstofer on October 31, 2018, 03:52:08 pmThe mosfet in question is this one:https://www.rapidonline.com/stp55nf06-mosfet-n-60v-55a-47-0530I'm driving it with a BJT, to boost the voltage up from the MCU logic output to 8-9V. I don't think the MOSFET is spending much time in the transition region, as it never got hot when in use. That said, I was using a 10Hz signal, so I can't be sure. I'll double check with an oscilloscope when I get round to replacing the broken mosfet with a better one (for which I'm thinking this will work well:https://docs-emea.rs-online.com/webdocs/0dcb/0900766b80dcb3bb.pdf).