Introduction
In electrical circuits, AC resistances are not equivalent to their DC counterparts, especially at higher frequencies. Ansys Maxwell can be used to calculate the AC resistance of a conductor in multiple ways, but the main two would be through an impedance matrix in the eddy current solver or through a series of field calculations in the magnetic transient solver. The eddy current case is easier to setup, but there are some assumptions present in that solver that don’t work for every problem; the excitations in the eddy current solver are always pure sinusoids, and the value of resistance is the peak resistance seen during the excitation. But there are times where it is important to see how the impedance of a conductor evolves due to a high frequency pulse or non-sinusoidal waveform – this is where the magnetic transient solver comes in!
Time-Varying Resistance
In order to calculate the AC resistance, we’re going to need to utilize the Field Calculator. Because the typical expression of the current-voltage relationship, V=IR, is for DC resistance because it assumes R is constant, we need another expression to calculate the time-varying resistance. For that, we can use the ohmic loss density and the current flowing through the conductor to calculate the time-varying impedance using the relationship between power and current:
P = I2R
With the definitions out of the way we can now begin to set up the simulation, starting with our sample geometry of a simple cylindrical wire.
Example Geometry
The geometry in this example is a cylinder of copper with a radius of 2 mm and a height of 10 mm, surrounded by vacuum. A sinusoidal current is assigned to the coil (although any waveform can be represented in the transient solver) with an amplitude of 100 A and a DC offset of 200 A – this is to prevent large impedance spikes at zero-crossings in this simple model.

We have our geometry now, so we can start the process of setting up the field calculator equations we need. The first step is to get the current flowing through the conductor from the electromagnetic field definitions – this process is described in this blog post about Amperian Loops, but the calculator steps are slightly different in a transient simulation compared to the eddy current/frequency domain simulation discussed in that blog. The process of creating the loop line to use in our field definitions remains the same as in the previous case, so review that blog if you are unfamiliar with these steps. Don’t worry, we’ll still tell you the updated calculator steps for a transient amperian loop in this post.
The Field Calculator and You
After creating the loop for the Amperian Loop calculation (in this example, its name is AmpLoop), you’ll need to perform the following operations in the field calculator to get the current through the conductor in a transient magnetic model:
Calculator Operation | Resulting Stack Display |
Input: Quantity → H | Vec : <Hx,Hy,Hz> |
General: Smooth | Vec : Smooth(<Hx,Hy,Hz>) |
Vector: Unit Vec → Tangent | Vec : LineTangent Vec : Smooth(<Hx,Hy,Hz>) |
Vector: Dot | Scl : Dot(Smooth(<Hx,Hy,Hz>), LineTangent) |
Input: Geometry → Line → AmpLoop | Lin : Line(AmpLoop) Scl : Dot(Smooth(<Hx,Hy,Hz>), LineTangent) |
Scalar: ∫ (Integrate) | Scl : Integrate(Line(AmpLoop), Dot(Smooth(<Hx,Hy,Hz>), LineTangent)) |
Because there’s a field representation of the current flowing through the conductor of interest, we can use the field calculator again to create a calculation of the time-varying resistance. Because the default ohmic loss definition in Ansys Maxwell is the ohmic loss density, we need to make sure to integrate that value over the volume of interest – in the example project, the volume is simply called Cylinder1. The field calculator steps are as follows:
Calculator Operation | Resulting Stack Display |
Input: Quantity → Ohmic-Loss | Scl : Ohmic-Loss |
Input: Geometry → Volume → Cylinder1 | Vol : Volume(Cylinder1) Scl : Ohmic-Loss |
Scalar: ∫ (Integrate) | Scl : Integrate(Volume(Cylinder1), Ohmic-Loss) |
Named Expressions: LoopCurrent → Copy to Stack | Scl : LoopCurrent Scl : Integrate(Volume(Cylinder1), Ohmic-Loss) |
Named Expressions: LoopCurrent → Copy to Stack | Scl : LoopCurrent Scl : LoopCurrent Scl : Integrate(Volume(Cylinder1), Ohmic-Loss) |
General: * (Multiply) | Scl : *(LoopCurrent, LoopCurrent) Scl : Integrate(Volume(Cylinder1), Ohmic-Loss) |
General: / (Divide) | Scl : /(Integrate(Volume(Cylinder1), Ohmic-Loss), *(LoopCurrent, LoopCurrent)) |
Solution Setup
In this example, we parameterized the excitation frequency when setting up our current excitations through the wire to allow for investigating the AC resistance at multiple frequency points. We want to simulate over 2 frequency periods and have 30 steps per period (which are also a parameterized variable).

When defining the solution setup, we use these variables to set out stop time and step size so as to not have too large of time steps for the high frequency simulations, or way too small of steps for the low frequencies. To get our 2 periods we set the stop time to “2/Frequency,” and our time step size to “1/Frequency/Steps” to give us 30 steps per period for each of our frequencies.

It is also important to ensure that we are saving the fields during the time our simulation is running, since those results are needed to use the field calculator. We can also use our variables there, so that they adapt to the changing time scales as the different frequencies are simulated.

Once our field calculator equations and solver settings are finished being set up, we can run the simulation and plot the corresponding results.
Temporal Resistance at Different Frequencies
To plot these quantities, we need to use a Fields Report, rather than a transient report, since we are plotting field calculator values.

Because we simulated across a wide range of frequencies, the time scale for each of these simulations will be drastically different and make it difficult to plot them all on the same graph for comparison if we were to simply plot them directly. But because we have parameterized our excitation frequency, we can instead plot the resistance over Normalized Time, allowing us to see the resistance over the two periods of the waveform for each of our frequencies. We’ll need to uncheck the “Default” box next to the X-axis definition, and replace “Time” with “Time/(1/Frequency).”

Because these are field calculator values, there are no units assigned automatically. It will also initially plot both of the waveforms on the same y-axis and plot the current waveforms at each frequency over the normalized time (all of the current waveforms are identical when normalized over time like that). There are a few steps we can take to clean up the waveforms – we can plot the current at just one frequency, move the current to its own axis, and set the units of the AC_Resistance axis to µ in order to get the results below:

Conclusion
From the example model here, we can see how the AC resistance changes over time as higher and higher excitation frequencies are applied. At low frequencies, the wire still behaves close to the DC case, with little variation over the sinusoid. But as the frequency increases, the resistance can spike to values over 5 times larger than the baseline! If you would like to learn more about Ansys Maxwell or other simulation tools and services we offer here at PADT, you can do so on our website here.
Have other questions or looking for a quote? Contact us or call (480) 813-4884 to get in touch with one of our engineering experts today.
You must be logged in to post a comment.