Electronics

Electronics

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_PM=0.010 ! PM RADIUS
      r1_cyl=0.012 ! CYLINDER INNER RADIUS
      r2_cyl=0.015 ! CYLINDER OUTER RADIUS
      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
      bf,all,velo,,,,,,RPM*2*pi/60 ! RADIANS/s


      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
      kbc,0 ! RAMP APPLIED LOADS
      *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
Viewing 2 reply threads
  • You must be logged in to reply to this topic.