Electric machine stator deflection

Numerical methods and mathematical models of Elmer
Post Reply
vprak31
Posts: 2
Joined: 17 Sep 2022, 00:20
Antispam: Yes

Electric machine stator deflection

Post by vprak31 »

Hello everyone, I am pretty new to Elmer and I would like to know if it's already possible to get the displacement field on a 2-D stator of an induction machine (or PMSM) from the nodal forces. I have already gone through some of the basic documentation/tutorials on Induction machine analysis (SEMTEC Report Elmer FEM - Induction Machine Tutorial). However, I have not been able to get the 2-D displacements on the stator iron. While solving for displacement during the linear elastic solver, it shows "IterSolve: Numerical Error: System diverged over maximum tolerance".

Could you please check the SIF file as shown below: (it is essentially the same code used in SEMTEC report with slight modifications to consider the displacement field)

Code: Select all

Header
Mesh DB "im"
Results Directory "results"
Include Path "materials"
End
Simulation
Max Output Level = 10
Coordinate System = Cartesian
Coordinate Scaling = 0.001
Steady State Max Iterations = 1
Simulation Type = Steady
! Mesh Levels = 2
! Mesh Keep = 1
Use Mesh Names = Logical True
End
!###############################################################################
!##################################### Materials ###############################
!###############################################################################
! Air
Material 1
	Relative Permeability = 1
End
! lamination steel
Material 2
Name = "Iron"
Poisson ratio = 0.35
INCLUDE el_steel_M800_65A
Relative Permittivity = 1
End
!###############################################################################
!#######################------ Body Force Section ----#######################
!###############################################################################
Body Force 1
	Mesh Rotate 3 = Real MATC "10"
End

! for U+
Body Force 2
	Current Density = 3e6
End
! for V+
Body Force 3
	Current Density = -1.5e6
End
! for W-
Body Force 4
	Current Density = 1.5e6
End

Body Force 5
	Displacement 1 load dofs = equals "nodal force 1"
	Displacement 2 load dofs = equals "nodal force 2"
End
!------ Skeleton for body section -----
Body 1
	Name = U_plus
	Equation = 1
	Material = 1
	Body Force = 2
End

Body 2
	Name = W_minus
	Equation = 1
	Material = 1
	Body Force = 4
End

Body 3
	Name = V_plus
	Equation = 1
	Material = 1
	Body Force = 3
End

Body 4
	Name = StatorIron
	Equation = 2
	Material = 2
	Body Force = 5
End

Body 5
	Name = StatorWedges
	Equation = 1
	Material = 1
End

Body 6
	Name = StatorAirgap
	Equation = 1
	Material = 1
	Body Force = 1
End

Body 7
	Name = Bar7
	Equation = 1
	Material = 1
	Body Force = 1
End

Body 8
	Name = Bar8
	Equation = 1
	Material = 1
	Body Force = 1
End

Body 9
	Name = Bar9
	Equation = 1
	Material = 1
	Body Force = 1
End

Body 10
	Name = Bar10
	Equation = 1
	Material = 1
	Body Force = 1
End

Body 11
	Name = RotorIron
	Equation = 1
	Material = 2
	Body Force = 1
End

Body 12
	Name = RotorAirgap
	Equation = 1
	Material = 1
	Body Force = 1
End

Body 13
	Name = Bar1
	Equation = 1
	Material = 1
	Body Force = 1
End

Body 14
	Name = Bar2
	Equation = 1
	Material = 1
	Body Force = 1
End

Body 15
	Name = Bar3
	Equation = 1
	Material = 1
	Body Force = 1
End

Body 16
	Name = Bar4
	Equation = 1
	Material = 1
	Body Force = 1
End

Body 17
	Name = Bar5
	Equation = 1
	Material = 1
	Body Force = 1
End

Body 18
	Name = Bar6
	Equation = 1
	Material = 1
	Body Force = 1
