Simultaneous Electromagnetic Optimization of Electric Motor Families
A family of brushless motors is usually one frame size sold as several speed constants. Share the lamination and you buy one stamping die instead of N — but the variants then fight each other for the same iron. We built the method that resolves that fight, and measured what it costs.
- Tooling avoided at N=3
- $72,000Tooling avoided at N=3Parametric model — $30k per die, $2k/yr SKU carrying cost, 3-year amortization.
- Mean Kv error across four variants
- 2.4%Mean Kv error across four variantsMax 3.9%, min 0.7%. No calibration factors applied.
- Fewer FEM solves per design decision
- 75%Fewer FEM solves per design decisionReduction in calls to reach 5% Kv tolerance, over 280 paired races.
- Geometry search for a four-variant family
- ~20 minGeometry search for a four-variant familyAgainst 2–4 months of manual iteration. Search phase only — physical validation still required.
A die costs more than the engineering
Small brushless motors are not sold one at a time. A manufacturer picks a frame size and sells it as a family — the same outer dimensions in several speed constants, obtained by rewinding the same stator with a different number of turns.
The electromagnetics of that are straightforward if you give each variant its own stator. The economics are not. Each unique stator lamination needs its own progressive stamping die, at USD 15,000 to 50,000, plus its own line item in inventory. A family of four variants designed independently is four dies before a single motor ships.
So manufacturers share. They pick one lamination and make every variant live on it. In current practice that is done by hand: optimize the highest-volume variant, check whether the others can be wound on the result, adjust when they cannot, and repeat. Two to four months, and three to five physical prototypes, to arrive at a compromise nobody can prove is the right one.
Nobody had measured what the compromise costs.
The same tooth saturates differently
The reason sharing is hard is not geometric. It is magnetic, and it only appears under load.
With the rotor magnets alone — no current — every variant on a shared lamination sees an identical field. The tooth flux density is the same number for all of them, because the winding has not done anything yet. Put current through them and they diverge, monotonically with the ampere-turns each winding produces.
We measured it on one lamination, three windings, taking the 95th percentile of peak flux density over the stator core:
| Condition | Tooth B | Iron above 1.8 T |
|---|---|---|
| No load, magnet only | 1.785 T | 2.9% |
| 8 turns | 1.859 T | 10.9% |
| 9 turns | 1.909 T | 15.3% |
| 12 turns | 1.949 T | 18.1% |
The consequence is a constraint no single-motor optimizer can see. The variant with the fewest turns pushes the most flux per turn and saturates the tooth first, so it sets the minimum tooth width for the entire family. Meanwhile the variant with the most turns needs the deepest, widest slot to fit its copper at an acceptable fill factor. Wider tooth means narrower slot. The requirements pull in opposite directions.
The feasible region for a shared lamination is therefore the intersection of every variant's individual feasible region — always smaller than any one of them, and sometimes dramatically so. Optimizing one variant and scaling afterwards cannot find it, because the binding constraint belongs to a variant you were not looking at.
Every candidate geometry, against every variant, inside the loop
The method inverts the usual order. Instead of designing a motor and checking the family, it proposes a shared geometry and scores the whole family before deciding whether the geometry was any good.
For each candidate lamination the system:
- selects the integer winding — turns per tooth and parallel circuits — that lands each variant closest to its target speed constant, automatically, for all N variants;
- runs a finite element solve per variant on that geometry with that winding;
- enforces flux density, fill factor and current density limits across all variants simultaneously, accepting the geometry only if every variant passes;
- collapses the N per-variant results into one aggregate family fitness;
- hands that single number to a multi-objective optimizer, which proposes the next geometry.
What comes out is one lamination outline suitable for cutting a die, and N winding specifications to go with it.
A closed-form pre-screener sits in front of the solver and rejects roughly seven in ten candidates in under a millisecond, so the FEM budget is spent on geometries that could plausibly work. The rest of the detail — the objective weighting, the constraint set, the saturation model and its calibration — is where most of the work went, and is not published here.
Checked against motors that already exist
A simulation that agrees with itself proves nothing. Three anchors:
Against measured hardware. Three reference motors across two slot/pole topologies, predicted with every calibration factor set to 1.0 — no per-family fudge:
| Reference | Predicted vs reference | Source |
|---|---|---|
| Motor A, 12-slot/14-pole | +2.2% | Measured |
| Motor B, 24-slot/28-pole | −1.6% | Measured, four-motor average |
| Motor C, 24-slot/28-pole | +2.0% | Independent commercial solver |
Getting there was not graceful. A double-layer winding assumption that was wrong by a factor of two put the first of those at 109% error. Removing it took the same motor to 10%, and dropping a spurious end-effect term from the speed-constant path took it to 2.2%. The errors were in our model, and the record of them is in the repository.
Against an independent solver. Speed-constant agreement with a separate commercial FEM package to under 1%, again at unity calibration.
Against a real family. Four variants of a production family from a European motor manufacturer, optimized as a platform: 2.4% mean speed-constant error, 3.9% worst, 0.7% best, all four satisfying every constraint on a single shared lamination. Fifty candidate geometries, four FEM solves each, two hundred solves, about twenty minutes on a desktop workstation.
That twenty minutes replaces the geometry search, not the development cycle. Physical validation still has to happen.
What the shared die actually costs you
This is the number the project exists to produce, and it is a cost, not a benefit.
Both arms run the same code, the same seeds, the same evaluation budget: one optimizes the family on a shared lamination, the other optimizes each variant independently. The gap is the platform penalty.
On the harder family — three variants, 12-slot/14-pole, weighted toward the mid-Kv product — the penalty is 3.27 ± 2.87 objective points across ten seeds, where a point is roughly a percentage point of speed-constant error. On a second, larger family it was 0.74 ± 0.67. Scaling from two variants to eight, the penalty grows and then plateaus, while FEM cost rises roughly linearly.
The structure of the penalty is more useful than its average. The binding low-turns variant pays nothing in all ten seeds — the platform geometry simply is its independent optimum, because it is the variant setting the constraint. The mid-Kv variant absorbs almost all of the loss.
And in nine per-variant cases, plus three more in the scaling runs, the platform arm beat independent optimization outright at matched budget. Constraining the search to a shared geometry sometimes helps it. We did not expect that and have not removed it from the results.
Set against the penalty: at three variants the parametric tooling model gives roughly $72,000 avoided, and at eight variants $252,000 — about $24 per unit at a thousand units a year. Those are model outputs on disclosed assumptions, not measurements, and should be read as such.
Reusing what the last family taught us
Each family costs FEM solves to learn. The obvious question is whether the next one can start from what the last one produced.
Predicting the speed constant directly across families fails — around 20% median error. Predicting the ratio between the FEM result and a closed-form analytical estimate works, because the analytical model already absorbs the scale and the ratio is close to family-invariant. That drops it to about 5%.
Used as a warm start, on real FEM data with zero solves on the target family:
| Cold start | Transfer | |
|---|---|---|
| FEM calls to reach 5% Kv tolerance | 8.03 ± 0.91 | 2.00 ± 0.29 |
| Best Kv error after five calls | 7.1% | 1.7% |
75.1% fewer solves, over 280 paired races at seven target speed constants and forty seeds, both arms drawing from identical candidate batches.
The deployed system refuses to transfer across slot/pole topologies. That restriction is there because the first cross-topology test failed badly — and the reason it failed turned out to be our own data hygiene rather than the physics.
The corrections are the credential
Four things in this project went wrong in public, and they are the part we would point a reviewer at first.
The speedup was overstated. The transfer benefit was originally measured at 85%. A bug in the benchmark harness was inflating it. Corrected to 75.1%, then re-run again when an audit found the stored artifact had been overwritten by a shorter interim run.
A headline negative result was wrong. Cross-topology transfer appeared to fail at 31% error, and we published that as a limitation. It was an artifact of pooling data generated by different versions of our own code. Split by code era, cross-topology error is about 5–6% — the same as within a topology. The old data reproduces the 31% exactly, which is how we know. The finding was reversed against our own interest.
The optimizer does not beat random search. At matched budget the production strategy scored 12.2 ± 0.8, plain Latin hypercube sampling 11.5 ± 1.4, and uniform random 10.9 ± 2.4. No significant separation. The search strategy is not the lever here; the transfer warm start is. Reported as a null result.
A patent sub-claim is contradicted by our own ablation. One paragraph asserts a feature choice the ablation does not support. It is flagged in the evidence dossier rather than quietly dropped.
On the word "agentic"
The repository is named for it, and the name is now wrong. An LLM meta-controller did ship — it watched optimization campaigns, summarized progress and adjusted the optimizer's bounds between rounds. It was deleted in June. An optimization loop that has to be crash-recoverable and bit-reproducible from a seed cannot have a language model inside it.
Agents run everything around the loop: the audits, the evidence dossier that binds every claimable number to a git-tracked artifact, and a paper-writing skill with an automated checker that fails if a figure contains a hand-entered number. Never inside it.
What this is not
There is no hardware prototype. Every result above is cross-tool agreement and measured anchors on motors somebody else built. Cutting a die from one of these laminations and testing the family is the largest remaining gap, and nothing here should be read as though it has been done.
It is not production-ready as a manufacturing output. Reviewed against design-for- manufacturing criteria it scores 5.5 out of 10 — prototype-ready, not production-ready. The airgap tolerance stack accumulates to ±24% against a ±5% speed-constant tolerance, which is a real problem and not a rounding one.
One topology is out of reach below a certain size. A systematic search of six thousand samples found zero feasible designs for 24-slot geometries under roughly 80 mm — the slots cannot be made wide enough to satisfy manufacturing constraints at that diameter, independent of current or target speed constant. Twelve-slot stays feasible smaller.