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,
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?