Numerical Methods for
Inductance Calculation

Part 2 – Inductance Calculation Refinements
A) Current Sheets and Round Wire Corrections

In Part 1A, it was mentioned that the current sheet solenoid formula is a good approximation as long as there are many closely spaced turns. In 1907, Rosa [13] performed hand calculations for coils of up to 10 turns, using the circular filament method described in Part 1B. It's not terribly cumbersome to do so, when the number of turns is reasonably low. He compared the results to those of the current sheet formula. From this he developed a set of corrections to account for the use of round wire. These corrections are applied to inductance calculated from the current sheet formula, greatly improving it's accuracy. In 2008 when I embarked on my quest for decent inductance formulae, I hadn't encountered Rosa's 1907 paper. However, there were many references to Rosa's corrections, and many tables of correction factors available, but no formulae or good explanation how they were derived. In fact there were so many references, that the original paper was obscured in the maze of other references. As a result I spent quite a bit of time sorting through the bits and pieces in the material that was available to me, and was eventually able to reconstruct the formulae. This is detailed in [14]. So, I won't repeat it here. I spent much more time figuring things out than I would have if I had found the 1907 paper right off, but the time wasn't wasted, because it resulted in a computer program to calculate the corrections, and a new table of values accurate to ten decimal places. Previously, there was one five place table available (the others being four place tables). Because these earlier tables had been calculated by hand, they also contained a few small errors. While the computer program for calculating these values is very accurate, it is somewhat cumbersome, and slow for coils with many turns. However, it's value has been in its ability to provide a set of accurate data which could be used to create a much simpler fitting function, which is just as accurate for all practical purposes. David Knight, G3YNH, had developed a fitting function based on the old four place tables, but then revamped the formula when the 10 place data became available [15a]. Combined with the use of optimizer software (to be described later), the fitting function has a maximum absolute error of no more than 1.3×10-8.

Rosa's round wire corrections are in two parts. The first part corrects for the difference between the self inductance of one turn of round wire (blue in the coil cross section illustration), and the self inductance of one turn of current sheet segment (copper colour in the illustration). The second part of the correction compensates for the difference in mutual inductance between turns of round wire and between turns of current sheet segments. The corrected inductance is then expressed as:

(13)

where LS is the inductance of the current sheet, and ∆L, the overall net correction, is given in µH by:

(14)

N is number of turns, r is the coil radius, kS is the self inductance correction, and kM is the mutual inductance correction. I've adopted David Knight's notation for the correction factors. Past papers have used A and B or G and H for these factors.

The formula for the self inductance correction kS, is very straightforward [2](page 148):

(15)

where p is the winding pitch and dW is the conductor diameter.

The formula for kM is a function only of the number of turns N, but is rather involved [14]:

(16)

Given the summation within a summation, this is obviously a job for two nested program loops. In fact, I implemented the inner summation as a separate function, and called it from inside the loop of a main function. The Open Office BASIC macro code for the two functions follows:

Function dGMD(ByVal j as long) As Double ' Geometric mean distance adjustment formula ' called by RosaKm function Dim i,iterms as long Dim k,x,n,ni,y as double nterms=25 if j=1 then dGMD()=Log(.25)+1.5 else n=0.0+j n=n*n ni=n y=0 for i=1 to iterms x=0.0+i k=(x+1)*(x+x)*(x+x+1)*ni if k>1.0e100 then exit for endif y=y+1/k ni=ni*n next dGMD()=y endif end function Function RosaKm(ByVal n as long) as double ' Rosa's round wire mutual inductance correction ' using original summation method ' argument n is number of turns in coil ' Warning: This gets very slow when the input parameter is large dim m as long dim h as double h=0.0 for m=1 to n-1 h=h+dGMD(m)*(n-m) next RosaKm()=h*2/n end function

(As a side note, in the function dGMD() the value converges very quickly (12 iterations or less) for arguments greater than 1. However, for an argument of 1 the exponents vanish, and it requires tens of thousands of iterations. Fortunately, the exact value of dGMD(1) is known to be log(14)+32, and this value is returned directly.)

