## Electronics

Topics relate to HFSS, Maxwell, SIwave, Icepak, Electronics Enterprise and more

#### Calculating Lorentz Force at Higher Velocity/RPM

• dhruvdeshwal17
Subscriber

To calculate the Lorentz force associated with the conductor moving in a magnetic field, SOLID236/SOLID237 are preferred. We can get the velocity effect without solving the problem in transient analysis and can be solved in the static analysis as suggested by @wrbulat . I am getting solution at lower velocities/RPM but didn't get the solution of the problem at higher velocity/RPM (100m/s and 10000rpm), stating the error as " A large negative pivot value ( -1.432456327E+11 ) has been encountered in the global assembled matrix. This may be caused by a bad temperature-dependent material property used in the model". Further, I try to solve the problem by transient analysis by two-step loading. In the first step, the solution is done and fails in the second step

I'm solving the problem in which a circular conductor is placed over circular magnet rings (both are glued), considered rotors. They are moved/rotated against a circular magnet (stator). The below figure is for illustration (in my case, there is no gap between conductor and inner magnet ring).

• Bill Bulat
Ansys Employee
In my experience this can be overcome by using
PIVCHECK,OFF
before solving.

Here's a test I created long ago. It posits a solid cylindrical PM poled across its diameter inside a rotating electrically conductive hollow cylinder. The net Joule heat in developed by eddy currents induced in the cylinder should equal the net mechanical power needed to rotate it at a particular angular velocity (Pmech = torque X angular velocity). There's a macro this input calls which appears at the bottom of this post (name it "JXB_3D_23x.mac").

fini
/cle

/pnu,mat,1
/num,1

/vie,1,1,2,3

/file,velo_effect
/sys,del velo_effect*.png

C*********************************************************
C*** PARAMETERS
C*********************************************************
pi=acos(-1)

k_nl=1 ! k_nl=0: LINEAR, k_nl=1: NONLINEAR

key_opt_2=0 ! KEYOPT(2) - 0: TRUE VOLT, 2: TIME INTEGRATED ELEC POT
key_opt_7=1 ! KEYOPT(7) - 0: ALL NODES, 1: CORNER NODES
key_opt_8=1 ! KEYOPT(8) - 0: MAXWELL, 1: LORENTZ

r_dmn=0.025 ! RADIUS OF SURROUNNDING DOMAIN
r_gap=0.5*(r_PM+r1_cyl) ! RADIUS OF ARMINT INTERFACE IN AIRGAP

divz=5 ! # OF ELEMENT DIVISIONS IN AXIAL DIRECTION

l=0.050 ! CYLINDER LENGTH
l_end=0.025 ! LENGTH OF DOMAIN EXTENDING BEYOND END OF CYLINDER

Hc_PM=1e6 ! PM COERCIVITY
mur_PM=1.04 ! PM RELATIVE PERMEABILITY

rsv_cyl=3e-8 ! CYLINDER ELECTRIC RESISTIVITY
mur_cyl=1 !500 ! CYLINDER RELATIVE PERMEABILITY

RPM=50 ! ANGULAR VELOCITY, RPM
t_init=1e-9 ! TIME TO ESTABLISH INITIAL FIELD (NOT USED)
thta=45 ! ROTOR POSITION AT END OF TRANSIENT
t_final=t_init+(thta/360)/(RPM/60) ! TIME AT END OF TRANSIENT
nsteps=5 ! # OF TIME STEPS

/title,V_EFCT, %RPM% RPM, KEY(2) = %key_opt_2%, KEY(7)=%key_opt_7%, KEY(8)=%key_opt_8%

C*********************************************************
C*** GEOMETRY
C*********************************************************
/prep7

asel,none ! PM
pcir,r_PM,,0,90
aatt,2,2,200

asel,none ! CYLINDER
pcirc,r1_cyl,r2_cyl,0,90
aatt,3,3,200

alls
cm,keep_a,area

asel,none ! SURROUNDING AIR
pcirc,0,r_gap,0,90
pcirc,r_gap,r_dmn,0,90
cm,scrap_a,area

alls ! BOOLEAN SUBTRACTION
asba,scrap_a,keep_a,,dele,keep
cmse,u,keep_a
aatt,1,1,200

