Questions about LLC converter design and trafo inductance calculations

Thread Starter

DoubleU_V

Joined Nov 11, 2024
9
Hi all!

I'm working on a hobby LLC resonant converter and I'm having issues with picking capacitors for the resonance capacitance C_r.

1731481422700.png
(Picture from https://www.researchgate.net/figure/Half-Bridge-LLC-resonant-converter-configuration_fig9_261419357)

Here are the specs/requirements have:

V_in adjustable up to 60V. (my PSU has max 60VDC)
Roughly 300W max power.
Half-bridge, max switching frequency of 500kHz.
L_r is meant to be purely leakage inductance of the transformer. This can always be adjusted in my case, the air gap can be changed (rotary transformer).
The transformer is not yet wound, so this converter will be adjusted according to L_r and L_m.
Trafo ratio will be 1:1.
Load resistance R_L is fixed at 2.2 Ohms.
Output current i_L max 15A, but it's OK if it only reaches 10A in the end (hence 300W to get some headroom).
C_F is adjustable.

I've gone through the design guide from Infineon, and something like m = 5 and Q = 0.75 look alright to me. Note that these are just "desirable" values, as long as it's not a "sharp peak" at the resonance frequency (f_r) I'm fine. The plan is to switch atleast at f_r, and increase the frequency to decrease the output current. I don't have a requirement to be able to adjust all the way down to 0.1 voltage gain, if I am only able to go between 1.0 (f_r) and 0.5 (max frequency) this is fine. If this range is not able to decrease the current enough, I'll just decrease the input voltage. If it's possible to adjust the output current between 7A and 12A, that will be sufficient. I really have to stress that these "requirements" are not strict!

Here's an example set of values:

m = 5 (inductance ratio)
Q = 0.75 (quality factor)

=>

C_r = 1.1 uF (resonance capacitance)
L_r = 2 uH (leakage inductance of trafo)
L_m = 8 uH (mutual inductance of trafo)

=>

f_r = 106 kHz (resonant frequency)

Here's the calculated gain curve with respect to frequency for these component values:
1731481710906.png



This is assuming that the rotary trafo with its ferrite cores (pot core) reaches 2uH leakage and 8 uH mutual. The ratio between leakage and mutual can always be increased by adjusting the air gap, but the inductances themselves are determined by the cores and number of windings. From my calculations with the ferrite cores I have ordered, the trafo should get roughly 3uH leakage, 10 uH mutual with 1 mm air gap and 6 turns. Here is the script, please take a look! I have never worked with reluctance calculations before. The primary and secondary cores are both of this sort, and they are facing eachother.
1731483231821.png

1731482508371.png



The formulas stem from this paper:
1731482959733.png
1731482940340.png1731482986196.png
Let's say I want the inductance ratio to be between 4 and 6, that would mean that the air gap could be set to within the dashed lines:
1731485369197.png
Does this plot look reasonable?

I assume that h_wp = h_ws is the "winding depth" (9mm). I adjusted N=Np=Ns to reach the desired inductances, but 6 turns sounds extremely low. Any issues with this?

The reason I want the trafo inductances L_r (L_lk) and L_m in the order of a few uH, is because the resonance capacitance C_r gets around 1 uF. This means that I'll be able to use a few 0.2uF MLCC C0G caps in parallel. From what I have read, these seem perfect for this application due to their stability in capacitance. However, the problem arises if the trafo inductances get too big after I've wound it e.g. L_lk = 20uH, L_m = 100uH. That would mean that I need C_r = 11.2uF to arrive at a similar voltage gain curve, which would require 56 caps in parallel. I plan on having more footprints than I need so that I always can adjust the capacitance by soldering on/off more caps if needed. However, 56 caps of that sort would be unnecessarily expensive, and also very wide on the PCB. Also, the resonance frequency decreases to 10.6 kHz.

An alternative to MLCC C0G caps are PP-film caps. Specifically Pulse Film caps that can handle AC. Here's and example. These would make it really easy to reach capacitances above 10uF, but I am unsure about some aspects. If a capacitor is rated for a voltage derivative of e.g. 200 V/us, how do I know if the square wave from the half-bridge is not ruining the cap? When the applied voltage over the cap goes from 0V to 60V, you only really have to worry about the rise/fall time of the MOSFETs, no? The MOSFET I am planning on using has a fall time of merely 4.7ns, which means roughly (-)13000 V/us (60V to 0V in 4.7ns). Am I thinking of this correctly? I feel like I am missing something.

Thoughts?
 

Attachments

Thread Starter

DoubleU_V

Joined Nov 11, 2024
9
Hey everyone! I am going to make a rotating transformer for my LLC converter, and I am confused to say the least.

As of now, I have wound up (N=Np=Ns=6) a couple of ferrite pot cores I bought a few years back to try to see if I can calculate beforehand what the leakage and magnetizing inductance should be. They are similar to the cores I have ordered, so as of now I just want to test. My goal is to be able to feed a script with N & air_gap, and extract what L_lk (bulk leakage) and L_m (magnetizing) should be.

The formulas stem from this paper:
1731482959733.png



1731569122496.png1731569129961.png

L_lk is the total leakage inductance seen from the primary side.

Here's the script:

Python:
# Ferrite core parameters
mu_r = 2300 # +-25%
l_e = 77.05e-3 # m, effective magnetic path length
A_e = 711.42e-3 # m^2, effective area

A = 69e-3   # m
B = 14e-3 # m
C = 58.7e-3 # m
D = 29e-3 # m
E = 9.2e-3    # m
F = 8.78e-3   # m

r3 = C / 2 # m
r2 = D / 2 # m

h_wp = 8e-3 # m
h_ws = 8e-3 # m

# Air gap
l_ag = 1e-3 # m
mu_0 = 1.2566e-6

# Number of turns
N = 6

def trafo_inductances(l_ag, N):

    # Effective reluctance of one core (R_ca + R_cb + R_cc)
    R_e = l_e / (mu_0 * mu_r * A_e)

    # Reluctance of air gap, "inner ring"
    A_air_inner = np.pi * (D/2)**2 - np.pi * (F/2)**2 # m^2
    R_air_inner = l_ag / (mu_0 * A_air_inner)

    # Reluctance of air gap, "outer ring"
    A_air_outer = np.pi * (A/2)**2 - np.pi * (C/2)**2 # m^2
    R_air_outer = l_ag / (mu_0 * A_air_outer)

    R_tot = 2 * R_e + R_air_inner + R_air_outer

    # Magnetizing inductance
    L_m = N**2 / R_tot

    # Leakage inductance
    L_lk = mu_0 * N**2 * (2*np.pi / np.log(r3/r2)) * ((h_wp + h_ws) / 3 + l_ag)

    return L_lk, L_m

L_lk, L_m = trafo_inductances(l_ag, N)
With N=6 and 1 mm air gap, I end up with L_m=17.17uH, L_lk=2.55uH.

With the two wound cores I have, I placed them in a 3D-printed fixture with a 1 mm (verified with calipers) plastic spacer. I then went through a guide for a Bode100 to measure the leakage and magnetizing inductances. Here's what I got:

1. Measure primary inductance Lp, keep secondary side open. => Lp = 24.005 uH ("One-Port")
2. Measure secondary inductance Ls, keep primary side open => Ls = 24.650 uH ("One-Port")
3. Gain measurement from primary side (40kHz). The output and channel 1 measurement on primary side, channel 2 on secondary side. => G1 = 0.785
3. Gain measurement from secondary side (40kHz). The output and channel 1 measurement on secondary side, channel 2 on primary side. => G2 = 0.767

Test #3 above has this equivalent circuit:
1731573064362.png

1731573097562.png
Finally, the "primary magnitizing inductance" L_MAG1 can be computed as:

1731573141888.png

In my case, I ended up with:
L_1 = 24.35uH => L_MAG1 = 19.12uH => L_l1 = 5.23uH
L_2 = 24.95uH => L_MAG2 = 19.15uH => L_l2 = 5.23uH

Now, here's where my confusion comes; what to do with these inductances? What equivalent circuit is correct here?

1731574699164.png

In the end, I want to be able to model the transformer as a total/effective leakage L_r on the primary side, and an "effective" magnetizing inductance L_m:

1731574793960.png

How do I compute the values of L_r and L_m from L_l1, L_MAG1, L_l2 and L_MAG2 (n=1)?

I basically want to do this (from this paper):
1731574886630.png
... but I am unsure if I have actually measured L_lkp and L_lks, or if L_lk1 in the guide means "total leakage AS SEEN from the primary side" instead of "leakage OF the primary side ONLY"

Any ideas?
 

Attachments

The choice of LLC transformer model is actually a very interesting issue, and it seems that few people have ever provided a detailed explanation of it.
The key lies in the mutual inductance matrix M. For a two-winding transformer, the 2x2 impedance matrix has three independent inductive parameters, so all accurate transformer models must include three effective parameters. Circuits A, B, and C can all be correct and can be converted into one another. However, unlike circuits A and B, in circuit C, you must pay attention to the transformer turns-ratio, the third parameter. It is no longer simply the ratio of the number of turns, but may be slightly deviated, as indicated in the Onsemi manual.
I recommend solving these models using the mutual inductance matrix approach, i.e, U =M dI/dt, it will provide a deeper understanding of these models.
 

Thread Starter

DoubleU_V

Joined Nov 11, 2024
9
@Lucien_Dixion Great, thanks!

One question though. Does this model assume anything about the ratio between L_r and L_m? I've heard from colleagues at work that some ways of measuring leakage assumes that it is significantly smaller than the magnetizing inductance. In my case, this is not true. Depending on the situation, getting L_r = 0.2 * L_m is not impossible.
 
@Lucien_Dixion Great, thanks!

One question though. Does this model assume anything about the ratio between L_r and L_m? I've heard from colleagues at work that some ways of measuring leakage assumes that it is significantly smaller than the magnetizing inductance. In my case, this is not true. Depending on the situation, getting L_r = 0.2 * L_m is not impossible.

Lr and Lm are not directly dependent on each other. The ratio Lr/Lm is associated with the coupling coefficient of the windings. Improved coupling between the windings results in a smaller ratio. Conversely, for completely uncoupled windings, this ratio approaches infinity.
 

Thread Starter

DoubleU_V

Joined Nov 11, 2024
9
Alright, I have some results but I'm a bit confused.

Here are some measured inductances of different cases for the trafo (A1 is the primary core, and A2 is the secondary core). I aimed for N=25 when winding the cores:
Python:
# LCR measurements
L_1_open = 248.9e-6 # H, A2 kept open, 1 mm air gap
R_1 = 0.37 # Ohm
L_1_short = 85.5e-6 # H, A2 shorted, 1 mm air gap

L_2_open = 230.4e-6 # H, A1 kept open, 1 mm air gap
R_2 = 0.61 # Ohm
L_2_short = 78.96e-6 # H, A1 shorted, 1 mm air gap
If I understand the mutual inductance matrix (probably not), and use the "Circuit C" model, I should get:
Python:
# Assume 1:1
# L_11 = L_r + L_m (measure primary side with secondary open)
# L_22 = L_m / (k**2) (measure secondary(?) with primary open(?))
k = 1
L_m = L_2_open * k**2
L_r = L_1_open - L_2_open * k**2
=>
L_m = 230.4 uH
L_r = 18.9 uH


If I couple a 100nF capacitor in series, and add the load resistance like this:
(I also measured the capacitance of the capacitor used, and it was around 99.1nF up to 100kHz before it shoots up. 99.1nF is used in the calculations)

1732002362652.png

... and measure the gain G from V1 to V2 (= V2/V1) across different frequencies, I end up with:
1732002434881.png


I.e f_r = 57.8 kHz. However, this resonance frequency with a 100nF cap in an LC circuit corresponds with:
Python:
L_r_computed = 1 / ((2*np.pi)**2 * C_r * f_r_meas**2)
= 76.51 uH, which is far from the 18.9 uH I computed. Where am I incorrect with the calculations?

This value is much closer to the measured inductances when the "other side" is shorted, i.e L_1_short and L_2_short. Have I measured L_r directly with those scenarios?

As a quick check, I disconnected the load resistance and performed the same test:
1732002854385.png
1732002897559.png

This f_r = 34.58 kHz corresponds with L_r = 213.76 uH, which is really close to the measured inductance with "the other side open".

Thoughts?
 

Attachments

Last edited:
As shown before, please note that k≠1, which is the tricky part of the Circuit C Model. Anyway, the L_1_open you measured is L_r + L_m, and L_1_short is exactly L_r. Roughly, your test results with a capacitor appear to be correct.
 

Thread Starter

DoubleU_V

Joined Nov 11, 2024
9
@Lucien_Dixion
Ok, so the trafo ratio on Circuit A (n_A) and Circuit B (n_B) are not necessarily the same as for Circuit C (k)? Does k not correspond to the actual ratio Np/Ns between the number of windings?
 
@DoubleU_V
Yes, in Circuit Models A and B, there are three independent inductances (L_mag1 and L_mag2 in Model A together form an independent parameter). This allows you to set the turns ratio, either n_a or n_b, to match the actual ratio Np/Ns, or any arbitrary value you prefer. Then, you still retain three parameters to fit the mutual inductance matrix.

In contrast, for Model C, setting k = Np/Ns limits you to only two independent parameters for fitting the mutual inductance matrix, which makes it insufficient.
 

Thread Starter

DoubleU_V

Joined Nov 11, 2024
9
@Lucien_Dixion
This has been helpful! Waking up this thread again as I have a new trafo to try this out on.

So far for my 1:1 trafo:
1. I use model C, i.e all leakage is modelled "on the primary side".
2. This leakage, L_r, is extracted by measuring the inductance on the primary side while the secondary side is shorted.
3. Measuring the inductance of the primary side with the secondary side open gives L = L_r + L_m, so the magnetizing inductance can be computed by L_m = L - L_r (?).

L_r is the most important, since it affects the resonant frequency for the LLC. L_m is also a parameter, but I can accept a broader range compared to L_r. Is point 3 above correct, and how do I verify it?
 
You are right, the three points are all correct.
To validate it, you can choose three inductance tests, and then calculate three equivalent parameters for model C, including the equivalent turns ratio.

For your measurement:
1734317573938.png

Chatgpt-o1 gives the following answers correctlly.
Mutual inductance matrix:
1734319971338.png
Model C parameter:
1734319858907.png

Then you can this: applying an AC voltage to the primary side, keeping the secondary side open-circuit, observing the voltage on the secondary side, and then verifying the model's prediction.
 
Top