Reconstruct SIC MOSFET switching losses out of datasheet - simscape model has a big deviation

30 views (last 30 days)
Hello!
I'm trying to calculate switching losses of sic mosfets with a simscape model using the N-Channel MOSFET Block from the simscape foundation library.
I've already tried to do that with several sic mosfets, but im always getting switching losses (Eon and Eoff) that are too low. Right now i'm using the datasheet specifications from the sic module SKM500MB120SC.
I parameterized the MOSFET using the datasheet (R_DS(on), currents/voltages for R_DS(on), Capacitances etc.). Im controlling the MOSFET using the simscape driver, using the gate driver parameters given in the datasheet.
Now, the idea is to meet the conditions that are listed for Eon and Eoff (second column):
First of all, measuring the delay/rise/fall times according to a semikron application node, these are already not identical with the datasheet specifications.
The times, in seconds, extracted out of the simulation:
  • Turn On Delay Time: 3.18e-09
  • Rise Time: 1.58e-08
  • Turn Off Delay Time: 5.00e-08
  • Fall Time: 3.50e-08
(1) Despite that - looking at Eon, the condition di/dton = 9,8 kA/us is met (using only a resistor (resistance = Vdd / Id = 4 ohm)). -> Looking at the slope when the current rises from 0 A to 150 A di/dt is somewhat around 9.5 kA/us. Im not sure, but shouldnt fulfilling the slope of the current already give some good approximations of the datasheet value?
(2) Thinking of the rise time, where the most loss is generated (in comparision to the turn on delay time, where the product of current and voltage is nearly zero), my rise time is almost two times bigger than the one given in the datasheet. I'd expect, according to that, my Eon should be, if any, larger than the one in the datasheet, which is not the case:
Using ee_getPowerLossSummary(simulation.mos_simlog.N_Channel_MOSFET,x1x2) (and multiplicating it with the pulseduration x2-x1) gives me
  • Eon: 6.759036e-04
  • Eoff: 2.869943e-04
x1 and x2 are chosen as stated by an application node from Semikron.
Even using different ranges of x1 and x2, the result is still not in the near of the value in the datasheet.
Looking at the 2 things i mentioned in (1) and (2), i have no ideas how i could adjust the model. Im not expecting exact accordance from datasheet and model, but atleast somewhat in the range of 75-125+% of the datasheet value. (More is less of a problem than less...)
  • Modifying values that directly affect the rise time (gate resistance, capacitances) can give better results - like adding 3 or 4 ohms to the gate resistor, gives me an Eon and Eoff in the range of the datasheet value. The rise time then is - of course - much bigger (70 ns) - but so is the Eon value (2,1 mJ).
  • If also tried different circuit layouts to measure the losses (as given in other application nodes from other manufacturers), but sadly they often gave the same poor approximation.
  • I tried varying variables that are not given in the datasheet (but needed in the model) - like Rsource and Rdrain - but they dont affect Eon/off that much.
  • Using other gate blocks or doing my own "gate driver" didn't make a difference.
  • Including gate driver losses by adding them to the losses given by the "getpowerlosssummary"-loss didn't help.
I also know that the SKM500MB120SC is an module and not a single mosfet - but shouldnt the things specified in the datasheet be valid for a single mosfet in the module?
I've attached the model i'm using to calculate everything, including a matlabfile to init, run, and calc the loss given a predefined range (bottom of the script). I hope that helps answering the question: how could i modify the model to fit the datasheet values? What am i doing wrong? Or is the model simply too "plain" to calculate a value from the datasheet that was measured "with hardware" in "real"?
Thanks in advance!
Stay healthy :)

Accepted Answer

Rick Hyde
Rick Hyde on 16 Dec 2021
Hi Florian
Root cause of your difficulties here is that the datasheet does not give you everything you need to accurately predict switching losses. To do this, the charge model needs to depend on gate-source voltage as well as drain-source voltage, but datasheets normally just give it as a function of drain-source voltage. Hence the design of our block to match just what the datasheet tells you.
Here are a couple of alternative workflows:
Option 1: Use our MOSFET (Ideal, Switching) library block: Here you provide tables of the switching losses, this data usually being provided on device datasheets. The block implements the losses at the switching events, this causing a corresponding step change in junction temperature. This is the solution that we see most engineers using. Note, that to access the full capabilities of this block, you need to right-click and select the Simscape->Modeling option menu and choose an option that exposes the thermal port.
Option 2: Import a SPICE subcircuit for your device using subcircuit2ssc. However, this is only really designed for use with discretes (i.e. single MOSFETs, not a package that includes multiple transistors that implement other functionality like the gate driver, protection etc). Foundry models are often very detailed, so this route is not as performant as Option 1.
I hope that helps
Regards
Rick Hyde
  2 Comments
Florian Kirschmann
Florian Kirschmann on 17 Dec 2021
Hey Rick,
thank you very much for your time & answer!
I already considered option 1, but i wanted to generate a look-up table with the mosfet model - then using the ideal switching MOSFET. But since reading your answer, i think i have to stick to datasheet values...
On top of that, a little update: i tried some different circuits from the application manual from Semikron.
I never thougt using a indactance to get up to the current specified in the datasheet would give me much better results, because only my resistance helped me to get the right slope. Now, looking at the voltage and the current through the MOSFET, it's less of an "X" they make up (like in one of the scopes i posted) and more something like that:
... which gives me much better approximations. Now im at 50% of the Eon-Datasheet value and at 90% at the Eoff-Datasheet value.
But of course my slope is now way too big with 40kA/us (in comparision to the 9.8kA/us which are given in the datasheet) - but im asking myself i'm measuring it the way they meant to measure it.
Do you maybe know if the slope is measured in one point of the current like that:
or like that (in this case just a very rough placement at the start and end)?
Using the second method, my slopes would (approx.) match with the datasheet values. (on-slope as well as the off-slope)
Anyways, thank you very much for your answer!
Rick Hyde
Rick Hyde on 17 Dec 2021
Hi Florian
I believe the first way you measure the rate of change of current is correct. I'm not an expert in how foundries do the measurements, but I do know that using exactly the same test circuit is important, and as part of that, having the same inductance values for the load and possibly also lead inductances. Datasheet information gives you indicative performance information good for early design and/or component selection, but I'd expect that most of the time circuit designers then go on to do their own measurements during the prototyping stage. These measurements can then be used to revisit the control and PWM waveform design decisions.
kind regards
Rick

Sign in to comment.

More Answers (1)

Richard Scott
Richard Scott on 5 Apr 2023
Edited: Richard Scott on 5 Apr 2023
Adding to Rick's answer:
The datasheet values for the Semikron devices (and most manufacturers) will have been derived using the IEC 60747-x standards, which specify turn-on and turn-off characteristics are measured using an inductive load and a double-pulse test.
In your simulation, you are using a resistive load (which is more akin to MIL-STD tests, which are still used for testing small automotive switches). The current through the resistive load will increase in line with the MOSFET turn-on, as the two act as a variable resistor in combination. Conversely, an inductive load will drive the current higher faster, as it has stored energy. This will result in a higher VI product at any instant during turn-on and -off, and higher switching losses.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!