alls
aplo

C*********************************************************
C*** ATTRIBUTES, MESH
C*********************************************************
et,1,236 ! AIR
keyo,1,7,key_opt_7 ! FORCE OUTPUT
keyo,1,8,key_opt_8 ! FORCE CALCULATION
mp,murx,1,1

et,2,236 ! PM
keyo,2,7,key_opt_7 ! FORCE OUTPUT
keyo,2,8,key_opt_8 ! FORCE CALCULATION
mp,murx,2,mur_PM
mp,mgyy,2,Hc_PM

et,3,236,1 ! CYLINDER
keyo,3,2,key_opt_2 ! TRUE/TIME INTEGRATED VOLT
keyo,3,7,key_opt_7 ! FORCE OUTPUT
keyo,3,8,key_opt_8 ! FORCE CALCULATION

mp,rsvx,3,rsv_cyl

*if,k_nl,eq,0,then
mp,murx,3,mur_cyl
*else
fifi1=0.94 ! hyperco 50 b-h 0.014in input, STATOR minimum
tb,bh,3
tbpt,defi,0,0
tbpt,defi,2/0.01257,1.5*fifi1
tbpt,defi,4/0.01257,1.8*fifi1
tbpt,defi,5/0.01257,1.87*fifi1
tbpt,defi,6/0.01257,1.93*fifi1
tbpt,defi,8/0.01257,2.0*fifi1
tbpt,defi,10/0.01257,2.05*fifi1
tbpt,defi,20/0.01257,2.15*fifi1
tbpt,defi,40/0.01257,2.195*fifi1
tbpt,defi,50/0.01257,2.21*fifi1
tbpt,defi,60/0.01257,2.225*fifi1
tbpt,defi,80/0.01257,2.24*fifi1
tbpt,defi,100/0.01257,2.25*fifi1
tbpt,defi,150/0.01257,2.28*fifi1
tbpt,defi,400/0.01257,2.4*fifi1
tbpl,bh,3
/sho,png \$tbpl,bh,3 \$/sho,close \$/wait,1.5
*endif

alls ! MESH AREAS
et,200,200,7
ames,all

csys,1 ! FULL 360 DEGREE GEOMETRY
agen,4,all,,,0,90,0

csys,1 ! MERGE NODES/KPS INSIDE ARMINT INTERFACE
ksel,s,loc,x,0,r_gap
lslk,s,1
asll,s,1
alls,belo,area
numm,node,1e-8,1e-8
numm,kp,1e-8,1e-8

csys,1 ! MERGE NODES/KPS OUTSIDE ARMINT INTERFACE
ksel,s,loc,x,r_gap,r_dmn
lslk,s,1
asll,s,1
alls,belo,area
numm,node,1e-8,1e-8
numm,kp,1e-8,1e-8

eplo

C********************************************
C*** EXTRUDE MESHED AREAS INTO MESHED VOLUMES
C********************************************
extopt,esize,divz,0
extopt,aclear,1
extopt,attr,1,1,1

csys

asel,s,mat,,1
type,1
vext,all,,,0,0,l/2

asel,s,mat,,2
type,2
vext,all,,,0,0,l/2

asel,s,mat,,3
type,3
vext,all,,,0,0,l/2

extopt,attr,0,0,0

vsel,s,mat,,1
alls,belo,volu
asel,r,loc,z,l/2
type,1, \$mat,1, \$real,1
vext,all,,,0,0,l_end

vsel,s,mat,,2
alls,belo,volu
asel,r,loc,z,l/2
type,1, \$mat,1, \$real,1
vext,all,,,0,0,l_end

vsel,s,mat,,3
alls,belo,volu
asel,r,loc,z,l/2
type,1, \$mat,1, \$real,1
vext,all,,,0,0,l_end

alls
vplo

csys,1 ! MERGE NODES/KPS INSIDE ARMINT INTERFACE
ksel,s,loc,x,0,r_gap
lslk,s,1
asll,s,1
vsla,s,1
alls,belo,volu
numm,node,1e-8,1e-8
numm,kp,1e-8,1e-8
cm,PM_v,volu

