This note will consider the analysis of an “outrunner” (rotor on the outside) single-phase doubly salient permanent magnet machine. This machine is interesting from the point of view of core loss computation because the rotor and stator iron are both laminated and see different dominant frequencies. This example will show how a series of FEMM solutions (e.g. a simulation at one degree steps around an entire rotation) can be used to compute core losses in this challenging structure. Matlab scripts will be used to control the series of batch FEMM runs. The scripts will also collect information that will allow a simple circuit representation of the machine to be developed. Mathematica versions of the scripts are also included in the getloss.zip distribution.
An interesting type of permanent magnet machine is the single-phase “doubly salient permanent magnet” machine. Perhaps the first version of this machine is a linear motor, usually known as the Sawyer Motor. Although the Sawyer motor is usually configured as a two-phase device, the motor, as originally envisioned in US Patent 3,457,482 (filed in 1967) has two essentially independent phases spatially positioned 900 out of phase. Each individual phase looks as shown in Figure 1.


Although “inrunner” single-phase DSPM machines have previously been considered, it might also be useful to have an “outrunner” version, where the rotor is on the outside of the machine and the stator is on the inside. For example, some small gasoline-powered generator designs use an outrunner machine for the generator, letting the rotor also act as a flywheel. If an outrunner configuration is assumed it is straightforward to use the original Sawyer motor design in Figure 1, which features a simple configuration with just one coil and one magnet, whereas inrunner machines typically employ multiple magnets and coils. An example of this outrunner layout is shown in Figure 3. This outrunner DSPM will be considered for the purposes of the present example.

For the purpose of posing a specific example problem, it is assumed that the objective is to construct a generator to be attached to a small portable gasoline engine. The desired performance is summarized in Table 1.
| Parameter | Value |
| Generator Speed | 5000 RPM |
| Design Power Output | 500W |
| Nominal Output Voltage | 48Vpk |
| Parameter | Value |
| Axial length of rotor | 60 mm |
| Lamination material | DI-MAX M-19 Silicon Steel |
| Lamination thickness | 0.18 mm (7 mils) |
| Lamination stacking factor | 92% |
| Magnet material | N35SH |
| Number of turns | 40 |
| Wire | 8 strands of 24 AWG copper wire |
The objective is to calculate the core loss of the machine under load. However, the exact operating conditions under load are not clear a priori. The load that the generator drives, in combination with the generator's electrical characteristics, determines the operating condition. By making a circuit model of the machine under load, the operating point at which to analyze losses can be determined.
As an initial model, (that, for the moment, neglects core losses), the circuit model pictured in Figure 5 will be assumed. This model consists of a voltage source that is proportional to the rotor's speed (flux linkage, &lambda multiplied by the number of poles on the rotor, n, times the rotational speed &omega in units of radians/second); an internal inductance, L, and an internal winding resistance, Rs. To back out the operating condition for the determination of losses, a series of finite element runs can be performed, and best-fit parameters can be regressed.

So as not to have to perform a third calculation for flux linkage just due to the magnet, it is reasonable merely to take the average flux linkage of the two calculations with perturbation currents.
The results for incremental inductance versus position are shown in Figure 6. The results for PM flux linkage versus position are shown in Figure 7. A Matlab script that evaluates the inductance and flux linkage is included as rolled_inductance.m.



