Go Down

Topic: Controlling a heater using PWM and MOSFET (Read 2832 times) previous topic - next topic

JimG

Please forgive not posting a schematic, but this is question is pretty general, I think.  I am looking for an alternative to phase angle control so I can avoid having to detect the zero cross of the AC.

What I would like to do is control the output of an 800W heater using a power MOSFET (IPP50R350CP ?).  My idea is to use four diodes (1N5404 ?) to rectify 120VAC/60Hz mains and perform switching using a MOSFET on the low side of the heater.

I would feed a 1200Hz PWM signal to the gate of the MOSFET from pin D3 of an Arduino, passing it first through an optoisolator (4N35 ?).

The way I visualize this working is that each "hump" of the rectified AC power would get chopped into 10 slices of nominally 0.83 mS each.  Within each of those slices, the PWM duty cycle would switch on the MOSFET for some fraction of 0.83 mS, thereby controlling the average power to the heater within acceptable tolerances.

Where are the flaws in this idea?

Jim



TC4 Open Source Digital Thermometer and Temperature Controller
http://code.google.com/p/tc4-shield

dc42

#1
Sep 04, 2011, 06:48 pm Last Edit: Sep 04, 2011, 06:53 pm by dc42 Reason: 1
That solution will create a lot of interference on the mains because of the frequent switching of a high power device other than on the zero crossing. As the device is a heater, you can switch it much more slowly. I would use a zero-crossing SSR to control the heater and program the Arduino to switch it on and off with a cycle time of maybe 5 seconds.
Formal verification of safety-critical software, software development, and electronic design and prototyping. See http://www.eschertech.com. Please do not ask for unpaid help via PM, use the forum.

liudr

I have the same concern. Fine control of a heater can be done with a variable voltage supply. The voltage supply acts like inverting amp to take an analog voltage control signal and amplify to the right voltage range and power the heater with this output. Then you can run a PID routine on the system to maintain temperature.

JimG


That solution will create a lot of interference on the mains because of the frequent switching of a high power device other than on the zero crossing. As the device is a heater, you can switch it much more slowly. I would use a zero-crossing SSR to control the heater and program the Arduino to switch it on and off with a cycle time of maybe 5 seconds.

Yes, you are correct.  Switching with a cycle time of 5 seconds does work well (I am actually switching it at 1Hz now, but have also used longer cycles successfully). 

The problem I'm trying to solve is the annoying dimming of lights that share a circuit.  The line voltage drop caused by the heater switching is small, but easily noticed with incandescent lights.

Is there an inexpensive way to filter the interference?

Jim
TC4 Open Source Digital Thermometer and Temperature Controller
http://code.google.com/p/tc4-shield

JimG


... Fine control of a heater can be done with a variable voltage supply. The voltage supply acts like inverting amp to take an analog voltage control signal and amplify to the right voltage range and power the heater with this output....

I think I understand.  Run the PWM signal through a low pass filter to get analog control voltage, and then amplify, right?

Where can I find schematics or other information for something that can handle my power requirements (800W)?

Thanks.

Jim
TC4 Open Source Digital Thermometer and Temperature Controller
http://code.google.com/p/tc4-shield

liudr

I have been using Kepco power supplies for this exact application. They are not cheap. Mine is about less than 300W. Very sure they have rack mount supplies in your range. Again price isthe main issue.

JimG

I appreciate your warnings -- thanks. 

But the voltage drop created at the outlet by the 7A load is actually pretty small.  Once upon a time I ran some numbers and concluded that the drop could be explained by nothing more sinister than the resistance x length of the wires going from the outlet to the basement subpanel to the main panel.  But I will repeat the measurements -- just to be sure.

It is surprising how small a voltage drop becomes noticeable in an overhead incandescent light when it is on a regular cycle.

Jim
TC4 Open Source Digital Thermometer and Temperature Controller
http://code.google.com/p/tc4-shield

dc42

#7
Sep 04, 2011, 09:36 pm Last Edit: Sep 04, 2011, 11:06 pm by dc42 Reason: 1
If you are sure that your mains wiring meets the appropriate standards, and you don't want to get it replaced to reduce its resistance, how about replacing the incandescent light by something that is less sensitive to mains voltage? Such as low voltage LED lighting fed from a regulated supply.
Formal verification of safety-critical software, software development, and electronic design and prototyping. See http://www.eschertech.com. Please do not ask for unpaid help via PM, use the forum.

JimG

Of course, that makes perfect sense.  Or, I could use one of the phase angle control SSR's I have on my shelf.

But for a while I've been curious about the PWM/MOSFET idea I described above and wanted to pursue it a little further, preferably without catastrophes.  If it can be made to work, I have many other projects to apply it.

Jim
TC4 Open Source Digital Thermometer and Temperature Controller
http://code.google.com/p/tc4-shield

dc42

I've no doubt it can be made to work, but preventing it from interfering with everything else in the area and on that mains circuit would be a major problem. What do you see as the advantage over a phase angle SSR?

Have you tried using a zero-crossing SSR and switching it on/off potentially on every cycle of the mains? For example, when you want 50% power, instead of 0.5 sec on then 0.5 sec off (which might give a noticeable flicker), turn it on for 1 cycle, then off for 1 cycle, then on for 1 cycle etc.
Formal verification of safety-critical software, software development, and electronic design and prototyping. See http://www.eschertech.com. Please do not ask for unpaid help via PM, use the forum.

JimG


I've no doubt it can be made to work, but preventing it from interfering with everything else in the area and on that mains circuit would be a major problem. What do you see as the advantage over a phase angle SSR?

The phase angle SSR's I can afford are pretty non-linear (2-10V input), particularly at low output levels.  So tuning the PID loop for good performance is difficult since the heater runs at around 6% duty cycle at steady state.  And these SSR's are still fairly pricey.


Have you tried using a zero-crossing SSR and switching it on/off potentially on every cycle of the mains? For example, when you want 50% power, instead of 0.5 sec on then 0.5 sec off (which might give a noticeable flicker), turn it on for 1 cycle, then off for 1 cycle, then on for 1 cycle etc.

Haven't tried this yet, but I think it might turn out to be the best solution overall.  I have some demo code for this approach (somewhere) that apparently succeeds without needing the arduino to perform zero cross detection.

Jim
TC4 Open Source Digital Thermometer and Temperature Controller
http://code.google.com/p/tc4-shield

Go Up