Exploiting the T(x) function in fast hysteresis models for transient circuit simulations

Johann Wilhelm (Institute for Fundamentals and Theory in Electrical Engineering, Graz University of Technology, Graz, Austria)
Werner Renhart (Institute for Fundamentals and Theory in Electrical Engineering, Graz University of Technology, Graz, Austria)

COMPEL - The international journal for computation and mathematics in electrical and electronic engineering

ISSN: 0332-1649

Article publication date: 8 August 2019

Issue publication date: 21 October 2019



The purpose of this paper is to investigate an alternative to established hysteresis models.


Different mathematical representations of the magnetic hysteresis are compared and some differences are briefly discussed. After this, the application of the T(x) function is presented and an inductor model is developed. Implementation details of the used transient circuit simulator code are further discussed. From real measurement results, parameters for the model are extracted. The results of the final simulation are finally discussed and compared to measurements.


The T(x) function possesses a fast mathematical formulation with very good accuracy. It is shown that this formulation is very well suited for an implementation in transient circuit simulator codes. Simulation results using the developed model are in very good agreement with measurements.

Research limitations/implications

For the purpose of this paper, only soft magnetic materials were considered. However, literature suggests, that the T(x) function can be extended to hard magnetic materials. Investigations on this topic are considered as future work.


While the mathematical background of the T(x) function is very well presented in the referenced papers, the application in a model of a real device is not very well discussed yet. The presented paper is directly applicable to typical problems in the field of power electronics.



Wilhelm, J. and Renhart, W. (2019), "Exploiting the T(x) function in fast hysteresis models for transient circuit simulations", COMPEL - The international journal for computation and mathematics in electrical and electronic engineering, Vol. 38 No. 5, pp. 1427-1440. https://doi.org/10.1108/COMPEL-12-2018-0532



Emerald Publishing Limited

Copyright © 2019, Johann Wilhelm and Werner Renhart.


Published by Emerald Publishing Limited. This article is published under the Creative Commons Attribution (CC BY 4.0) licence. Anyone may reproduce, distribute, translate and create derivative works of this article (for both commercial and non-commercial purposes), subject to full attribution to the original publication and authors. The full terms of this licence may be seen at http://creativecommons.org/licences/by/4.0/legalcode

1. Introduction

To consider non-linear inductors in circuit simulation, several approaches have shown good results in the past. The simplest implementation only covers saturation by using a non-linear BH-curves without any hysteresis effects. In (dos Santos et al., 2017) several mathematical models are compared and their accuracy is estimated. It is shown that exponential and hyperbolic functions are good candidates to represent the behavior of magnetic components.

By considering the magnetization such a simple model can be extended to include the magnetic hysteresis. The Jiles–Atherton model presented in (Jiles and Atherton, 1984) consists in its original form only of five parameters and gives reasonable results for major and minor loops. Here, the anhysteretic magnetization is calculated using a hyperbolic function – the Langevin function, shown in equation (2). This allows for much faster calculation than the classical Preisach model in (Preisach, 1935), where a large number of independent elements need to be evaluated.

Especially for numerical simulation, energy-based models can provide benefits. Both the Preisach and the Jiles-Atherton models are not naturally extending in three dimensions of space, and e.g. dissipated and stored energies are not available at every instance in time. A discussion of further differences is given in (Jacques et al., 2017).