For the purposes of loss computation, it is useful to have a simple form that approximately captures the entire range of curves. A “traditional” way to do this is to assume that the loss can be broken into a part due to hysteresis, which varies linearly with frequency, and a part due to eddy currents, which varies with the square of frequency:
| P = Ph + Pe = Chω B2 + Ceω2 B2 | (1) |
A reference for the “classical” derivation of core loss separation is [3]. A more modern discussion is contained in [4]. The simple form of (1) is employed here because a curve fit to this form yields reasonable accuracy over the range of application in the problem under consideration.
A reasonable fit to the data for 29-gage M-19 from 50Hz to 600 Hz is:
| Ch = 0.00844 Watt/(lb*Tesla2*Hz) |
| Ce = 31.2*10-6 Watt/(lb*Tesla2*Hz2) |
| Ch = 143 Watt/(m3*Tesla2*Hz) |
| Ce = 0.530 Watt/(m3*Tesla2*Hz2) |
The machine under consideration employs 7 mil (0.18 mm) thick laminations. These relatively thin laminations are required because the machine runs at a relatively high electrical frequency (500 Hz vs. 50 or 60 Hz for most electric machines). Unfortunately, the core loss data in hand does not consider 7 mil laminations. However, the performance of a 7 mil lamination can be estimated from the loss separation empirically identified for the 29 gauge (14 mil) lamination. As the lamination thickness changes, the hysteresis loss is expected to remain more or less constant. However, the eddy current loss is theoretically expected to vary with the square of lamination thickness. Since, going from 14 to 7 mils, the lamination thickness is cut in half, the eddy current coefficient should drop by a factor of 4, whereas the hysteresis coefficient should remain constant. The extrapolated loss characteristics of 7 mil M-19 are:
| P = (143 ω B2 + 0.132 ω2 B2 ) W/m3 | (4) |
To account for the stacking factor, it can be noted that the entire loss (in this estimate) scales by B2. We'd expect that the concentration of flux would increase the loss inside the lamination by (1/StackingFactor)2. However, the iron per unit volume also goes down—there's less iron per unit volume to generate losses, which gives back a factor of StackingFactor. Overall, the stacking factor can be incorporated in the loss by simply dividing the loss formula by the stacking factor of 0.92:
| Pstack = (155 ω Bm2 + 0.143 ω2 Bm2 ) W/m3 | (5) |
The flux versus time predicted by the finite element model will not be sinusoidal, because it will be including all effects of the motor's geometry as the rotor moves past the stator. If the stator steel were described by linear material properties, the losses could be rigorously decomposed into elements occurring at different frequencies which are summed to obtain the total loss. Even though the material properties are not linear, a widely used an approximate method of estimating core losses is to assume that the losses can still be decomposed into multiple components occurring at multiple time harmonics. The core loss expression can then be applied to the each harmonic and the results summed to obtain an approximation of the total core loss. Mathematically, this approach can be represented as:
| (6) |
where Bm is the amplitude of the mth time harmonic of the base frequency, ω. It is (6) which will be directly applied, in the next section, to calculate core losses.
Equation (6) is the basis for computing loss in the machine's laminations. However, many finite element runs must be performed to collect the information necessary to apply (6) throughout the machine so that the total losses can be computed. The mo_numnodes, mo_numelements, mo_getnode, and mo_getelement commands that were added in the 15Jul2009 release of FEMM provide the element-level access to the mesh that is necessary to keep track of the flux density vs. rotor angle in each element of the laminated iron.
To collect and analyze the requisite flux density vs. time information, a (heavily commented) Matlab script was created (rolled_getloss.m). The script performs a series of finite element runs, incrementing the rotor position and stator currents with each successive run.
During the first run of the series, the script performs some additional bookkeeping that is needed to locate the points at which the magnetic field is to be evaluated during subsequent iterations of the script. The location of the centroid and the size of each element contained in a laminated region is recorded for later use. As the rotor's position is changed, the finite element mesh changes. The element centroids from the initial finite element mesh are fixed points in the lamination geometry at which the field is evaluated in each incremental analysis, regardless of remeshing.
The flux density is then evaluated at every stored element centroid for every rotor position, essentially building up a history of flux density versus time for each element in the laminated regions. Some extra care is required for points located in the rotor. The initial centroid locations need to be rotated through the same angle as the rotor so that the rotor field is always evaluated at the same points on the rotor from run to run. The resulting field evaluations also need to be rotated so that the field is for points on the rotor is always represented in the same rotor-fixed reference frame.
Once finite element runs have been performed over an entire rotation, Matlab's built-in Fast Fourier Transform (fft) function is used to turn what is essentially a time series of flux densities at each element centroid into amplitudes of various harmonics of flux density, as required by (6) for the evaluation of losses. The contributions from all harmonics for all elements are then added up to get the total core loss.
Running the core loss script with a coil current amplitude of 20A positioned in-phase with the no-load voltage (<i>i.e.</i> more or less the rated current, assuming that there is a capacitor that balances all of the reactive power of the generator), the script produces the following results:</center></html>Core loss: 20.9223 W<br>Core loss density: 7.8972 W/lb</center> </HTML>

To explore the operation of the generator under different loads, it is useful to have a version of the simple circuit model that incorporates extra impedances to model the losses. In this way, the effects of the losses at the terminals of the machine can also be modeled in a consistent way (at least, in the context of the simple circuit model). A candidate circuit that models core losses is shown in Figure 10. An extra resistor, Rc, shunts off some current from the load, producing losses. It can be noted that since this this resistor is in parallel with the load, it can produce losses in the machine even when the machine is unloaded. The use of an extra parallel resistance to represent core loss is fairly commonplace, especially in the context of transformers.
To fit the losses produced by the circuit model to the losses computed from the finite element runs, it is assumed that the loss resistor splits the machine's inductance into two parts, L1 and L2. The split of the inductance between L1 and L2 and the value of Rc are then determined on the basis of a least-squares fit between losses predicted by the circuit model and losses predicted by the finite element model for the same load current. The best-fit parameters are presented below in Table 3. Such a circuit could then be used, for example, in a Spice simulation of the generator driving a reactive power compensation capacitor in series with a battery charger.

| Parameter | Value |
| L1 | 0.632 mH |
| L2 | 1.138 mH |
| Rc | 97.70 Ω |
| λ | 0.01619 Wb |
| Rs | 0.104307 Ω |
| n | 6 |
| ωr | 523.6 rad/s |
An example has been presented in which FEMM is used compute the core losses of an electric machine under load. In the machine considered in this example, only coil resistive losses and core losses in the machine's laminate iron were considered. A more complete analysis also would have considered the generation of eddy currents in the permanent magnets (which could be added to the loss calculation script in a straightforward way) and windage/bearing losses. A more complete thermal analysis of the motor would also help to determine the actual operating temperature of the machine, which influences the resistance of the windings and the flux sourced by the permanent magnets.
The use of FEMM to identify parameters in simple circuit representations of electric machines has also been considered. The use of circuit representations can help to identify the operating conditions for which the finite element analyses are to performed, and circuit representations can lend intuitive insight into the design and operational attributes of the machine under analysis.
Although the specific machine considered in this example is of an unusual (and, perhaps, impractical) design, the scripts used to compute the core losses for this machine should be readily adaptable for use in other machine geometries.
[1] E. Dlala, “Comparison of models for estimating magnetic core losses in electrical machines using the finite-element method,” IEEE Transactions on Magnetics, 45(2):716-725, Feb. 2009.
[2] H. Trabelsi, A. Mansouri, and M. Gmiden, “On the no-load iron losses calculations of a SMPM using VPM and transient finite element analysis,” International Journal of Sciences and Techniques of Automatic Control & Computer Engineering, 2(1):470-483, July 2008.
[3] R. L. Stoll, “The analysis of eddy currents,” Oxford University Press, 1974.
[4] D. M. Ionel et al. “On the variation with flux and frequency of the core loss coefficients in electrical machines,” IEEE Transactions on Industry Applications, 42(3):658-667 May/June 2006. (http://eprints.gla.ac.uk/3438/)