## An analysis of a joule thief circuit

A joule thief circuit is known mostly as a widely popular solution for driving 5mm white LED from a single alkaline cell. Really, I think that nearly everyone interested in electronics have seen this circuit at least once. It’s simple and cheap (can even be assembled using parts from old CFL) and incredibly easy to build. But is it easy to understand? And how do we *calculate* it? In fact, I’ve never seen any attempts at quantitative analysis of this circuit.

You know, if you want something to be done good, do it yourself. So I did this theoretical analysis.

First of all let’s understand how it works at the qualitative level. The schematic below represents the circuit of interest in its basic form:

As soon as power is applied, Q1 is turned on by a current flowing in its base through L2 (second winding of a transformer) and R1. Transistor turns on, and current in L1 (first winding of a transformer) starts to rise. Beacause of a transformer action, a voltage is induced on L2, which adds up with the battery voltage; this leads to an increase in base current, typically to a point of transistor saturation. While Q1 is on, current through L1 continues to rise. At some point transformer core will reach its magnetic saturation, and the current will grow even faster. But it can’t increase forever; primary reason for this is the fact that the gain of a transistor is finite. So, sooner or later, the current will reach its maximum value (here h_{21E} is the current gain of a transistor)

and there will be no increase in current anymore. At this point voltage on L2 will collapse, transistor base current will start to decrease, which will cause a decrease in collector current, i.e. current in L1. But when current in L1 starts to fall, an opposite polatity voltage is induced on L2. This forces Q1 to close, and L1 current will flow through the diode, charging output capacitor and supplying power to the load. This phase lasts until all energy stored in L1 is depleted. Then voltage on L2 falls, and transistor is turned on again by current flowing through L2 and R1. Then cycle repeats.

Waveforms simulated in LTspice for this circuit:

Note that LTspice does not simulate core saturation, so the circuit works purely due to transistor gain limit. Real current would look something like this:

Blue dotted line is a core saturation limit, red line is transistor gain limit. T2 will be much smaller than T1, so we can assume that T1 is equal to full period.

Now let’s approach this circuit quantitatively. We’ll assume that

- the transformer uses ferrite ring core (the most frequent case for this type of circuit);
- windings have equal turns count.

Assume that we know:

- core saturation flux B
_{S}; - core radius r;
- core permittivity μ;
- core inductance index A
_{L}; - turns count N;
- supply voltage V
_{IN}; - diode dropout voltage V
_{D}; - load resistance R
_{L};

From this we are going to find the output voltage V_{OUT}.

#### 1.

Let’s find maximum L1 current. Strictly speaking, it is determined by a transistor gain limit, as mentioned above. But as soon as the transformer core enters saturation, this limit is reached very rapidly, and increase in inductor energy due to this effect is negligible. So we can safely assume that the maximum inductor current is determined only by core saturation.

For toroidal core

so we can express

#### 2.

Determining winding inductance:

Multiplication to 10^{-9} is necessary due to the fact that the inductance index is typically expressed in nanohenries per turn, but we want Henries.

#### 3.

Calculating energy storage time using rearranged inductor equation:

#### 4.

Now we can find the amount of energy stored at the end of a storage period using a textbook formula:

#### 5.

Now we have to find the time which it takes to fully transfer inductor energy to the load. To achieve this we can express the output voltage, V_{OUT}, in two different ways: through inductor equation and using energy balance.

For inductor we can write:

and then express

Looking from the other side,

Watts are Joules per second, right?

Assuming resistive load, we can express its power as

From above, we can express

Now we’ve expressed output voltage in two different ways, but it still is the same voltage in the same point. So we can equate this two expressions, solve for T_{OFF}, and then find V_{OUT} and everything else (load current, power, etc). I’ve initially solved this equation graphically (because I had a strange trouble solving it numerically) in MathCAD:

Using this equations I was able to achieve 5% output voltage calculation tolerance with respect to LTspice simulation, which, I think, is a fairly good result. Tolerance decreases as output voltage increases and falls to approximately 15% at V_{OUT} in order of 20 V. This is due to the fact that in this case non-ideal component properties, simulated by SPICE, give more contribution to the final result.

With Lua script (numerically solving equations above) and GNUplot I’ve created some curves (hi-res image), which show the behavior of this circuit on changing load. It can be seen that in fact this is a constant-power source, and, fairly interesting, when using windings of 10 turns (and R 10x6x4 EPCOS T37-like ferrite core, which is a frequent case), its output power well matches the power of a 5mm white LED (15 mA at 3.4 V approximately equals to 50 mW).

Files to download:

**Note on modelling:** LTspice does not simulate saturation, circuit model works purely due to transistor gain limit. So, when calculations are performed for the SPICE model, it is required to assume some nominal (it can be huge) saturation flux value which gives peak current equal to simulated peak current. The other way is to adjust base resistor value until collector peak current equals calculated value.

P.S.

As I am not a native English speaker, any spelling corrections are welcome.