Candidate selection process for motor prototype

Posted on June 23, 2008


In the past, I tried to create as many different motor simulation models as I could, in order to explore and learn about the possibilities. Halbach arrays or not, ironless or ferrous cores, one or two magnetic rotors, radial flux or axial flux, etc.

Lately I’ve been making practical decisions and tweaking my simulation scripts with the intention of selecting a specific model for the next phase: building a motor prototype.

I’ve corrected a hand full of bugs in my “Radial Flux + Double Rotor + Halbach Layout + Tight Slot” motor model, which looks like the most promising model, and I’ve been running my analysis on it.

My analysis of candidates goes like this:

  1. Batch FEMM simulations of Torque vs. Design. This LUA-automated exploration takes one motor model and runs through all possible Neodymium magnet types in a list of 43 items compiled from 3 online shops. It tries to build motors with each of them (validating geometric feasibility), and in the positive cases it redesigns the motor with a “Stator Occupation” ranging from 50% to 85% (increasing in 1% steps and eliminating redundant designs). For each Occupation level it cycles all 6 possible “Current Phase Switching Steps” to find the maximum Torque. All these combinations are also tested with a “Pole Multiplier Factor” ranging from 1 to 5 (filtering out duds). It records all output data in magnetic flux image files, with details such as how many magnets where used, number of poles, occupation level, maximum torque, and voltage per phase in their file names.
  2. Parsing of results into tables and graphs. With a perl script that takes the output files in a directory, grabs their file names, and compiles a neat tab-delimited table with the maximum torque for each design. It filters out the less-worthy phase switching steps, leaving only the different magnet types, number of poles, occupation levels, and respective output torque. As a bonus, it also calculates the “score” of a design, as Nm/kg (output torque vs. total weight of magnets). This helps a lot in selecting the best candidates. From this point on, it’s just “copy-and-paste” the table into a spreadsheet and press the buttons to get a graph.

It’s probably a good time to clarify a few concepts. 🙂

  1. “Stator Occupation” is a name I came up with for the width of “Stator Teeth” – it is the ratio between the effective width of the Stator “tooth” and the maximum possible width for it in the design. 0% means there is no metal core, the copper winding has zero radius. 100% means the metal teeth are glued together side-to-side, so it is useless because there would be no space for the copper windings. I’ve noticed that the higher the occupation, the higher the torque, and so I’ve eliminated the “under 50%” region from the scanning. Above 85% it is difficult to fit the copper wires in. But I still reserve the chance to find some “sweet spots” somewhere in the middle, because of the discrete magnet dimensions.
  2. “Phase Switching Step” is a motor current “snapshot”. I’m using 3-phase current in my simulations, but to keep it simple I’ve restricted it to basic square-wave switching instead of sine-wave. It should give the same results in terms of maximum possible Torque. In this domain, there are 6 possible different states of “on/off” combinations of the 3 phases, and the script runs through them all. I’ve selected this as a quicker and less computer-intensive strategy to find the max torque, instead of rotating the Rotor itself with one phase active, trying to detect the position of highest torque as I did before. Spinning the rotor one degree at a time, for at least 90 degrees, is a waste of resources when I can spin only the current field in 6 steps.
  3. “Pole Multiplier” is a factor I use for increasing the effective number of magnetic poles of the model, without changing anything in its basic configuration. I just multiply the number of base magnetic poles that the model has, both for the Stator and the Rotor. So, for example, a normal LRK motor with 14 Rotor poles and 12 Stator poles becomes a “double-density” 28 Rotor / 24 Stator poles when applied a factor of 2. The extra Stator coils are wound in series with the base ones, so this maintains the current per phase and increases the total voltage (FEMM does not allow us to specify voltages, only currents). I found that, just like with “Occupation”, the rule here is “the more, the merrier”. 😉 However, I also reserve the right of finding anomalies in this domain.

So, what does this mean? It means my dual-core machine is taking 14 hours to crunch through 30 variants of the model in order to give me a digest with the best candidates… and it still hasn’t stopped. But there’s already a refreshing set of results, such as a variant built with 3mm cubic magnets that is capable of a whopping 1000 Nm when run at 100 A !!! 8)

I will be posting the results in the near future.