How to simulate skewed laminations or magnets?

How skewing is handled in MANATEE

Skewing effects can be fully modeled in MANATEE electromagnetic and vibroacoustic models.

To simulate a skewed Lamination in MANATEE (linear slot or pole inclination, or more complex shape), the first thing to do is to activate the skew computation inside MANATEE. To save computation time and memory, lamination are by default simulated in 2D. A common mistake is to specify a skewed lamination in the machine but forget to activate the skew simulation. To activate the skew model, one need to set (in the project file) :


Input.Simu.type_skew allows to select the way to simulate the skew :

  • 0 => No skew for rotor and stator (default)
  • 1 => Include the skew to calculate the average 2D flux along axial direction, so that average magnetic forces are given by the square of the average magnetic flux
  • 2 => Include the skew to calculate the 3D flux, so that average magnetic forces are given by the average of the square of the flux (memory and time consuming but most accurate)

The exact calculation is given by Input.Simu.type_skew=2. Input.Simu.type_skew=1 saves memory and calculation times but it should be used very carefully. In general it is valid for induction machines rather than synchronous machines, but it is advised to compare both cases before choosing Input.Simu.type_skew=1.

Input.Simu.Nskew_slices allows you to choose the number of discrete slices along the Z axis for the skew. Keep in mind that the flux density, permeance and magnetomotive force matrices have the size (Nt_tot,Na_tot,Nskew_slices) with type_skew=2.

Define your skew shape

Now that you have enabled the skew simulation, you can specify how your lamination are skewed. As for many other cases in MANATEE, the rotor and stator use the same variable in the same way to define the skew. The only difference is the name of these variable (’s’ for stator and ’r’ for rotor).

For all the skew type, note that the slices are defined between [0,Lst1] for the stator ([0,Lst2] for the rotor) and that the skew angle is computed at the middle of the slice. For instance, with Nskew_slices=2, the slices are [0,Lst1/2], [Lst1/2,Lst1] and the skew angle is computed for z=Lst1/4 and z=3*Lst1/4.
One can control the skew with the command plot_skew.
With that said, the only thing left to define is the function skew_angle= f(z) by selecting Input.Geometry.type_skew_geoR.

Note that for all skew shapes (except user-defined one) the middle slice at z=L/2 is the reference unskewed one. In particular the default linear skew is symmetrical and goes from -alpha/2 to + alpha/2 if alpha is the total skew angle (then the middle slice represents the 2D unskewed machine). To model an asymmetrical linear skew from 0 to alpha a user-defined skew must be used. The reference unskewed slice is used for the defintion of the load angle in PMSM.

Linear symmetrical skew

Input.Geometry.type_skew_geoR = 0;         
Input.Geometry.skew_rater = 36/28;

For this first type, the skew function is simply linear. Note that the skew rate is expressed in stator slot pitch for both rotor and stator skew. In the example, a linear skew of the rotor cage of 36/28 stator slot pitch is introduced, meaning a 1 rotor slot pitch (for Zs=36 and Zr=28).

Linear Skew
Linear Skew

Piece-wise constant skew

Input.Geometry.type_skew_geoR = 1;         
Input.Geometry.skew_rater = 36/28;
Input.Geometry.Nsegm = 4;
Rotor Step Skew
Rotor Step Skew

The number of floor in the curve is set by Nsegm. Note that the skew rate is expressed in stator slot pitch for both rotor and stator skew.

Herring-bone skew

Input.Geometry.type_skew_geoR = 2;         
Input.Geometry.skew_rater = 36/28;
Herring Bone Skew
Herring Bone Skew

For this curve, one should use an uneven number of skew slices to make sure the maximum value is reached. The maximum of the curve is skew_rater*2*pi/Zs.Note that the skew rate is expressed in stator slot pitch for both rotor and stator skew.

User-defined skew

If the previous cases are not suitable for your application, you can simply provide Manatee with the curve skew_angle = f(z).

Input.Geometry.type_skew_geoR = 3;         
Input.Geometry.skew_curver = sin(2*pi/350e-3*linspace(0,350e-3,100));  
% With Input.Geometry.Lst2 = 350e-3;

The skew will then be interpolated according to Nskew_slices.

User-defined sinusoïdal skew
User-defined sinusoïdal skew
Previous Next