1
$\begingroup$

I'm trying to do dynamic analysis of an electric motor using Ansys Mechanical APDL. The stator has 4 pole pairs and only 1 of them has windings. The rotor has 3 pole pairs with no windings. I want to calculate torque for different rotor positions [limited range of rotations] using a dowhile loop so i won't have to rotate the rotor myself [if i do so, it'll be a static analysis].

In summery in prep7 section: I have defined the materials I need. Then I have defined the shapes of my windings, rotor and stator and airgaps, and finally assigned materials and meshed everything for further steps. my problem is within Dowhile Loop I believe because The command formats are correct as far as I know.

Also, My University professor has debugged my original code and sent me this one and said that it work well on Ansys 9 installed on Windows XP. I use Ansys 15 and windows 10. Just in case.

Here is my source code.

/prep7

emunit,mks
csys,1

et,1,plane53,0,,0
et,2,plane53,3,,0         !Coils
et,3,circu124,0           !External Resistor
et,4,circu124,4,0         !Independent Voltage Source, Piecewise Linear Load
et,5,circu124,5           !Stranded Coil (To FEA Domain)

/pnum,area,1

N,1                   ! CREATE NODES FOR CIRCUIT ELEMENTS
*REPEAT,7,1


!Defining Materials 
   mp,murx,1,1             !air and rotor shaft
   TB,BH,2,,15             !stator and rotor iron
      tbpt,,146,0.5
      tbpt,,157,0.6
      tbpt,,168,0.7
      tbpt,,180,0.8
      tbpt,,194,0.9
      tbpt,,212,1
      tbpt,,234,1.1
      tbpt,,269,1.2
      tbpt,,329,1.3
      tbpt,,453,1.4
      tbpt,,797,1.5
      tbpt,,1895,1.6
      tbpt,,4476,1.7
      tbpt,,8595,1.8
      tbpt,,14510,1.9
   MP,murx,3,1             !Coil
   MP,RSVX,3,1e-18         !Resistivity of Coil

R,3,0.7                   !Resistance Value
R,5,1                     !Symmetry Factor for Coil

Vdc=100
Omega=1500                !RPM
turnonang=10
turnoffang=20
aa=0.5                    !The Factor Exhibiting the Fraction of 1 Degree for Rotation

dt=1/(6*Omega)            !Time for 1 Degree Rotation
steptime=1000
R,4,Vdc,0
dt=aa*dt
timeindex=1e-9           !The Zero Moment

*DIM,current_vector1,array,steptime+1,,,
*DIM,torque_vector1,array,steptime+1,,,
R,1,0.01*0.02,0.5*180,120e-3,-1,,
R,2,0.01*0.02,0.5*180,120e-3,1,,

*afun,deg

Rso=0.095
Rsy=0.08
Rsi=0.0482
Rro=0.0478
Rry=0.035
Rri=0.02
pi=acos(-1)
bethas=20
bethar=22.5
airgap=Rsi-Rro


!Defining stator and rotor keypoints
   k,111,Rsy,acos(Rsi*cos((pi/2)+(bethas/2))/Rsy),0               !stator pole keypoints 
   k,112,Rsy,acos(Rsi*cos((pi/2)-(bethas/2))/Rsy),0
   k,113,Rsi,90+10,0
   k,114,Rsi,90-10,0
   k,115,Rro,90+(bethar/2),0                                        !rotor pole keypoints 
   k,116,Rro,90-(bethar/2),0
   k,117,Rry,acos(Rro*cos((pi/2)+(bethar/2))/Rry),0
   k,118,Rry,acos(Rro*cos((pi/2)-(bethar/2))/Rry),0
   k,100,0,0


!Defining stator and rotor pole lines
   csys,0
   larc,111,112,100,rsy
   L,111,113                     !stator pole lines
   larc,113,114,100,Rsi
   L,112,114
   larc,115,116,100,Rro         !rotor pole lines
   L,115,117
   larc,117,118,100,Rry
   L,116,118


!defining Stator and rotor pole areas
   a,111,112,114,113           !stator pole area
   csys,1
   agen,8,1,,,,45,,
   pcirc,rso,rsy
   aadd,1,2,3,4,5,6,7,8,9
   a,115,116,118,117           !rotor pole area
   agen,6,1,,,,60,,
   pcirc,Rry,Rri
   aadd,1,2,3,4,5,6,7


!Defining winding areas
   rectng,-0.02,-0.01,0.049,0.069              !winding rectng
   rectng,-0.02,-0.01,-0.049,-0.069
   rectng,0.02,0.01,-0.049,-0.069
   rectng,0.02,0.01,0.049,0.069


!creating shaft and airgap areas 
   pcirc,0,Rro
   pcirc,0,(Rro+Rsi)/2
   aovlap,8,5,6
   pcirc,(Rro+Rsi)/2,Rso
   pcirc,Rsi,Rso
asel,s,area,,1,6
asel,a,area,,10
aovlap,all

NUMCMP,AREA             !Compress out unused area numbers
ALLSEL,ALL

                        !coil areas 1,2,3,4
                        !shaft area 10
                        !stator area 23
                        !rotor area 14
                        !Outter airgap areas 6,15,16,17,18,19,20,21 ~ 22
                        !Inner airgap area 5,7,8,9,11,12 ~ 13

!Assigning materials to stator, rotor, coil, shaft and air
   ASEL,S,area,,5,13      !assigning shaft and air materials
   ASEL,A,area,,15,22       
   AATT,1,1,1,
   ASEL,S,area,,23        !assigning stator and rotor material
   ASEL,A,area,,14
   AATT,2,1,1,
   ASEL,S,area,,1,2       !assigning coil materials
   AATT,3,1,2,
   ASEL,S,area,,3,4       !assigning coil materials
   AATT,3,2,2,


/PNUM,MAT,1
ALLSEL,ALL
APLOT

!Meshing different Areas
   MSHAPE,1,2D   !Meshing of Inner Segments Included Shaft, Rotor, and Inner Part of Airgap
   SMRTSIZE,2
   ASEL,S,area,,7,14
   ASEL,A,area,,5
   AMESH,ALL

   MSHAPE,1,2D     !Meshing of Outer Segments Included Stator and Outer Part of Airgap
   SMRTSIZE,3
   ASEL,S,area,,15,23,1
   ASEL,A,area,,1,4
   ASEL,A,area,,6
   AMESH,ALL

!Defining Nodes Inside Coil Areas
   CSYS,0
!   N,1000001,-0.015,0.059,0
!   N,1000002,-0.015,-0.059,0
!   N,1000003,0.015,0.059,0
!   N,1000004,0.015,-0.059,0

n1=node(-0.015,0.059,0)
n2=node(0.015,0.059,0)
n3=node(-0.015,-0.059,0)
n4=node(0.015,-0.059,0)

ASEL,S,AREA,,14
ESLA,S
CM,ROTOR,ELEM
FMAGBC,'rotor'


!Rortating Inner Segments
   CSYS,1
   ASEL,S,area,,7,14
   ASEL,A,area,,5
   AGEN,,ALL,,,0,30-turnonang,0,,,1

!Generating Constraint Equation at Rotor and Stator Interface
   ASEL,S,area,,13
   NSLA,S
   NSLA,S,1
   NSEL,R,LOC,X,Rro+0.25*airgap,Rro+0.75*airgap
   ASEL,S,area,,22
   ESLA,A,S
   CEINFT,0.25,,,,,,,0.05

!Designing the external circuit
   Type,4
   Real,4
   E,2,1,3

   Type,3
   Real,3
   E,2,4

   Type,5
   Real,5
   E,4,5,n1

   Type,5
   Real,5
   E,5,6,n2

   Type,5
   Real,5
   E,6,7,n3

   Type,5
   Real,5
   E,7,1,n4

   ASEL,S,area,,1,
   ESLA,S
   NSLE,S
   CP,1,CURR,ALL
   CP,2,EMF,ALL

   ASEL,S,area,,2,
   ESLA,S
   NSLE,S
   CP,3,CURR,ALL
   CP,4,EMF,ALL

   ASEL,S,area,,3,
   ESLA,S
   NSLE,S
   CP,5,CURR,ALL
   CP,6,EMF,ALL

   ASEL,S,area,,4,
   ESLA,S
   NSLE,S
   CP,7,CURR,ALL
   CP,8,EMF,ALL

FINISH


/SOLU
   ANTYPE,4,new
   Time,1e-9
   CSYS,1
   LSEL,S,LOC,X,Rso
   DL,ALL,,AZ,0
   D,1,VOLT,0
   CNVTOL,CSG,,0.0000001,2,,
   ALLSEL,ALL
   SOLVE


cont=1
/post26
   NSOL,2,n1,CURR
   PRVAR,2
   *GET,ICUR1,VARI,2,rtime,timeindex
   current_vector1(cont)=ICUR1
   ttt=turnonang
   torque_vector1(1)=1e-10
   ICUR1=1
   steps=1

   *Dowhile,ICUR1
      /Prep7
         *if,ttt,gt,turnoffang,then
            R,4,-Vdc
         *endif

         ALLSEL,ALL
         CEDELE,1,1111111,,ANY       !Deletes Contraint Equations

         ASEL,S,area,,7,14
         ASEL,A,area,,5
         AGEN,,ALL,,,0,-aa,0,,,1

         ASEL,S,area,,13      !Generating Constraint Equation at Rotor and Stator Interface
         NSLA,S
         NSLA,S,1
         NSEL,R,LOC,X,Rro+0.25*airgap,Rro+0.75*airgap
         ASEL,S,area,,22
         ESLA,A,S
         CEINFT,0.25,,,,,,,0.05

         ttt=ttt+aa
         cont=cont+1
         timeindex=timeindex+dt
         steps=steps+1

      /SOLU
         ANTYPE,4,REST,steps-1,,1
         TRNOPT,full
         TIME,timeindex
         TIMINT,ON
         AUTOTS,off
         DELTIM,,,,1
         KBC,1
         TSRES,ERASE
         OUTRES,ALL,LAST,
         NEQIT,100
         CNVTOL,CSG,,0.0000001,2,,
         ALLSEL,ALL
         SOLVE

      /POST1
         TORQSUM,'rotor'
         torque_vector1(cont)=-0.0873*torqvw

      /POST26
         NSOL,2,n1,CURR
         PRVAR,2
         *GET,iCUR1,VARI,2,rtime,timeindex
         current_vector1(cont)=iCUR1
         ALLSEL,ALL
   *ENDDO

   torque_vector1(cont,1,1)=1e-9
   *vlen,cont
   *DIM,rotor_position,table,cont,1,1
   *VFILL,rotor_position,ramp,turnonang,aa
   *DIM,current_vector,table,cont,1,1
   *DIM,flux_vector,table,cont,1,1
   *DIM,torque_vector,table,cont,1,1

   *do,i,1,cont
      current_vector(i,1,1)=current_vector1(i,1,1)
      torque_vector(i,1,1)=torque_vector1(i,1,1)
   *enddo

   *VPLOT,rotor_position,current_vector
```
$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.