EMDLAB
EMDLAB
2020
www.emtrl.aut.ac.ir
EMDLAB
Electromechanical Motion Devices LABoratory
About US
EMDLAB is a numerical package developed under MATLAB environment for
design and analyzing of electromechanical equipment such as electrical machines,
transformers, actuators and etc.
EMDLAB is a library of MATLAB objects. According to your desired design,
you should choose proper modules and use them in order to get valid results.
EMDLAB is under developing. Developed solvers are:
Two dimensional magneto-static (in XY plane, Axisymmetric)
Two dimensional magneto-frequency (in XY plane, Axisymmetric)
Two dimensional magneto-dynamic solver (without any moving object)
Two and Three dimensional static structural
Two and Three dimensional thermo-static and thermo-dynamic
Two and Three dimensional DC and AC conduction
The problems that we are working are:
Developing a robust Two dimensional magneto-dynamic (fully time
stepping considering motion) solver
Developing a robust three dimensional magneto-static solver
Developing Two and Three dimensional dynamic structural solvers
Developing a general purpose MEC (Magnetic Equivalent Circuit) solver
Extending PEC (Power Electronic Circuit) elements library
CAD imports for FEA solvers:
DXF
STEP
Using EMDLAB we can develop customized stand-alone software according to
your design. Our products are easy to use, fast and cost effective. We can develop any
numerical subroutines in MATLAB according to your needs for purposes such as
optimization.
EMDLAB:
A numerical package under MATLAB environment Page | 1
www.emtrl.aut.ac.ir
EMDLAB
Electromechanical Motion Devices LABoratory
EMDLAB:
A numerical package under MATLAB environment Page | 2
www.emtrl.aut.ac.ir
EMDLAB
Electromechanical Motion Devices LABoratory
A simple example
In what follows we provide a gist description of EMDLAB code for a simple
problem. This is a classic problem. The problem is calculation of temperature
distribution in a square when temperature is known at square boundaries. The geometry
of problem is shown here.
EMDLAB:
A numerical package under MATLAB environment Page | 3
www.emtrl.aut.ac.ir
EMDLAB
Electromechanical Motion Devices LABoratory
%% initialization
clc
clear
% path of folder containing materials data
materialdir = [cd,'\MaterialsData'];
%% generation of mesh
% getting a Triangular Mesh Data Base Class
m = TMDBC();
% adding a mesh zone to "m" directly
m.addmz('square', TMZPC([1,2,3;1,3,4],[0,0;1,0;1,1;0,1]));
% adding material to mesh data base
m.addMaterial(materialdir, 'copper');
% setting of zone materials
m.setMaterial('square', 'copper');
% standard refinment of mesh
m.strefine;
%% solver setting
% getting an instance of solver object
% IHLTHSTL3: Isotropic Homogenous Linear THermo-Static Triangular
Lagrangian 3 node
% each solver gets its compatible mesh as input
s = IHLTHSTL3(m);
% setting physical units
s.setUnit('length', 'm');
s.setUnit('surfaceLossDensity', 'w/m^2');
s.setUnit('power', 'w');
% adding edge named selections
% getting index of edges of mesh lieyng of left boundary
m.addEdgeNamedSelection('T1', m.getfbeiol_p0u([0,0],[0,1]));
% setting boundary conditions
s.setneFixedTemperatureBC('T1', 1);
s.setneFixedTemperatureBC('none', 0);
% calling solver to run
s.solve;
% plotting of results
s.plotTemperature;
EMDLAB:
A numerical package under MATLAB environment Page | 4
www.emtrl.aut.ac.ir
EMDLAB
Electromechanical Motion Devices LABoratory
Temperature distribution
After running the above simple mfile you can see following result that is
temperature distribution in the domain of problem.
EMDLAB:
A numerical package under MATLAB environment Page | 5
www.emtrl.aut.ac.ir
EMDLAB
Electromechanical Motion Devices LABoratory
Initialization
%% initialization
clc
clear
% path of folder containing materials data
materialdir = [cd,'\MaterialsData'];
In this part we initialize the problem. The two first commands are clearing
command window and existing variables in workspace. The third line is a string that
refer to the folder that contain material database. Materials data are in binary formats.
Also you can define your materials data easily.
%% generation of mesh
% getting a Triangular Mesh Data Base Class
m = TMDBC();
% adding a mesh zone to "m" directly
m.addmz('square', TMZPC([1,2,3;1,3,4],[0,0;1,0;1,1;0,1]));
In this part we declare m as a TMDBC object. TMDBC stands for Triangular Mesh
Data Base Class. This object is a mesh class. For generation of geometry and mesh you
can use different methods. EMDLAB has a c++ geometry kernel. Also you can input
your mesh manually as this simple example. Every zone must be meshed and put in
TMDBC. For TMDBC every mesh zones are TMZPC. TMZPC stands for Triangular Mesh Zone
Properties Class. TMZPC got connectivity list and coordinate of nodes and construct a
mesh.
EMDLAB:
A numerical package under MATLAB environment Page | 6
www.emtrl.aut.ac.ir
EMDLAB
Electromechanical Motion Devices LABoratory
Definition of materials
In this part of mfile we set materials. At the first 'copper' from material library
added to m. Secondly we set material of a mesh zone named 'square' as 'copper'.
Setting solver
%% solver setting
% getting an instance of solver object
% IHLTHSTL3: Isotropic Homogenous Linear THermo-Static Triangular
Lagrangian 3 node
% each solver gets its compatible mesh as input
s = IHLTHSTL3(m);
% setting physical units
s.setUnit('length', 'm');
s.setUnit('surfaceLossDensity', 'w/m^2');
s.setUnit('power', 'w');
After preparation of geometry and mesh and setting materials we must choose
our solver. In this problem we need IHLTHSTL3 solver. IHLTHSTL3 stands for Isotropic
Homogenous Linear THermo-Static Triangular Lagrangian 3 node. The input for this
object is a triangular mesh. In the following lines we set dimension of units.
EMDLAB:
A numerical package under MATLAB environment Page | 7
www.emtrl.aut.ac.ir
EMDLAB
Electromechanical Motion Devices LABoratory
Boundary conditions
Using these two simple above commands you can solve the problem and plot
temperature distribution.
Post processing is very easy and you can use EMDLAB along MATLAB optimization
package or SIMULINK [for fast dynamic simulation].
EMDLAB:
A numerical package under MATLAB environment Page | 8
www.emtrl.aut.ac.ir
EMDLAB
Electromechanical Motion Devices LABoratory
Develop your design flow. Prepare your optimization algorithm. Solve your problem. If you need
help we can provide any numerical subroutines for you in term of MATLAB, c++, fortran and
python codes.
We love what we do, some might say a bit too much, and we bring enthusiasm and
commitment to every project we work on. As we are a small team with minimum overhead
our services are cost effective and fast.
EMDLAB:
A numerical package under MATLAB environment Page | 9
www.emtrl.aut.ac.ir
EMDLAB
Electromechanical Motion Devices LABoratory
Induction motor
EMDLAB:
A numerical package under MATLAB environment Page | 10
www.emtrl.aut.ac.ir
EMDLAB
Electromechanical Motion Devices LABoratory
EMDLAB:
A numerical package under MATLAB environment Page | 11
www.emtrl.aut.ac.ir
EMDLAB
Electromechanical Motion Devices LABoratory
DFIG
EMDLAB:
A numerical package under MATLAB environment Page | 12
www.emtrl.aut.ac.ir
EMDLAB
Electromechanical Motion Devices LABoratory
EMDLAB:
A numerical package under MATLAB environment Page | 13
www.emtrl.aut.ac.ir
EMDLAB
Electromechanical Motion Devices LABoratory
IPM motor
EMDLAB:
A numerical package under MATLAB environment Page | 14
www.emtrl.aut.ac.ir
EMDLAB
Electromechanical Motion Devices LABoratory
SyRM
EMDLAB:
A numerical package under MATLAB environment Page | 15
www.emtrl.aut.ac.ir
EMDLAB
www.emtrl.aut.ac.ir