Let Sino's Lamination Stacks Empower Your Project!
To speed up your project, you can label Lamination Stacks with details such as tolerance, material, surface finish, whether or not oxidized insulation is required, quantity, and more.

Motor core loss in lamination stacks is usually estimated from clean material data, then quietly distorted by the real stack.
Punching. Edge damage. Joining. Press fit. Tooth ripple. Minor loops. Rotating flux in the corners. The base model may still be fine. The inputs are not.
This guide is for that gap. Motor core loss. Iron loss. Stator lamination loss. Steinmetz fitting. iGSE. FEA-driven region splitting. Shortcuts that still survive first hardware.
Start here when the local flux waveform is close to sinusoidal.
Pspec = k * f^alpha * Bpk^beta
Where:
Pspec = specific core loss, usually W/kgk = fitted Steinmetz coefficientf = electrical frequency, Hzalpha = frequency exponentbeta = flux-density exponentBpk = peak flux density in the steel, TUse Bpk in steel. Not in gross stack area. If the region is back yoke and the waveform is smooth, this is often enough.
If the region is tooth root under PWM ripple. No. Move on.
Use this when the design change is physical and you want to know which part of the iron loss moved.
Pspec = kh * f * Bpk^n + ke * f^2 * Bpk^2 + kex * f^1.5 * Bpk^1.5
Where:
kh = hysteresis-loss coefficientke = classical eddy-current coefficientkex = excess-loss coefficientn = hysteresis flux exponentf = electrical frequency, HzBpk = peak flux density in steel, TThis model is useful when lamination thickness changed, or punch quality changed, or stress changed, and you do not want all of that hidden inside one fitted constant.
When the local B(t) is distorted, the plain Steinmetz form starts acting cleaner than the machine.
Use a time-domain form.
Pspec = (1/T) * sum_over_i( integral_from_t1_i_to_t2_i[ ki * abs(dB/dt)^alpha * (DeltaB_i)^(beta-alpha) dt ] )
Where:
T = electrical periodi = monotonic segment or extracted subloop indexki = waveform-adjusted coefficient derived from the fitted Steinmetz constantsdB/dt = local flux-density slew rate, T/sDeltaB_i = flux swing tied to segment or subloop i, in Tt1_i, t2_i = start and end of segment or extracted loop portionalpha, beta = Steinmetz exponents from fitted material dataThe trap is DeltaB_i.
For a clean single-loop waveform, DeltaB_i can be the excursion over that segment. For PWM ripple, nested minor loops, or harmonic-rich teeth, do not use one global max(B) - min(B) for the whole period. That is the wrong object.
You need loop extraction first.