These functions are useful for generating values for kM accurate to at least ten decimal places. However, they have now done their job and normally won't be required, since the set of data has been used by David Knight [15a] to produce two different fitting functions. The first, which is purely empirical, was developed in 2006 and then later improved in 2009, has a maximum absolute error of 1.1×106:

(17)

Dave's second formula is based on an analytically derived series expansion, with two empirical terms added to correct an inaccuracy when N is small, and has a worst case absolute error of 1.3×108, which should be sufficient for any occasion:

(18)

Now, combining the current sheet formula (9), based on the Nagaoka() Javascript function, with the kS formula (15), and the kM formula (18), we can very accurately calculate the inductance of a solenoid wound with round wire. An online calculator which demonstrates this, is here. (The calculator also partially compensates for frequency, which will be discussed in a later section.)

The Special Case of the Single Turn Coil

The single turn coil is a special case, because in this case, the pitch would normally be considered to be zero. This creates a problem in calculating kS from formula (15), because the argument of the logarithm function becomes zero, and the logarithm of zero is undefined. Sometimes, the conductor diameter is substituted for pitch to avoid this problem. This gives a reasonable result, but when compared to the elliptic integral formula (which should be considered to be the more accurate formula in this case), there appears to be some room for improvement. I have found, empirically, that setting the pitch equal to 1.74 times the conductor diameter gives much closer agreement with the elliptic integral formula. The optimum value varies ever so  slightly above or below 1.74, depending on the ratio of conductor diameter to coil diameter, but the variation is extremely small. So, the value of 1.74 should be acceptable in virtually all circumstances.

Formula Comparisons

Digressing momentarily from corrections, we are now at a stage where we can compare the two different inductance formulae: The first using the Nagaoka() function with the round wire corrections, and the circular filament method using Mut() and Lcoil().

A spreadsheet comparing the two calculation methods for several example coils of various geometries and numbers of turns was created, and can be downloaded here. However, the following tables summarize the results.

The first is for coils of small diameter and medium pitch (1.6 times the wire diameter):

The convention I've adopted in these tables and spreadsheets, is to show the input variables with a yellow background, intermediate calculated values with a light blue-grey background, and the final calculated results with an aqua background.

The uncorrected current sheet inductance values are designated LS, but we are  more interested in the values corrected for round wire. The inductance values designated L-Lorenz/Rosa use the current sheet method with round wire corrections. Those designated L-Summation use the Lcoil() and Lmut() routines. The greatest deviation in these values occurs in the case of the coil with the fewest turns. However, even this error of less than 200 parts/million is not unreasonable.

The second set of examples is for coils of small diameter and large pitch (4 times the wire diameter):

In this set of examples the worst case error is just over 1000 parts/million or 0.1%. This is still fairly decent agreement when we consider that with a small radius and large pitch, the coil geometries are deviating significantly from the ideal conditions upon which the derivations have been based. There is little point making any conjectures about which method is better in this case.

In the last set of examples the coil radius is increased, and the winding pitch, as in the first set, is 1.6 times the wire diameter:

Evidently, as the radius gets larger, the agreement gets much better. It can also be seen that the number of turns has much less effect on the agreement than the radius. While, from the previous examples, the pitch has an intermediate effect.

Neither calculation method fully accounts for the curvature of the coil. However, since the agreement improves greatly with larger ratios of coil diameter to wire diameter (hence, minimum curvature), then obviously the biggest variation is due to how the methods account for curvature, and it seems that one method does not account for this quite as well as the other.

Neither method makes any attempt to account for the fact that the coil is a helix. Although, considering that the pitch has a slight effect on the agreement between the methods, we can surmise that helicity does, for better or worse, indirectly affect one of the methods.

We are not yet at a stage where we can determine which is the more accurate method. However, considering even the worst case agreement, either method should be sufficiently accurate for any practical case.

In the next section we will look at some more corrections to these formulae.


Continue to:

Part 2b – Inductance Corrections

Back to:
Numerical Methods 1d
Numerical Methods Introduction
Radio Theory
Home
This page last updated: November 29, 2022
Copyright 2010, 2022 Robert Weaver