magnetic field in two-pole electric motor
find the static magnetic field induced by the stator windings in a two-pole electric motor. assuming that the motor is long and the end effects are negligible, you can use a 2-d model. the geometry consists of three regions:
two ferromagnetic pieces: the stator and the rotor, made of transformer steel
the air gap between the stator and the rotor
the armature copper coil carrying the dc current
the magnetic permeability of air and of copper are both close to the magnetic permeability of a vacuum, μ = μ0. the magnetic permeability of the stator and the rotor is μ = 5000μ0. the current density j is 0 everywhere except in the coil, where it is 10 a/m2.
the geometry of the problem makes the magnetic vector potential a symmetric with respect to the y-axis and antisymmetric with respect to the x-axis. therefore, you can limit the domain to x ≥ 0, y ≥ 0, with the default boundary condition
on the x-axis and the boundary condition a = 0 on the y-axis. because the field outside the motor is negligible, you can use the boundary condition a = 0 on the exterior boundary.
first, create the geometry in the pde modeler app. the geometry of this electric motor is a union of five circles and two rectangles. to draw the geometry, enter the following commands in the matlab® command window:
pdecirc(0,0,1,'c1') pdecirc(0,0,0.8,'c2') pdecirc(0,0,0.6,'c3') pdecirc(0,0,0.5,'c4') pdecirc(0,0,0.4,'c5') pderect([-0.2 0.2 0.2 0.9],'r1') pderect([-0.1 0.1 0.2 0.9],'r2') pderect([0 1 0 1],'sq1')
reduce the geometry to the first quadrant by intersecting it with a square. to do this,
enter (c1 c2 c3 c4 c5 r1 r2)*sq1
in the set formula
field.
from the pde modeler app, export the geometry description matrix, set formula, and name-space matrix to the matlab workspace by selecting export geometry description, set formula, labels... from the draw menu.
in the matlab command window, use the function to decompose the exported geometry into minimal regions. this
command creates an analyticgeometry
object d1
. plot
the geometry d1
.
[d1,bt1] = decsg(gd,sf,ns); pdegplot(d1,"edgelabels","on","facelabels","on")
remove unnecessary edges using the csgdel
function. specify the edges
to delete as a vector of edge ids. plot the resulting geometry.
[d2,bt2] = csgdel(d1,bt1,[1 3 8 25 7 2 12 26 30 33 4 9 34 10 31]); pdegplot(d2,"edgelabels","on","facelabels","on")
create an electromagnetic model for magnetostatic analysis.
emagmodel = createpde("electromagnetic","magnetostatic");
include the geometry in the model.
geometryfromedges(emagmodel,d2);
specify the vacuum permeability value in the si system of units.
emagmodel.vacuumpermeability = 1.2566370614e-6;
specify the relative permeability of the air gap and copper coil, which correspond to the faces 3 and 4 of the geometry.
electromagneticproperties(emagmodel,"relativepermeability",1, ... "face",[3 4]);
specify the relative permeability of the stator and the rotor, which correspond to the faces 1 and 2 of the geometry.
electromagneticproperties(emagmodel,"relativepermeability",5000, ... "face",[1 2]);
specify the current density in the coil.
electromagneticsource(emagmodel,"currentdensity",10,"face",4);
apply the zero magnetic potential condition to all boundaries, except the edges along the x-axis. the edges along the x-axis retain the default boundary condition.
electromagneticbc(emagmodel,"magneticpotential",0,... "edge",[16 9 10 11 12 13 14 15]);
generate the mesh.
generatemesh(emagmodel);
solve the model and plot the magnetic potential. use the contour
parameter to display equipotential lines.
r = solve(emagmodel); figure pdeplot(emagmodel,"xydata",r.magneticpotential,"contour","on") title "magnetic potential"
add the magnetic field data to the plot. use the facealpha
parameter to
make the quiver plot for magnetic field more visible.
figure pdeplot(emagmodel,"xydata",r.magneticpotential, ... "flowdata",[r.magneticfield.hx, ... r.magneticfield.hy], ... "contour","on", ... "facealpha",0.5) title "magnetic potential and field"