Thermal for >1 FET connected in parallel

Hi,

I need to connect 3 FET in parallel in the same Heat Sink and I would like to know if there is any way to easily configure this through a parameter or I have to connect three equal FET in the schematic?

Thanks in advance.

Hi @alefarri

Paralleling three discrete MOSFETs is generally not the best approach. In particular, if all three devices, or even just one of them, use an ideal On-resistance Ron, the entire current will flow through a single device.

The demo model “Three-Phase T-Type Inverter” demonstrates a recommended way to handle parallel devices. In the mask of the corresponding subsystem, there is a parameter called Number of parallel devices.

In the initialization section of this subsystem (Ctrl + M → Initialization), you can find the code that scales the thermal model according to this parameter:

if ~isnan(num_par_device) && ((floor(num_par_device) ~= num_par_device) || (num_par_device < 1))
  error('"Number of parallel devices" must be an integer and greater than zero.');
end


if(~isempty(therm_mosfet.Von))
	therm_mosfet.Von.i = therm_mosfet.Von.i*num_par_device;
end
if(~isempty(therm_mosfet.Eon))
	therm_mosfet.Eon.i = therm_mosfet.Eon.i*num_par_device;
	therm_mosfet.Eon.E = therm_mosfet.Eon.E*num_par_device;
end
if(~isempty(therm_mosfet.Eoff))
	therm_mosfet.Eoff.i = therm_mosfet.Eoff.i*num_par_device;
	therm_mosfet.Eoff.E = therm_mosfet.Eoff.E*num_par_device;
end
if(~isempty(therm_body_diode.Von))
	therm_body_diode.Von.i = therm_body_diode.Von.i*num_par_device;
end
if(~isempty(therm_mosfet.CauerChain)) 
	therm_mosfet.CauerChain.R = therm_mosfet.CauerChain.R/(num_par_device);
	therm_mosfet.CauerChain.C = therm_mosfet.CauerChain.C*num_par_device;
end
if(~isempty(therm_body_diode.CauerChain)) 
	therm_body_diode.CauerChain.R = therm_body_diode.CauerChain.R/(num_par_device);
	therm_body_diode.CauerChain.C = therm_body_diode.CauerChain.C*num_par_device;
end

if( ~isnan(num_par_device))
	ron_mosfet = ron_mosfet/(num_par_device);
	ron_body_diode = ron_mosfet/(num_par_device);
end

if( ~isnan(rth_ch) && ~isnan(num_par_device))
	rth_ch = rth_ch/(num_par_device);
end

From a simulation performance point of view, this approach is quite efficient: regardless of the selected number of parallel devices, only a single scaled device is simulated. The underlying assumption, however, is ideal current sharing between the parallel devices.

If you are using an XML file provided by a semiconductor manufacturer, it is also worth checking whether they offer a dedicated PLECS library component, as this functionality may already be implemented there.

Do you already have a specific manufacturer in mind?