| Model | Best use in lamination stacks | Main inputs | Good at | Weak at |
|---|---|---|---|---|
| Classical Steinmetz | Back yoke, smooth tooth body, near-sinusoidal flux | f, Bpk, k, alpha, beta | Fast screening, early sizing | PWM ripple, minor loops, rotating flux |
| Loss separation model | Material and process trend studies | f, Bpk, kh, ke, kex, n | Showing what changed | Time-domain waveform distortion |
| iGSE / time-domain Steinmetz | Teeth, tooth roots, inverter-fed motors | B(t), dB/dt, DeltaB_i, fitted exponents | Harmonic-rich waveforms | Process damage unless added explicitly |
| Region-corrected stack model | Design release and test correlation | region mass, local flux, correction factors | Built-stack realism | Needs decent flux mapping |
Do not fit one elegant curve across the whole map unless the operating window is narrow.
Use at least two bands:
The fitted form is:
ln(Pspec) = ln(k) + alpha * ln(f) + beta * ln(Bpk)
This is a multiple linear regression problem after log transform.
Set up the regression like this:
x1 = ln(f)
x2 = ln(Bpk)
y = ln(Pspec)
y = a0 + a1*x1 + a2*x2
alpha = a1
beta = a2
k = exp(a0)
In a spreadsheet, build three columns for ln(Pspec), ln(f), and ln(Bpk), then run a built-in multiple linear regression or LINEST-style function on those log-transformed columns. The two slopes are alpha and beta. The intercept is ln(k).
Three-point back-solving still has a place. Quick first pass. Nothing more.
alpha = ln(P2/P1) / ln(f2/f1)
beta = ln(P3/P2) / ln(B3/B2)
k = P1 / (f1^alpha * B1^beta)
Good for screening. Weak for release work.
One average flux density for the whole stator usually hides the part that matters.
At minimum, split into:
If the machine is fast, small, or heavily loaded, add:
The reason is simple enough. Tooth and yoke do not see the same waveform. They do not see the same stress state either.
For each region, extract one of these:
Bpk for classical SteinmetzB(t) for iGSEDo not feed one global air-gap loading number into a lamination loss model and expect it to behave.
For each region r:
Pclean_r = m_r * Pspec_r
Where:
m_r = steel mass of region r, kgPspec_r = specific core loss of region r, W/kgThen sum:
Pcore_clean = sum_over_r( Pclean_r )
This is the material-only estimate. It is not the production-stack estimate.
Use the built-stack form for anything serious:
Pstack_r = m_r * Cproc_r * Crot_r * Pspec_r
and
Pcore_stack = sum_over_r( Pstack_r )
Where:
Cproc_r = process correction for region rCrot_r = rotating-flux correction for region rCproc_r covers the usual damage sources: cutting, burrs, edge degradation, welding heat, interlock distortion, stack compression, press fit. Crot_r exists because alternating-flux loss and rotating-flux loss are not the same thing, and corners do not care what your simplified spreadsheet assumed.
DeltaB_i in iGSE Without Faking ItThis is the part people tend to jump over.
For a clean single major loop, life is easy. For PWM-rich stator teeth, it is not.
Do not define iGSE with one global swing:
DeltaB_global = max(B) - min(B)
That is acceptable only when the waveform is basically one clean loop with no meaningful embedded minor loops.
For distorted waveforms, define loss intervals segment by segment, or loop by loop.
B(t).For a monotonic segment i:
DeltaB_i = abs( B_end_i - B_start_i )
For an extracted minor loop j:
DeltaB_j = abs( Bpeak_j - Bvalley_j )
Then compute:
Pspec = (1/T) * sum_over_all_segments_and_loops( local_iGSE_contribution )
This matters because the waveform shape changes the loss path, not just the peak value. A tooth waveform with nested minor loops can look modest in Bpk and still run expensive.
If you are implementing this from FEA time-series data, the safe order is:
B(t) to uniform time spacingDeltaB_i for each segment or loopNot pretty. It works.
These are engineering starting bins, not universal constants.
| Lamination stack region | Typical waveform | Suggested Cproc start range | Suggested Crot start range | Comment |
|---|---|---|---|---|
| Back yoke, clean punched stack | near sinusoidal | 1.05 to 1.20 | 1.00 to 1.05 | Usually the calmest region |
| Tooth body | distorted but mostly alternating | 1.10 to 1.25 | 1.00 to 1.08 | Ripple starts to matter |
| Tooth root / slot shoulder | harmonic-rich, stress-sensitive | 1.15 to 1.35 | 1.05 to 1.20 | Common hotspot |
| Bridge / corner / narrow neck | partial rotation, local saturation | 1.20 to 1.40 | 1.10 to 1.30 | Scalar loss is often low here |
| Welded or hard press-fit zone | varies | 1.25 to 1.50 | 1.00 to 1.15 | Calibrate early with test data |
A rough rule. Useful enough.
Keep the material fit clean. Keep the process penalty explicit.
If time is short, split only into:
Give them separate Bpk, separate fitted coefficients, separate correction factors. Still much better than one whole-core average.
If the tooth root is narrow, highly utilized, and close to slot opening distortion, do not leave it at clean-sheet loss.
A conservative starting correction is:
Proot_stack = 1.2 to 1.4 * Proot_clean
Then calibrate after first hardware.
Classical eddy-current loss usually moves the way you expect. Built stacks do not always follow cleanly. Punch damage, excess loss, and stress can eat part of the gain.
Always report:
Pcore_cleanPcore_stackIf you publish only one number, someone will assume it means more than it does.

This usually makes the high-flux region look cheaper than it is.
Pspec directly against f and BpkWrong fit space. Regress ln(Pspec) against ln(f) and ln(Bpk) if you want Steinmetz coefficients.
DeltaB for a waveform with minor loopsThis is the main iGSE trap. A global max(B) - min(B) is not a substitute for loop extraction.
That tends to erase the teeth. The teeth still exist.
The stack has been cut, joined, pressed, maybe welded. That changed the answer.
Scalar alternating-field models often look calm exactly where the flux locus is not calm at all.
At minimum:
Bpk or B(t) sourceCproc and Crot assumptionsWithout that, the final watt number may still be usable. It is just hard to trust.
Use classical Steinmetz region by region. At minimum, separate teeth and back yoke. Then apply a process correction to convert clean-sheet loss into built-stack loss.
When the local flux waveform is no longer close to sinusoidal. Teeth under PWM ripple, tooth roots near slot openings, and harmonic-rich regions usually cross that line first.
DeltaB be defined in iGSE for PWM waveforms?Not as one global max(B) - min(B) if minor loops are present. Use turning-point detection and loop extraction, then assign DeltaB_i to each monotonic segment or extracted subloop.
Not strictly. But some form of subloop extraction is mandatory once the waveform contains nested minor loops. Rainflow-style handling is one practical route.
k, alpha, and beta in a spreadsheet?Log-transform the data first. Regress ln(Pspec) against ln(f) and ln(Bpk). The two slopes are alpha and beta. The intercept gives ln(k), so k = exp(intercept).
Steel area. Always. Gross stack area lowers the flux density and drags the loss estimate down with it.
Yes, if accuracy matters. The waveform, stress sensitivity, and local flux level are different enough that a single whole-core model often misses the hotspot.
Not automatically. It usually helps the classical eddy-current term, but process damage and excess loss can offset part of the gain.
Corrected stack loss. Keep the clean-sheet value for material comparison, but compare the corrected stack number against the motor you actually built.
Use Steinmetz for speed. Use region splitting for realism. Use iGSE when the local waveform stops behaving like a sine wave. Use loop extraction before defining DeltaB in distorted waveforms. Use log-transformed multiple regression when fitting k, alpha, and beta. Use explicit process correction because lamination stacks are manufactured parts, not magnetic coupons.
That is usually enough to move the estimate from clean spreadsheet fiction to something closer to the test stand.