End
!###############################################################################
!#######################------ Solver section -----#######################!
!###############################################################################
Equation 1 :: Active Solvers(2) = 2 3
! Rotation of the rotor at the beginning of each time step
Solver 1
	Exec Solver = Before simulation
	Equation = MeshDeform
	Procedure = "RigidMeshMapper" "RigidMeshMapper"
End

Solver 2
	Exec Solver = Always
	Equation = MgDyn2D
	Variable = A
	Procedure = "MagnetoDynamics2D" "MagnetoDynamics2D"
	Handle Assembly = Logical True
	Nonlinear System Convergence Tolerance = 1.0e-4
	Nonlinear System Max Iterations = 30
	! Linear System Solver = Direct
	! Linear System Iterative Method = MUMPS
	Linear System Solver = Iterative
	Linear System Iterative Method = BicgstabL
	Linear System Symmetric = True
	Linear System Max Iterations = 200
	Linear System Preconditioning = ILU2
	Linear System Convergence Tolerance = 1e-8
	Linear System Residual Output = 50
End

Solver 3
	Exec Solver = Always
	Equation = CalcFields
	Potential Variable = "A"
	Procedure = "MagnetoDynamics" "MagnetoDynamicsCalcFields"
	Handle Assembly = Logical True
	Calculate Current Density = Logical True
	Calculate Magnetic Vector Potential = Logical True
	Calculate Nodal Forces = Logical True
	! Linear System Solver = Direct
	! Linear System Iterative Method = MUMPS
	Linear System Solver = Iterative
	 Linear System Iterative Method = BicgstabL
	 Linear System Symmetric = True
	 Linear System Max Iterations = 200
	 Linear System Preconditioning = ILU2
	 Linear System Convergence Tolerance = 1e-8
	 Linear System Residual Output = 50 
	Apply Mortar BCs = True
  	Apply Conforming BCs = True 
End

Solver 4
	Exec Solver = after simulation
	Equation = "ResultOutput"
	Procedure = "ResultOutputSolve" "ResultOutputSolver"
	Output File Name = case
	Output Directory = results
	Save Geometry Ids = Logical True
	Vtu Format = Logical True
	Vector Field 1 = "magnetic flux density e"
	Vector Field 2 = "current density e"
	Vector Field 3 = "displacements e"
	Vector Field 4 = "nodal force e"
	Scalar Field 1 = "a"
	! better visualization of disconinuous fields (interfers with connectivity filter)
	Discontinuous Bodies = Logical True
End

Solver 5
	Exec Solver = Always
	Equation = Linear elasticity
	Procedure = "StressSolve" "StressSolver"
	Variable = -dofs 2 Displacement
	Eigen Analysis = Logical True
	Calculate Stresses = Logical True
  	Stabilize = True
  	Bubbles = False
  	Lumped Mass Matrix = False
  	Optimize Bandwidth = True
  	Steady State Convergence Tolerance = 1.0e-5
  	Nonlinear System Convergence Tolerance = 1.0e-7
  	Nonlinear System Max Iterations = 50
  	Nonlinear System Newton After Iterations = 3
  	Nonlinear System Newton After Tolerance = 1.0e-3
  	Nonlinear System Relaxation Factor = 1
  	Linear System Solver = Iterative
  	Linear System Iterative Method = BiCGStab
  	Linear System Max Iterations = 1000
  	Linear System Convergence Tolerance = 1.0e-5
  	BiCGstabl polynomial degree = 2
  	! Linear System Preconditioning = ILU0
  	Linear System Preconditioning = Diagonal
  	Linear System ILUT Tolerance = 1.0e-3
  	Linear System Abort Not Converged = False
  	Linear System Residual Output = 1
  	Linear System Precondition Recompute = 5
End

Equation 2
	Name = "Elasticity analysis"
	Stress Analysis = Logical True
	Active Solvers(1) = 5
End

!------ Skeleton for boundary section -----

