How to import .dxf/.fem file for FEMM simulation under MANATEE?

Objectives

Some machines have complex topologies or some geometrical particularities (bolts, complex slot or ventilation ducts, flux barriers...) that are not available in MANATEE templates. To ensure that these particularities can be taken into account in the electromagnetic simulation run with FEMM coupling and in resulting electromagnetic noise and vibrations, MANATEE software allows to import .dxf or .fem files.

Principle

One can import *.dxf or *.fem files in FEMM using the coupling with MANATEE:

  • *.dxf files can be used to import rotor and/or stator lamination geometries to replace MANATEE template geometry, while MANATEE will assign regions and boundary conditions under FEMM.
  • *.fem files are meant to import the complete model (geometry + regions + boundary conditions assigned) and MANATEE will only add the airgap region.

In both cases, a template-based geometry must be defined in MANATEE (i.e. using overlays as close as possible to real machine). The FEMM electromagnetic model will use the import to match the exact geometry and the equivalent machine will be used in all the other models.
In both cases, MANATEE will handle the definition of the airgap, the rotation of the rotor and the current updates for each time step. The use of the sliding band technique is highly recommended, which requires the lFEMM build 4.2 (from 25 Feb 2018). _One can also import a single pole and MANATEE will duplicate it according to the machine symmetry.

Case of .dxf import

Geometry

For the dxf import, here are the corresponding parameters (in the project file):

Input.Simu.is_stator_dxf = 0 ;              % (advanced) 1 to import a *.dxf file instead of drawing stator geometry in FEMM using MANATEE algorithms
Input.Simu.is_rotor_dxf = 0 ;               % (advanced) 1 to import a *.dxf file instead of drawing rotor geometry in FEMM using MANATEE algorithms

To activate or deactivate the dxf import for the rotor and/or the stator. Both lamination can be imported simultaneously.

Input.Simu.filename_stator_dxf = 'machine_stator.dxf' ;         % (advanced) path of the *.dxf file for stator geometry
Input.Simu.filename_rotor_dxf = 'machine_rotor.dxf' ;         % (advanced) name of the *.dxf file for rotor geometry WARNING : the dxf file must be in the MATLAB path

To select the dxf file to import. This file need to be in the matlab path (the matlab function "which" will be called to find the path) or one can provide the full path in the variable.

Input.Simu.shift_stator_dxf = 0 ;           % (advanced) value of the shift angle to set the stator right edge at theta=0° (WARNING: it is highly recommended to already have the first stator edge at theta=0 in the dxf file).
Input.Simu.shift_rotor_dxf = 0 ;            % (advanced) value of the shift angle to set the rotor right edge at theta=0° (WARNING: it is highly recommended to already have the first rotor edge at theta=0 in the dxf file).

By convention, the imported geometry should match the following constraints:

  • The machine center is at (0,0)
  • The file contains either the full lamination, either a single pole
  • If the file contains a single pole, the right edge should be at theta=0° (on X axis) If the dxf is not correctly oriented, this parameter enable to rotate it (it doesn’t affect the other simulation rotation).

Once the .dxf import works, MANATEE draws the right lamination geometry with or without symmetry under FEMM. Regions and boundary conditions must then be correctly set.

Air region assignment

For the regions, MANATEE will assign them as if the lamination is the one of the equivalent machine. Therefore, it is important to use a topology that matches the most the real machine. If the machine has some extra holes (like ventilations ducts for instance), on can provide MANATEE with the coordinates where to set these Air regions with :

Input.Simu.list_air_rotor_dxf = {} ;        % (advanced) list of coordinates {[x_1,y_1] ; ... ; [x_n,y_n]} to automatically assign n additional air labels in FEMM, for example in rotor pockets
Boundary conditions definition

If the symmetries are activated, MANATEE will also assign automatically the boundary condition assuming that the lamination edges is at theta=0. In the case that the edge of the lamination is not a straight line (for instance because of a notch or a ventilation), one need to provide the coordinates of a point on every part of the edge line with:

Input.Simu.list_bc_rotor_dxf = {} ;         % (advanced) In case of (anti)-symmetry, list of coordinates {[x_1,y_1] ; ... ; [x_n,y_n]} which are the middle of each segment constituting the rigth rotor edge on which (anti-)periodic BC are applied
Airgap assignment

Finally MANATEE will automatically define the airgap for the simulation. To avoid errors, we highly recommend to use:

Input.Simu.is_slidingBand = 1 ;         % (advanced) 1 to use the airgap sliding band in FEMM simulation to reduce meshing noise.

Case of FEMM model import (.fem)

To import a complete FEMM model, here are the corresponding parameters (in the project file):

Input.Simu.is_femm_import=0;                % (advanced) 1 to import an existing femm file
Input.Simu.filename_FEMM='machine_model';   % (advanced) name of the FEM finite element magnetostatic file
Input.Simu.shift_angle_FEMM=0 ;             % (advanced) shift angle value to impose to the rotor of the imported FEMM model

We find the same kind of parameters as for the dxf import (to activate/desactive the import, to select the file, to rotate the geometry to have the edge on the X axis).

By default all the MANATEE model are defined in meter, but if the imported model is defined in mm (for instance), one can set:

Input.Simu.unit_factor_FEMM=1000;              % (advanced) scaling factor between FEMM file system unit and MANATEE system unit in meters (Ex: Input.Simu.unit_factor_FEMM=1e3 if FEMM is in millimeters)

Note that by default MANATEE save the .fem files of all FEMM simulations in Electromagnetics\Femm

Validation

As an example, one can take inspiration from the NUM_010 validation case that compares a normal FEMM simulation, a FEMM simulation with sliding band and the import of the geometry from a dxf file (for both rotor and stator).