csys,1 ! MERGE NODES/KPS OUTSIDE ARMINT INTERFACE
ksel,s,loc,x,r_gap,r_dmn
lslk,s,1
asll,s,1
vsla,s,1
alls,belo,volu
numm,node,1e-8,1e-8
numm,kp,1e-8,1e-8
cm,cyl_v,volu

alls ! GO AHEAD AND MERGE ALL NODES - USE VELOCITY EFFECTS INSTEAD OF ARMINT
numm,node,1e-8,1e-8
numm,kp,1e-8,1e-8
eplo

C********************************************
C*** FULL SYMMETRY
C********************************************
!csys
!vsym,z,all
!numm,node,1e-8,1e-8
!numm,kp,1e-8,1e-8

C********************************************
C*** FLUX PARALLEL EXTERIOR
C********************************************
alls
asel,s,ext
csys,1
ksel,s,loc,x,r_gap
lslk,s,1
asll,u,1
!asel,u,loc,z
da,all,az

vsel,s,mat,,3
alls,belo,volu
asel,r,loc,z
da,all,volt
!d,ndnext(0),volt

!alls,belo,volu
!asel,r,loc,z,l/2
!cp,1,volt,all

C********************************************
C*** APPLY VELOCTY TO ROTOR
C********************************************
vsel,s,mat,,3
alls,belo,volu

fini

C********************************************
C*** STATIC SOLVE
C********************************************
/solu
alls
pivcheck,off

*if,k_nl,eq,1,then
autots,on ! TURN ON AUTO TIME STEPPING
nsub,5,25,5 ! RANGE OF ALLOWABLE SUBSTEPS
outr,all,all ! SAVE ALL CALCULATED RESULTS
lnsr,on ! LINE SEARCH ALGORITHM CAN HELP WITH CONVERGENCE
*endif

save
solv
fini

C********************************************
C*** POST PROCESS
C********************************************
/post1

vsel,s,mat,,3 ! DETERMINE HEAT PRODUCED IN CYLINDER
alls,belo,volu
set,last
etab,,jhea
etab,,volu
smult,ht,jhea,volu
ssum
*get,ht_total,ssum,,item,ht
ht_total=2*ht_total

JXB_3D_23x,3 ! DETERMINE NET TORQUE DUE TO LORENTZ FORCES IN CYLINDER (JXB)
P_mech_JXB = 2*trqtotz*RPM*(2*pi/60)
/sho,png \$plve,fjxb_x,fjxb_y,fjxb_z,F_JXB,vect,elem,on \$/sho,close \$/wait,1.5

esel,s,mat,,3 ! DETERMINE NET TORQUE DUE TO MAXWELL FORCES IN CYLINDER (EMFT)
nsle
esln
emft
trq_emft = _tzsum
P_mech_EMFT = 2*trq_emft*RPM*(2*pi/60)
plve,fmag,,,,vect,node,on
/sho,png \$plve,fmag,,,,vect,node,on \$/sho,close \$/wait,1.5

/ann,dele
/tla,-0.25,0.90,Net Heat in Cylinder: %ht_total% W
/tla,-0.25,0.85,Net Mech Power (JXB): %P_mech_JXB% W
/tla,-0.25,0.80,Net Mech Power (EMFT): %P_mech_EMFT% W

esel,s,mat,,3
nsle

plve,b,,,,vect,,on
/sho,png \$plve,b,,,,vect,,on \$/sho,close \$/wait,2

plve,jt,,,,vect,,on
/sho,png \$plve,jt,,,,vect,,on \$/sho,close \$/wait,2

plet,jhea,1
/sho,png \$plet,jhea,1 \$/sho,close \$/wait,2

/sys,del *.rdb ! DELETE SCRATCH FILES
/sys,del *.r0*
/sys,del *.esav
/sys,del *.full
/sys,del *.ldhi

/eof

JXB_3D_23x.mac:

• dhruvdeshwal17
Subscriber

Definitely PIVCHECK,OFF works. But carrying out this static analysis at a higher speed is giving undesirable answers, and your macros solution also got failed at higher RPM (ex. at 50000 rpm). So how to solve this issue. Further, I had given velocity to the rotor in the axial direction. Since my conductor plate is of definite length so, for this case, will this analysis work.?
Regards