Boundary Condition 1
	Name = OuterStator
	AV {e} = real 0
  AV = real 0
  Jfix = real 0.0
  Displacement 1 = Real 0.0
  Displacement 2 = Real 0.0
End

Boundary Condition 2
	Name = StatorRight
	Mortar BC = Integer 3
	Mortar BC Static = Logical True
	Anti Radial Projector = Logical True
	Galerkin Projector = Logical True
End

Boundary Condition 3
	Name = StatorLeft
End

Boundary Condition 4
	Name = Sliding_Stator
	Mortar BC = Integer 5
	Anti Rotational Projector = Logical True
	Galerkin Projector = Logical True
End

Boundary Condition 5
	Name = Sliding_Rotor
End

Boundary Condition 6
	Name = InnerRotor
	Displacement 1 = Real 0
	Displacement 2 = Real 0
End

Boundary Condition 7
	Name = RotorRight
	Mortar BC = Integer 8
	Mortar BC Static = Logical True
	Anti Radial Projector = Logical True
	Galerkin Projector = Logical True
End

Boundary Condition 8
Name = RotorLeft
End
Thank you very much.
kevinarden
Posts: 2237
Joined: 25 Jan 2019, 01:28
Antispam: Yes

Re: Electric machine stator deflection

Post by kevinarden »

Without seeing the mesh and boundary conditions it is difficult to determine why convergence is slow, you could increase the maximum number of iterations.
You may want to read through these posts for convergence strategies with linear elastic
viewtopic.php?p=26972&hilit=converge#p26972
raback
Site Admin
Posts: 4812
Joined: 22 Aug 2009, 11:57
Antispam: Yes
Location: Espoo, Finland
Contact:

Re: Electric machine stator deflection

Post by raback »

Hi

Observe that you should make sure that the solution for both stator and rotor is uniquely defined i.e. you supress the rigid body motion. This can be done with Dirichlet conditions as you do for rotor but I could not observe any for the stator. Spring constants could also do it.

Small 2D case should also be possible to solve with direct solvers (mumps & umfpack). Even then if the solution is not unique you will get crap.

-Peter
vprak31
Posts: 2
Joined: 17 Sep 2022, 00:20
Antispam: Yes

Re: Electric machine stator deflection

Post by vprak31 »

Hello Peter,

Thank you for your response.
I'm sorry but I could not understand what exactly is missing in the SIF file that I posted. I have contrained the displacement of the stator and the rotor in the model.sif file.

Could you please try running these files at your end and tell me what needs to be added? It would be really helpful for me to understand.
model.zip
Electric machine model for stator deflection
(536.82 KiB) Downloaded 44 times
Thanks again.

Regards, Vinay
kevinarden
Posts: 2237
Joined: 25 Jan 2019, 01:28
Antispam: Yes

Re: Electric machine stator deflection

Post by kevinarden »

This resulted in a solution for me

Solver 5
Exec Solver = Always
Equation = Linear elasticity
Procedure = "StressSolve" "StressSolver"
Variable = -dofs 2 Displacement
Eigen Analysis = Logical True
Calculate Stresses = Logical True
Element = "P:2"
Stabilize = True
Bubbles = False
Lumped Mass Matrix = False
Optimize Bandwidth = True
Steady State Convergence Tolerance = 1.0e-5
Nonlinear System Convergence Tolerance = 1.0e-7
Nonlinear System Max Iterations = 50
Nonlinear System Newton After Iterations = 3
Nonlinear System Newton After Tolerance = 1.0e-3
Nonlinear System Relaxation Factor = 1
Linear System Solver = Iterative
Linear System Iterative Method = BiCGStabl
Linear System Max Iterations = 100000
Linear System Convergence Tolerance = 1.0e-10
BiCGstabl polynomial degree = 2
Linear System Preconditioning = ILU0
!Linear System Preconditioning = Diagonal
!Linear System ILUT Tolerance = 1.0e-3
!Linear System Abort Not Converged = False
Linear System Residual Output = 1
Linear System Precondition Recompute = 5
End
Post Reply