Skip to main content

Magnetic Forces Between Two Permanent Magnets

Magnetic Field of 2 Cylindreical Permanent Magnets

Background & Model Setup
Many years back, part of my MS degree required me to do some modeling of some permanent magnets to get magnetic stiffness and magnetic flux. The code is based on the work done then. Other related ANSYS resources I found:
  • CozyWork's 2D single magnet model. 
  • Ansys Help archive. Newer Ansys v18 has much of it undocumented. 
K&J Magnetics has a really cool website calculator that computes the magnetic force of a few simple cases. The ANSYS script below computes the magnetic force between two magnets of N52, 10 mm diameter, 5 mm thick magnets. It is assumed the magnets have relative permeability of 1.05 and Coercive Force of >11.2 kOe (>89,1267 A/m).

The model consists of the two cylindrical shaped magnets at a small distance from each other. Surrounding them is another cylinder that represents the air. Both are polarized in the positive Z direction thus the magnets will be in attraction.

Side View of Two Cylindrical Magnet and Air

Another View of the Magnets and Air Volume

APDL Script
!! Magnetic Force Between Two Magnets Script

! Sze Kwan (Jason) Cheah
! April 13, 2017
! Not verified. Use at own risk! 

emunit, mks ! mks units

!! Element Properties
et, 1, solid98, 10 
mp, murx, 1, 1 ! air relative permeability
mp, murx, 2, 1.05 ! magnet relative permeability magnet
mp, mgzz, 2, 892000     ! coercieve force neodynium
mp, murx, 3, 1.05 
mp, mgzz, 3, 892000 

!! Geometry
u = 1e-3 ! mm conversion
myoffset = 2.5*u ! magnet offset
cylind, 5*u, 0, 0, -5*u
cylind, 5*u,0,myoffset, myoffset+5*u
cylind, 9*u, 0, -12*u, 12*u+myoffset

vsbv, 3, 1,, delete,keep
vsbv, 4, 2,, delete,keep
vsel, all
vglue, all

!! Attributes

vsel, s, volu,, 3 ! Air
vatt, 1,, 1 
vsel, s, volu,, 1 ! Lower magnet
vatt, 2,, 1
vsel, s, volu,, 2 ! Upper magnet
vatt, 3,, 1

!! Mesh
esize, 1.5*u ! 1mm 
vmesh, all

!! Boundary Conditions
! calculates magnetic force at lower magnet
vsel, s, volu,, 1
cm, magnetL, elem
fmagbc, 'magnetL' ! flag lower magnet to calculate force

! outer boundary
nsel, s, ext
d, all, mag, 0

! solves & save
outres, all, all

! Calculates Data

set, last
etable, FVWZ, NMISC, 6

Results & Discussion
Simulation results came in at 9.2 N while the K&J website calculator had 9.8 N. Increasing mesh density and tweaking the coercive force values could be done to tweak the results though actual test results would be preferred.

The script could be modified to account for magnets of different shapes that isn't available on a web calculator (e.g. counter sunk, star etc). If misaligned magnets are of interest, take a look at TORQSUM which calculates torque for 2D planar analysis.


Popular posts from this blog

ANSYS User Defined Results

There is an abundant of options in ANSYS classic when one wishes to post process results. ANSYS workbench default pull down menu post processing options are more limited but they can still be accessed via the User Defined Results. One way not commonly used but can come in handy is as follows: Zeroth: Under Analysis Settings, there is "Output Controls" where you can toggle to "Yes" what you would like to save before the solution starts. This is like OUTRES in APDL. Output Controls First: After solving the model, click on Solution in the tree to highlight it. Solution Second: Click on Worksheet in the toolbar. Worksheet Third: In the worksheet, you will see list of results that are saved. Right click on it to create the User Defined Results. Create User Defined Results So here we have it. You could of look up the different expressions in the help document but I find this method of accessing the results convenient.  Example: Aspec

Export Stiffness Matrix from Ansys

It is sometimes useful to extract the mass and stiffness matrix from Ansys.     *SMAT, MatK, D, IMPORT, FULL, file.full, STIFF       *PRINT, matk, matk, txt Exporting mass matrix would be similar:       *SMAT, MatM, D, import, full, file.full, MASS The above script uses APDL Math to get the job done. (Please see previous post for another example). The ordering of the matrix is unfortunately not concurrently exported. To verify the sequencing is as expected, we will work to replicate a truss example in the  Finite Element Trusses course notes by Bob Greenlee. Figure 1: Truss Problem Setup Model Creation Script to create model: /prep7 !! Creates Model to reflect course notes ! Properties et ,1,1  mp , ex, 1, 29.5e6 r , 1, 1 ! Geometry n ,1 $  n ,2, 40 $  n ,3, 40, 30 $  n ,4, 0, 30 e ,1,2 $  e ,2,3 $  e ,1,3 $  e ,3,4 ! Boundary Conditions d ,1,ux,0 $  d ,1,uy,0 d ,2,uy,0 d ,4,ux,0 $  d ,4,uy,0 f ,2,fx,20e3 f ,3,fy,-25e3 ! solves /solu eqslv , sparse

ANSYS APDL Syntax Highlighting editor

Notepad++ with APDL User Defined Language The editor of my choice is Notepad++  with the available User Defined Language Files for APDL . You can install it without administrative privileges via the zip file. The best part of it is, it's FREE! After installing Notepad++, go to "Language>Define Your Language..." then "Import" the XML file downloaded from the above link. Remember to restart Notepad++ so that the language changes will take into effect. Opening up any *.inp or *.ans files should automatically switch highlighting to APDL. I made some minor edits. Here's my XML file: LINK . I also heard Sublime Text and  Ultraedit  has more advance features but they aren't (totally) free.