Motor 001 - Permanent magnet synchronous electric motor
In this tutorial, a 3D permanent magnet synchronous electric motor is considered under magnetostatic conditions using the φ-formulation.
Model definition
Instead of the whole motor, only a 1/8 slice of the motor is modeled. The 1/8 slice functions as a symmetry cell, which can be set up to simulate the whole motor with symmetry conditions. The symmetry cell has its periodic face aligned with the X-axis.
Element | Dimensions [m] |
---|---|
Stator steel outer radius | |
Stator steel inner radius | |
Rotor steel outer radius | |
Rotor steel inner radius | |
Permanent magnet outer radius | |
Air gap thickness |
Material Data
- Linear steel
Property | Value |
---|---|
Magnetic permeability |
Boundary conditions
Name | Type | Value |
---|---|---|
left and right Y-planes | periodicity: rotation | antiperiodic |
rotor-stator interface | continuity | potential equality on both sides |
Output Results
- Torque [Nm]
Step-by-step guide
Here you’ll find a detailed step-by-step tutorial on how to simulate a permanent magnet synchronous electric motor in Quanscient Allsolve.
Step 1 - Build the geometry
-
Start with a new project and name it
PMSM Electric motor
. -
Import the STEP file containing the motor slice geometry. File download link: pmsm-electric-motor.step
-
Add a
Translate
operation targetting the rotating region:Name Element type Target Translation [m] Copy translate Translate
operationVolumes 1-5
X: 0
No Y: 0
Z: 0.02
The
Translate
operation is done in this tutorial to separate the rotor and stator for meshing, and to have a duplicate mesh on the rotor-stator interface.The rotor is moved back into place at simulation time.
Step 2 - Define shared expressions, materials and shared regions
-
Go to the
Properties
section. -
Define shared expressions:
Name Description Expression I Current amplitude [A] 300
alpha Mechanical angle [deg] 27
phase Electrical angle [deg] 0
-
Add the
Air
material:Material Target Air permanent magnet domain and all air domains (volumes 6-9, 17-20
) -
Add the
Carbon steel AISI 1020
material:Material Target Carbon steel AISI 1020 steel domain (volumes 13-16
) -
Instead of nonlinear permeability, linear permeability is applied to the steel in this tutorial. Edit
Carbon steel AISI 1020
material properties:Property Updated value Magnetic permeability 2000 * mu0
-
Define shared regions:
Region name Region type Target rotor
Volume all rotating regions with half of the airgap (volumes 16-20
)airgap
Volume volumes 6, 20
Step 3 - Define the physics and apply boundary conditions
-
Go to the
Physics
section. -
Add the
Magnetism φ
physics:Physics Target Magnetism φ All volumes except the windings (volumes 6-9, 13-20
) -
Add a
Constraint
interaction to Magnetism φ:Name Interaction type Target Value Constraint Constraint
a corner point on the permanent magnet 0
This constraint is the gauge condition for the scalar potential φ. It will guarantee the uniqueness of the solution.
-
Add a
Remanence
interaction to Magnetism φ:Interaction name Interaction type Target Value [X; Y; Z] Remanence Remanence
Permanent magnet volume [0.5*x/sqrt(x*x+y*y); 0.5*y/sqrt(x*x+y*y); 0]
This introduces a radial magnetization to the motor.
-
Add a
Periodicity
interaction and select target surfaces:Interaction name Interaction type Periodicity target 1 Periodicity target 2 Periodicity Periodicity
Side surfaces parallel to X-axis Side surfaces opposite to target 1 -
Select remaining options in the
Periodicity
interaction:Interaction name Interaction type Type Rotation center [X; Y; Z] Rotation angle [X; Y; Z] Antiperiodicity Periodicity Periodicity
Rotation [0; 0; 0]
[0; 0; 45]
Yes -
Add a
Continuity
interaction:Interaction name Interaction type Continuity target 1 Continuity target 2 Continuity Continuity
Stator interface surface 23
Rotor interface surface 143
-
Add
Lump I/V cut
interactions to introduce current sources on the windings:Interaction name Interaction type Target Actuation mode Current Lump I/V cut Lump I/V cut
Counterclockwise loop around left-most winding Current I * sin((phase + 4.0 * alpha - 120.0) * pi/180.0)
Lump I/V cut 2 Lump I/V cut
Counterclockwise loop around middle winding Current I * sin((phase + 4.0 * alpha - 60.0) * pi/180.0)
Lump I/V cut 3 Lump I/V cut
Counterclockwise loop around right-most winding Current I * sin((phase + 4.0 * alpha - 0.0) * pi/180.0)
There are 7 interactions in total:
Step 4 - Generate the mesh
-
Go to the
Simulations
section. -
Create a new mesh.
-
Set mesh quality to
Expert settings
. -
Set mesh element max size to
0.001
. -
Enable
Curved mesh
. -
Add a mesh refinement entity:
Mesh refinement entity type Target Max size Volume
air gap volumes 0.0005
-
Apply settings and generate the mesh.
-
Check the preview:
Step 5 - Apply simulation settings
-
Create a new simulation.
-
Set Analysis type to
Steady state
. -
Select
Mesh 1
as the mesh for your simulation. -
Add a magnetic flux density
B
field output. As target, select all volumes except the windings.
Step 6 - Modify the script
The following modifications need to be done by scripting:
- Move the rotor back to its original position and apply rotation.
- Apply antioperiodicity and rotation for the continuity condition.
- Calculate the torque.
To do these modifications, do the following:
-
Open the script for your simulation.
-
Enable scripting mode.
-
Add these lines to the script right below the initial mesh loading stage:
-
To address the antiperiodicity regarding the rotated position for the continuity condition, add the following arguments on the
continuitycondition()
function: -
To calculate the torque via Arkkio’s method 1 and via Maxwell’s Stress Tensor, add the following lines to the very end of the script:
-
Save the script.
Step 7 - Running the simulation and checking results
-
Run Simulation 1.
-
To follow the simulation progress, open the
Logs
. -
Once the simulation has finished, add a
B
field visualization. -
Add a
Glyph
filter to the visualization:Filter Layer Max sample points Scaling mode Scale factor Glyph B - Cool to Warm 50000
data 0.005
0.0002 - 1.0
-
Activate the visualization.
-
To see the value of torque [Nm] at the applied mechanical angle [deg], see the
Summary
.
References
Footnotes
-
Arkkio’s Method for Torque Computation, https://www.anttilehikoinen.fi/research-work/arkkios-method-torque-computation/ ↩