The T(x) model on the other hand, extensively discussed in (Jenő’s (2003) study, is not fully based on existing theories. It can be understood as a very elegant mathematical description of the magnetic hysteresis. Therefore, its parameters are considered dimension-less and have no physical meaning.

While being not very well known, it is certainly very interesting for transient simulations. The Brillouin-function, B(x), as well as its simplified form, the Langevin-function, L(x), both suffer from poles at x =0 as can be easily seen in equations (1) and (2). In contrast to these two functions, the formulation of the T(x)-function in equation (3) uses the hyperbolic tangents. Hence, here, x = 0 does not require any special treatment:

(1) B(x)=C1 coth xC2 coth (C3·x)
(2) L(x)=C1 coth (C2·x)C3x
(3) T(x)=C1x+C2 tanh (C3·x)

A comparison of all three functions is given in Figure 1. Here, for B(x) the constants C1, C2 and C3 were set to 1. The constants of the other two functions were fitted to match the B(x) function as accurately as possible.

Another benefit of the T(x)-function is the existence of an exact inverse function.

Furthermore, it is shown (Jenő, 2003) that with proper choices of constants, the results of models based on the T(x)-function can be expected to closely match those of the widely accepted Preisach model.

The basic T(x) function is suitable for soft magnetic materials only. However (Dospial et al., 2014), shows an extension to hard magnetic materials by using T(x) function as a base function of a series.

2. Modeling of the magnetic hysteresis

The basic principles of this model are discussed using a normalized description of the magnetic hysteresis in order to make it easier for the reader to follow the equations. By shifting the T(x) function, the basic magnetic hysteresis loops are formed:

(4) f+=tanh(xa0)+A0·x+b
(5) f=tanh(x+a0)+A0·xb
(6) b=tanh(xm+a0)tanh(xma0)2

The functions f+ and f − are the ascending and descending branch branches, respectively. xm defines the minor loop and a0 corresponds to the magnetic remanence. To obtain the virgin curve, simply, the mean value of these two functions is calculated:

(7) f=tanh(xa0)+tanh(x+a0)+2A0·x2

An example of the resulting curves is given in Figure 2.

Reversal curves, needed to describe the hysteresis behavior in case of an arbitrarily changing exciting magnetic field, are more complex. Some examples for the resulting movements are shown in Figure 3.

Starting from x = x0, the descending branch of the minor loop defined by xm = 2 is followed. At x = x1 the direction is reversed. The starting point of this new ascending curve needs to coincide with the reversal point at x = x1. Furthermore, this new curve needs to reach the starting point x0 at x = xm. This can be accomplished by a scaled constant. Equation (4) will therefor get the form:

(8) f+,reversal=tanh(xa0)+A0·x+b          + c·H(x,xr,xm)
where c is the difference of the ascending and descending branch values at x = x1 and the function H() is a scaling function ranging from 1 (at x = xr) to 0 (at x = xm) with the parameters x, xr and xm.

To define H() (Jenő, 2003), suggests a hyperbolic function.

This finally leads to:

(9)      ·tanh(xma0)tanh(xa0)tanh(xma0)tanh(xra0)

This reversal curve can now be followed to x = x2 = x0 – the start of the minor loop. Increasing of x beyond x2 to x = x3, will cause a change to the virgin curve. Any change of direction on the virgin curve gives a new minor loop to be followed. However, if the reversal curve leading from x1 to x2 is interrupted at x=x2, a new value for xm needs to be calculated to start moving on a new minor loop. To accomplish that, equation (10) has to be solved with regard to xm:

(10) f+,reversal(x2)=tanh(xr2+a0)+A0·xr2ftanh(xm+a0)tanh(xm+a0)2b

To simplify the equations we define:

(11) d=f+,reversal(x2)tanh(x2+a0)   + A0·x2

This now gives:

(12) xm=atanh((dtanh(d·a0)2tanh(a0)1tanh(d·a0)1)12)

The minor loop defined by this new value of xm leads to the points x3 and x4. A much more detailed discussion of the construction of first- and higher-order reversal curves is given in chapter 5 of (Jenő, 2003). Below the T(x) model is applied to magnetic hysteresis. The magnetic flux density B corresponds to the value of the T(x) function whereas the magnetic field H is its parameter x (i.e. for the ascending branch simply B(H) = f+ with x = H).

3. Simulation environment

The circuit simulation code adopting the presented hysteresis model implements a simple, yet effective strategy.

Instead of a classic sparse matrix approach, as implemented in SPICE, each model is presented with vectors containing the node voltages (V), the residual currents (R), the results of an integration operation as well as vectors holding generic values representing e.g. model states. The model updates elements in R, representing the nodes it is connected to, and sets the derivative of its associated integration variables. After all models have been executed, each element of R represents the sum of all branch currents of the particular node. By the means of a quasi-newton algorithm on the node voltage vector, the residual current vector R is minimized using a least-squares approach to fulfill Kirchhoff’s current law. While losing the versatility of the classic SPICE approach (i.e. not all branch relations can be implemented), the source code is simplified a lot. However, considering real components instead of ideal ones, this shortcoming nearly vanishes since series resistors will be present in all models.

Integration methods implemented include forward-Euler, backward-Euler and bilinear algorithms. These can be selected at run-time. For the presented simulations, a bilinear integration was used for accuracy and stability reasons.

4. Inductor model

As discussed above, some branch relations cannot get implemented with the available simulation code. By adding a resistor, representing the losses in the copper wire, in series to the inductor, as shown in Figure 4, this problem is overcome. For the purpose of this paper, further parasitic properties, such as the capacitance of the winding and effects showing up at higher frequencies, are neglected.

The T(x) function provides a relation between the magnetic flux density B and the magnetic field strength H. For this reason, an application of Faraday’s Law of Induction presents a straightforward approach to model the inductor. Additionally, this gives useful results for the process of parameter identification from measurements as shown later on.

In datasheets of magnetic cores, usually the effective cross-section area Aeff and the effective length of the magnetic path leff are given. This allows for an application of the common approximations:

(13) Φ=B·Aeff
(14) H=N·Ile
where Φ is the magnetic flux and N is the number of turns of the winding.

Applying these approximations to Faraday’s Law gives:

(15) =N2·Aeffleff·dBdH·didt

This result is, besides the use of dBdH as the magnetic permeability μ, well known and represents the approximation applicable to long, thin inductors. However, the crucial parameters Aeff and leff are given in datasheets and the applications notes to different magnetic materials point toward using the given approximations. This suggests that model errors were already considered in these parameters. Equation (15) is further rewritten to give the current i in its differential form:

(16) didt=vL·leffN2·Aeff·dBdH

By utilizing the integration facilities of the simulator, the current I through the inductor can be obtained for every time-step. However, in order to do so, the term dBdH needs further discussion, since, for obvious reasons, each curve will need to be treated differently. In contrast to the discussion above, the presented model implements the not normalized form of the T(x) function:

(17) B(H)asc=B0·tanh(C0(Ha0))+A0H+b
(18) B(H)des=B0·tanh(C0(H+a0))+A0Hb
(19) B(H)vir=B(H)asc+B(H)des2


(20) b=B0tanh(C0(Hm+a0))tanh(C0(Hma0))2

Here, B(H)asc, B(H)des, B(H)vir represent the ascending and descending branch as well as the virgin curve, respectively. The constants A0, ao, B0, C0 have no direct physical meaning. Their values are results of a parameter fitting process using measurement values. In contrast to the previous constants, Hm is changing during the simulation and defines the maximum of the magnetic field strength of the minor loop.

From these definitions, the needed derivatives can be obtained. This gives for B(H)vir:

(21) dBvirdH=B0·C0·(coth(C0·(H+a0)))2        + (coth(C0·(Ha0)))2+A0

As discussed above, the functions defining the ascending and descending branches need to be modified to represent reversal curves. Applying the introduced constant c and the scaling function H() to the not normalized functions gives:

(22) B(H)asc=B0·tanh(C0(Ha0))+A0H+b· ctanh(Hma0)tanh(Ha0)tanh(Hma0)tanh(Hra0)


(23) B(H)des=B0·tanh(C0(H+a0))+A0Hb· ctanh(Hma0)tanh(Ha0)tanh(Hma0)tanh(Hra0)

This adds the constants c, the difference of the magnetic flux density between the ascending and descending branch at the reversal, and Hr, the magnetic field strength at the reversal, to the list of changing constants during the simulation.

Calculating the term dBdH for these branch functions gives:

(24) dBascdH=B0·C0·(coth(C0·(Ha0)))2+A0   − c·C0·(coth(C0·(Ha0)))2tanh(C0·(Hma0))tanh(C0·(Hra0))


(25) dBdesdH=B0·C0·(coth(C0·(H+a0)))2+A0   − c·C0·(coth(C0·(H+a0)))2tanh(C0·(Hm+a0))tanh(C0·(Hr+a0))

To finally calculate the derivative of the current through the inductor, the voltage across it needs to be defined. Since the current I, the result of the last integration operation, is an input parameter to the model, we can simply apply Kirchhoff’s voltage law to define the last unknown vl:

(26) 0=vlvR+VvL=vvRvL=vI·R

The different constants used in this model can be separated into two categories:

  1. constants changing during execution; and

  2. real constants.

Real constants are the parameters of the T(x) function (A0, ao, B0, C0) as well as physical parameters of the core and winding (R, N, le, Aeff). In contrast to these, on certain events, the magnetic field strength defining the minor loop (Hm), the magnetic field strength at reversal (Hr) as well as the constant used to shift the reversal curve (c) are changing. These conditions need to be discussed next since they also dictate the choice of the function for the term dBdH.

5. Model state machine

The behavior during the simulation is governed by a finite state machine. Its basic structure is shown in Figure 5.

The three states represent the virgin curve (𝕍) as well as the ascending (𝔸) and descending (𝔻) branches of the hysteresis loop. When entering one of these states, the function associated with the particular state is selected for the term dBdH. The edges between these states represent changes of direction and changes of exciting magnetic field strength Hm defining the minor loop.

On the virgin curve, the current must monotonically increase or decrease. Otherwise, the state changes to either the descending (edge 1) or the ascending (edge 2) branch. This change is indicated by a change in the sign of didt with respect to the current I. For positive currents, a negative didt would call for a change of the state while for negative currents a positive didt would do so. Since didt is one of the results calculated by the model, this check can be efficiently implemented by simply evaluating I·didt>0. When changing to a different state, the current magnetic field strength gives a new value for the variable Hm.

The edges 3 and 5 represent changes back to the virgin curve. As explained above this only occurs if |H| > |Hm|. Both values are available to the model.

Changes from the ascending to the descending branch and vice versa, are similar to the virgin curve. Again, evaluating I·didt>0 indicates a change along the edges 4 (ascending to descending) and 6 (descending to ascending). If a change happens before reaching Hm, the constants c and Hr need to be updated. This has already been explained above for equation (9).

6. Model initialization

Figure 5 suggests that the model can start not only at the virgin curve but also has the ability to start on the ascending and descending branches as well. This is useful to take, e.g. the residual magnetization into account. In this case, the initial minor loop parameters are calculated from the inverse functions of ascending and descending branches during the initialization phase of the model. For positive residual flux density, the simulation starts on the descending branch and for negative ones on the ascending branch respectively.

Therefore Hm for the state D in case of positive residual magnetization is:

(27) Hm=atanhBB0(tanh3(C0a0)tanh(C0a0))Btanh2(C0a0)C0

A negative magnetization results in a start in state A and Hm gets:

(28) Hm=atanhBB0(tanh3(C0a0)tanh(C0a0))+Btanh2(C0a0)C0

7. Parameter identification

To verify the presented model, a small inductor was prepared consisting of two ungapped E/25/13/7 cores out of 3C94 material and 10 turns of 1 mm magnet wire. Additionally, a winding consisting of 3 turns of RG213 coaxial cable was used to indirectly measure the magnetic flux density. The outer conductor of the coaxial cable was connected to ground on one end to form an electrostatic shield. Connecting the winding formed by the inner conductor to an R-C network forming a lowpass filter, the magnetic flux density can be measured after some considerations.

The construction of the inductor is shown in Plate 1. It is to be noted that in contrast to image, the inductor used for the simulations discussed below has no air gap. A 3d-printed frame compresses both halves of the core to ensure repeatable measurement results.

Faraday’s law of induction suggests that no constant magnetic field strength can be measured with this technique. In addition to that, the integrator, formed by the low pass filter introduces a phase error. The number of turns, the cross-section area of the core and the attenuation of the filter need to be considered to calculate the magnetic field B from this signal. To minimize the errors, the load at the measurement winding needs to be minimized; hence, the resistor value in the low pass filter needs to be as high as possible.

For practical reasons, the lowpass was built from a 1MΩ resistor and a 10nF capacitor. Bigger resistors need special care since contaminations of the circuit due to e.g. touching it may result in huge measurement errors. The capacitor was chosen so minimize the phase error, thus this was further neglected. Another criterion to be considered for the capacitor it the voltage dependency of the dielectric material. Here a C0G type capacitor was used. An amplification by a factor of 100 was used to a get signal to noise ratio of the measured signal. The circuit is shown in Figure 6. A 4-quadrant linear amplifier, capable of providing up to 40 A and 10 V, was used to excite the inductor. The test signals were generated by a programmable arbitrary-waveform-generator (AWG).

With the effective cross section area Aeff given in the datasheet of the core we get:

(29) B=CΦ^Aeff
where Φ̂ is the signal after the integration and C represents the combined attenuation of the lowpass filter, the amplifier and the number of turns of the measurement winding. In addition to the voltage at the measurement winding, the current through the inductor was measured using a current clamp. The magnetic field strength is calculated using:
(30) H=N·Ile
where le is the effective length of the magnetic path and N is the number of turns of the main winding.

Both signals were captured by a digital oscilloscope while applying a sinusoidal current, high enough to fully saturate the inductor. The model parameters for the branches of the major loop were fitted to these results. Some experiments showed that a genetic algorithm yields to good results while being very robust against the introduced measurement errors and noise. The choice of the optimization algorithm is uncritical since the parameters for the simulation are only calculated once. Figure 7 shows the measured data as well as the fitted major loop. The last missing model parameter, the series resistance, was measured using an LCR meter.

8. Simulation results

8.1 Major loop

In addition to the current through the main winding of the inductor, the voltage across its terminal was also measured when collecting data for the parameter identification process. The measured current was post-processed to remove as much measurement noise as possible. To do so, first, a median filter over 11 samples was used to reduce outliers. After that, a first-order lowpass filter with a corner frequency of 10 times the frequency of the exciting current was applied. In the simulation, the measured current was injected into the inductor. Between the samples, an interpolation using a Lanczos filter kernel was used. This was done to further reduce the effects of measurement noise and to prevent oscillations in the simulation code (Figure 8).

As shown in Figure 10, simulation and measurement show a very good agreement. The noise on the simulated waveform, especially visible in the non-saturated region, was tracked down to the remaining noise in the measured current waveform.

8.2 Major and minor loop

In a further test, the more complex waveform in Figure 9 was used to excite the inductor. The previous simulation showed that measurement noise greatly degrades the simulation results. Therefore, in this test, the waveform data provided to the AWG was used in the simulation instead of the measured data. As a result, the simulation in Figure 10 has less noise and runs faster.

To show the capability of simulating minor loops, the major and a minor loop was extracted from the transient simulation results. Figure 11 shows the BH-curves and the corresponding measurements. Here, verification was not possible due to the measurement noise.

9. Conclusion

This paper demonstrates the feasibility of using the T(x) function in transient simulations.

It was shown that a rather simple model can be used to achieve simulation results in a good agreement to measurements.

An implementation of a more generalized form to support hard magnetic materials, as presented in (Dospial et al., 2014), an investigation whether the presented model also leads to accurate estimations of losses in the magnetic core and benchmarking against other hysteresis models present topics for future work.


Comparison of the B(x), L(x) and T(x) functions

Figure 1.

Comparison of the B(x), L(x) and T(x) functions

Major (xm = 4), minor (xm = 2) and virgin curves for a0 = 1.75 and A0 = 0.05

Figure 2.

Major (xm = 4), minor (xm = 2) and virgin curves for a0 = 1.75 and A0 = 0.05

Reversal on a symmetrical minor loop (xm = 2) at x = – 1 and extension to the major (xm = 4) loop for a0 = 1.75 and A0 = 0.05

Figure 3.

Reversal on a symmetrical minor loop (xm = 2) at x = – 1 and extension to the major (xm = 4) loop for a0 = 1.75 and A0 = 0.05

Circuit representation implemented inductor model

Figure 4.

Circuit representation implemented inductor model

State machine governing the hysteresis model

Figure 5.

State machine governing the hysteresis model

Example inductor with measurement winding

Plate 1.

Example inductor with measurement winding

Integration circuit for magnetic flux density measurement

Figure 6.

Integration circuit for magnetic flux density measurement

Measurement of the B-H curve and fitted model

Figure 7.

Measurement of the B-H curve and fitted model

Voltage across the inductor

Figure 8.

Voltage across the inductor

Complex excitation

Figure 9.

Complex excitation

Voltage accross the inductor

Figure 10.

Voltage accross the inductor

Minor loop

Figure 11.

Minor loop


dos Santos, C.C.C., Ortiz, J.L.R., Américo, J.P. and Linares, K.S.C. (2017), “Nonlinear modeling of magnetic materials for electromagnetic devices simulation”, IEEE XXIV International Conference on Electronics, Electrical Engineering and Computing (INTERCON).

Dospial, M., Nabialek, M., Szota, M., Pietrusiewicz, P., Gruszka, K. and Bloch, K. (2014), “Modeling the hysteresis loop in hard magnetic materials using T(x) model”, Acta Physica Polonica A, Vol. 126 No. 1, pp. 170-171.

Jacques, K., Henrotte, F., Gyselinck, J., Sabariego, R.V. and Geuzaine, C. (2017), “Comparison between the energy-based hysteresis model and the Jiles-Atherton model in finite element simulations”, International Symposium on Applied Electromagnetics, Chamonix Mont Blanc, France.

Jenő, T. (2003), Mathematics of Hysteretic Phenomena: The T(x) Model for the Description of Hysteresis, Wiley-VCH, p. 173. ISBN 3-527-40401-5.

Jiles, D.C. and Atherton, D.L. (1984), “Theory of ferromagnetic hysteresis (invited)”, Journal of Applied Physics, Vol. 55 No. 6.

Preisach, F. (1935), “Über die magnetische nachwirkung”, Zeitschrift fur Physik, Vol. 94 Nos 5/6, pp. 277-302.

Corresponding author

Johann Wilhelm can be contacted at: johann.wilhelm@9mal6.de