0% found this document useful (0 votes)
145 views17 pages

EMDLAB

EMDLAB is a numerical package developed under MATLAB for designing and analyzing electromechanical equipment. It contains solvers for problems like magnetostatics, structural analysis, and thermal analysis. Users can define a geometry, assign materials, choose a solver, apply boundary conditions, solve the problem, and post-process results. The document provides an example script showing how to use EMDLAB to calculate the temperature distribution in a square domain with a known boundary temperature.

Uploaded by

khalil.touimi.dz
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
145 views17 pages

EMDLAB

EMDLAB is a numerical package developed under MATLAB for designing and analyzing electromechanical equipment. It contains solvers for problems like magnetostatics, structural analysis, and thermal analysis. Users can define a geometry, assign materials, choose a solver, apply boundary conditions, solve the problem, and post-process results. The document provides an example script showing how to use EMDLAB to calculate the temperature distribution in a square domain with a known boundary temperature.

Uploaded by

khalil.touimi.dz
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 17

EMDLAB

Electromechanical Motion Devices LABoratory


A numerical package under MATLAB environment

Ali Jamali Fard

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 uses external compiled C++,


Fortran and Python files that are executable in
MATLAB, so for developing and analyzing a
structure only you need MATLAB runtime.
These external files make the codes more
efficient and reduce simulation time. Using
EMDLAB you can totally develop your scripts
in MATLAB and analyze your design. Through
simple commands you can access all mesh data
for post processing purposes.

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.

Step for scripting:


 Construction of mesh zone
 Definition of mesh database
 Definition of solver
 Setting physics
 Processing
 Post processing

EMDLAB:
A numerical package under MATLAB environment Page | 3
www.emtrl.aut.ac.ir
EMDLAB
Electromechanical Motion Devices LABoratory

Developed MATLAB code

%% 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.

In what follows we describe detail of scripts.

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.

Geometry & Mesh

%% 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

% adding material to mesh data base


m.addMaterial(materialdir, 'copper');
% setting of zone materials
m.setMaterial('square', 'copper');
% standard refinment of mesh
m.strefine;

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

% 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);

In 2D problems we can impose boundary conditions on nodes or edges. For this


we must know the index of those nodes or edges of mesh that we want to apply boundary
conditions on them. Using m.getfbeiol_p0u([0,0],[0,1]) we can get index of free
boundary edges that are on the line throwing from the points (0,0) and (0,1). We define
'T1' as an edge named selection. 'T1' is left boundary of problem. 'none' by default
refers to unnamed edges. Throw two following command we set two fixed temperature
boundary conditions.

Solve and viewing result

% calling solver to run


s.solve;
% plotting of results
s.plotTemperature;

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 can join to your team. Using EMDLAB


we can prepare multi-physics FEA solvers
according to your design.

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

Switched reluctance motor

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

Linear BLDC motor

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

You might also like