I think you're running into a couple of issues here, some of which I've been dealing with as I'm simulating Miles' motor. All of them are pretty deep in the weeds, little land mines waiting for the unwary.
bearing wrote:Something has got to be wrong with your model. Maybe the properties of the iron materials are wrong. Seems like it never saturates. When the backing iron starts to saturate, the airgap flux should get weaker.
Kingfish wrote:I am still looking for a good answer on calculating material saturation; it's like this big secret - deathly silence when asked.
#1 - Saturation. I think you've fallen into a bit of a hidden trap here which FEMM has laid. I posted a note regarding this over on Miles' thread, which I'll repeat here. Most of the materials in the FEMM library, at least the magnetic ones, are defined via a list of points on the nonlinear B-H curve. This is a good way to model them, but the catch is that these models are only valid within the range where they're defined. FEMM extrapolates the models linearly outside this range, which results in non-physical behavior such as the relative permeability of iron not going to one for infinite H (it will instead stay constant at the value for the last two points defined). This lets you push B in the material way higher than it would ever go. You would never
get 10 T in a real material. Most steels will saturate around 2 T or so for reasonable (achievable) values of H. The solution to this is quite simply to stay within the bounds of the model, or find material data to extend the model where you need it to be. If you get values of B greater than the maximum entry in the material B-H curve, you're in dangerous territory. All the B-H curves for "soft" materials I've looked at in FEMM have data well into saturation. For example, the model for 1006 steel has data to 2.3 T, which is well into saturation and past anything you'd really want to see in a motor.
Kingfish wrote:According to the help manual on Page 93, mo_blockintegral(11) = "x (or r) part of steady-state Lorentz force", and mo_blockintegral(18) = "x (or r) part of steady-state weighted stress tensor force".
Should I be looking at other integrals?
#2 - Force. I've had iffy results from using the Maxwell stress tensor in FEMM. I'm deriving my force results from the magnetic coenergy instead. I'm not claiming that the stress tensor method is wrong, or that FEMM is implementing it wrong, but I've been getting much more believable results using coenergy. Perhaps I should try and find a reference case where experimental data are available for comparison and validation, that would be something good to do when I have time. I believe the FEMM documentation describes the coenergy method; if not I can help you. The other issue I had using the tensor method is that I had to use a very fine mesh size in order to get the results to converge, which was taking way too much computation time. No matter which method you use, you should be wary of convergence. That is, you should get basically the same answer if you make the mesh slightly smaller or larger. Numerical methods are notorious for this and it's another trap for the unwary. Also, you don't want to use the Lorentz calculation unless you're modeling an iron-less stator. Even then, the coenergy calculation is valid for all cases so I would suggest using it over Lorentz.
bearing wrote:Did you define boundary conditions? How much air is there around the motor?
#3 - Regarding boundary conditions, I experimented with several. I ended up using a Dirichlet condition ("Prescribed A") on the outer edges of the back iron with all components set to zero. This basically forces all flux to stay within the iron (keeps flux lines parallel to the boundary), which is valid so long as you pay attention to #1 and don't drive the iron way into saturation where a lot of field wants to leak out the back. On the left and right edges of my linear array, I left the boundary undefined, which in FEMM means a Neumann condition. This allows flux to pass through the boundary at 90 degrees. If you place the boundary halfway to where the next pole should be, the fields end up being almost identical to those without the boundary. I would still allow at least one extra pole pair, just to keep the boundary a little further away from the area you care about. Using these boundary conditions let you avoid using a whole bunch of extra air space in the model but still get valid results.