drehzahl=0
*afun,rad
pi=acos(-1)

*afun,deg

drehzahl=0

/prep7

freqa=1
freqs=freqa

*Do,im,1,m
ET,114+im-1,CIRCU124,4,0
phase=2*pi*freq*zeita*180/pi
R,114+im-1,u1*cos(phase-(im-1)*360/m)*1e-6,0,  
*EndDo

*Do,im,1,m
ET,214+im-1,CIRCU124,0,0
R,214+im-1,rvor2  
*EndDo

*If,zeita,eq,0,then
zeit=1e-6
*Else
zeit=zeita
*EndIf

allsel
cedel,all,all,all
cmsel,s,krotor
allsel,below,area
csys,1

agen,,krotor,,,,winkela,,,,1          !   Drehung des Rotors um oben angegebenen Winkel
winkel=winkela

allsel

_cef=.3
cmsel,s,nodeinnen
cmsel,s,elemaussen
cmsel,u,nodeaussen 
CEINTF,_cef, , , , , , ,0,

allsel

 
!*  
i=0
jj=0
/solu
/assign,rst,a0,rst
antyp,trans
time,zeit
timinit,on,mag
timinit,on,elect
tintp,,,,1

*If,isolv,eq,1,then
eqslve,sparse,stoler,-1
*Endif
cnvt,a,
cnvt,csg
lnsrch,on
neqit,250

*get,timea,active,0,time,cpu
SOLVE  
*get,timee,active,0,time,cpu
rechzeit=timee-timea


/post1
inres
file,a%jj%,rst,
set,last,last,,0,,,             ! real part to be written out
plf2d,51,0,20,1

torq.txt,'erotor'
drehmoment=torqmx*jochtiefe
drehmoment2=torqvw*jochtiefe

esel,s,enam,,124
etable,spanng,smisc,1
etable,strom,smisc,2
etable,leistu,nmisc,1

etable,refl
*get,u1e,elem,eu1,etab,spanng
*get,u2e,elem,eu2,etab,spanng
*get,u3e,elem,eu3,etab,spanng
*get,ue,elem,eeu2,etab,spanng
*get,i1e,elem,er1,etab,strom
*get,i2e,elem,er2,etab,strom
*get,i3e,elem,er3,etab,strom
*get,ie,elem,eer2,etab,strom
*get,Pauf1,elem,eu1,etab,leistu
*get,Pauf2,elem,eu2,etab,leistu
*get,Pauf3,elem,eu3,etab,leistu
*get,Perr,elem,eeu2,etab,leistu
*get,PR1,elem,er1,etab,leistu
*get,PR2,elem,er2,etab,leistu
*get,PR3,elem,er3,etab,leistu
*get,PRE,elem,eer2,etab,leistu

/output,torq%ausgabe%,lis,,append
*VWrite,i,zeit,winkel,drehmoment,drehmoment2
(5(g14.6,' '))
/output,term

/output,U_I_Stator%ausgabe%,lis,,append
*VWrite,i,zeit,winkel,U1e,i1e,u2e,i2e,u3e,i3e,drehmoment,drehzahl,rechzeit
(12(g14.6,' '))
/output,term
/output,U_I_Rotor%ausgabe%,lis,,append
*VWrite,i,zeit,i1e,i2e,i3e,rechzeit
(6(g14.6,' '))
/output,term
/output,Pauf_Stator%ausgabe%,lis,,append
*VWrite,i,zeit,Pauf1,Pauf2,Pauf3,PR1,PR2,PR3,rechzeit
(9(g14.6,' '))
/output,term
/output,Pauf_Rotor%ausgabe%,lis,,append
*VWrite,i,zeit,ue,ie,Perr,PRE,rechzeit
(9(g14.6,' '))
/output,term

allsel
/show,Plots%ausgabe%,grph,,append
aplot
/show,Plots%ausgabe%,grph,,append
plf2d,51,0,20,1
allsel,below,area
/show,Plots%ausgabe%,grph,,append
PLNSOL,B,SUM,0, 
csys,1  
NSEL,S,LOC,X,rinnen+jochdicke2+delta/2  
/VSCALE,1,1,0   
/show,Plots%ausgabe%,grph,,append
PLVECT,B, , , ,VECT,ELEM,ON,0   
/show,Plots%ausgabe%,grph,,append
PLVECT,h, , , ,VECT,ELEM,ON,0   
/show,Plots%ausgabe%,grph,,append
/show,term
luftspaltfeld.txt
/show,term
!
!
!
/prep7

tstep=1/freq/psteps
drehzahl=0
krit=9     !   Zahl fuer das Lschen von results-files

jjsteps=psteps
dreh0leer=freq*60/p

*Do,jj,1,jsteps*ndreh,1

*If,abs(drehzahl),gt,idrehs,then
     jjsteps=jjsteps+pstepi
     *If,jjsteps,gt,jsteps,then
     jjsteps=jsteps
     *EndIf
*Endif

*If,abs(drehzahl),gt,0,then
    tstep=1/freq/jjsteps
*Else
    tstep=1e-5
*Endif

deltan=(drehmoment-MLast)*tstep/(Jges_Traeg*2*pi)*60
*if,abs(deltan),gt,1,then
deltan=0
*endif

drehzahl=drehzahl+deltan

winkels=tstep/(1/(drehzahl-deltan/2)*60)*360

zeit=zeit+tstep
!
! Wechsel der Resultfiles
!
!
!   Kriterium erfuellen
!
ij=jj/krit
ijj=nint(ij-0.5)
isort=jj-ijj*krit
*If,isort,eq,0,then
isort=krit
*EndIf
*stat,isort
!
*If,isort,le,krit/3,then
!
!   Kriterium a
!
/com,Jetzt ist jj = %jj%
  /assign,rst,a%jj%,rst
  resfile=1
  /sys,del b*.rst
!
*ElseIf,isort,le,2*krit/3,then
  *If,isort,gt,krit/3,then
  !
  !    Kriterium b
  !
  /assign,rst,b%jj%,rst
  resfile=2
  /sys,del c*.rst
  *EndIf
!
*ElseIf,isort,le,krit,then
  *If,isort,gt,2*krit/3,then
  !
  !   Kriterium c
  !
  /assign,rst,c%jj%,rst
  resfile=3
  /sys,del a*.rst
  *EndIf
*EndIf

*stat,resfile
!
!

!
!
!


/prep7
!
i=i+1
!

allsel
cedel,all,all,all
cmsel,s,krotor
allsel,below,area
csys,1

agen,,krotor,,,,winkels,,,,1          !   Drehung des Rotors um oben angegebenen Winkel
winkel=winkel+winkels
allsel

_cef=.3
cmsel,s,nodeinnen
cmsel,s,elemaussen
cmsel,u,nodeaussen 
CEINTF,_cef, , , , , , ,0,

allsel
!
!
!  Spannungsvektor
!


phase=phase+2*pi*freq*tstep*180/pi
*Do,im,1,m
ET,114+im-1,CIRCU124,4,0
R,114+im-1,u1*cos(phase-(im-1)*360/m),0,  
*EndDo
!
alls
!
fini
!
/prep7
dsys,0
csys
save,sicher,db
resume,leer,db
resume,sicher,db


/solu
antyp,tran,rest
timinit,on,mag
timinit,on,elect
tintp,,,,1
time,zeit
!
*get,timea,active,0,time,cpu
SOLVE  
*get,timee,active,0,time,cpu
rechzeit=timee-timea

!
fini
/show,term
/post1                      !   bergang zum Postprozessor
!
!  Einlesen des richtigen 
!  Resultfiles
!
*If,resfile,eq,1,then
inres,
file,a%i%,rst,
*ElseIf,resfile,eq,2,then
inres,
file,b%i%,rst,
*ElseIf,resfile,eq,3,then
inres,
file,c%i%,rst,
*EndIf


set,last,last               !   Whlen des letzten Datensatzes der Lsung
/post1
esel,s,enam,,124
etable,refl

torq.txt,'erotor'
drehmoment=torqmx*jochtiefe
drehmoment2=torqvw*jochtiefe

*get,u1e,elem,eu1,etab,spanng
*get,u2e,elem,eu2,etab,spanng
*get,u3e,elem,eu3,etab,spanng
*get,ue,elem,eeu2,etab,spanng
*get,i1e,elem,er1,etab,strom
*get,i2e,elem,er2,etab,strom
*get,i3e,elem,er3,etab,strom
*get,ie,elem,eer2,etab,strom
*get,Pauf1,elem,eu1,etab,leistu
*get,Pauf2,elem,eu2,etab,leistu
*get,Pauf3,elem,eu3,etab,leistu
*get,Perr,elem,eeu2,etab,leistu
*get,PR1,elem,er1,etab,leistu
*get,PR2,elem,er2,etab,leistu
*get,PR3,elem,er3,etab,leistu
*get,PRE,elem,eer2,etab,leistu

/output,torq%ausgabe%,lis,,append
*VWrite,i,zeit,winkel,drehmoment,drehmoment2
(5(g14.6,' '))
/output,term

/output,U_I_Stator%ausgabe%,lis,,append
*VWrite,i,zeit,winkel,U1e,i1e,u2e,i2e,u3e,i3e,drehmoment,drehzahl,rechzeit
(12(g14.6,' '))
/output,term
/output,U_I_Rotor%ausgabe%,lis,,append
*VWrite,i,zeit,i1e,i2e,i3e,rechzeit
(6(g14.6,' '))
/output,term
/output,Pauf_Stator%ausgabe%,lis,,append
*VWrite,i,zeit,Pauf1,Pauf2,Pauf3,PR1,PR2,PR3,rechzeit
(9(g14.6,' '))
/output,term
/output,Pauf_Rotor%ausgabe%,lis,,append
*VWrite,i,zeit,ue,ie,Perr,PRE,rechzeit
(9(g14.6,' '))
/output,term
allsel
/show,Plots%ausgabe%,grph,,append
aplot
/show,Plots%ausgabe%,grph,,append
plf2d,51,0,20,1
allsel,below,area
/show,Plots%ausgabe%,grph,,append
PLNSOL,B,SUM,0, 
csys,1  
NSEL,S,LOC,X,rinnen+jochdicke2+delta/2  
/VSCALE,1,1,0   
/show,Plots%ausgabe%,grph,,append
PLVECT,B, , , ,VECT,ELEM,ON,0   
/show,Plots%ausgabe%,grph,,append
PLVECT,h, , , ,VECT,ELEM,ON,0   
/show,Plots%ausgabe%,grph,,append
/show,term
luftspaltfeld.txt
/show,term
*If,jj,gt,krit,then
/sys,del a*.rst
*EndIf
!
!
allsel

*EndDo


/prep7

allsel
cedel,all,all,all
cmsel,s,krotor
allsel,below,area
csys,1

agen,,krotor,,,,-winkel,,,,1          !   Drehung des Rotors um oben angegebenen Winkel
allsel

_cef=.3
cmsel,s,nodeinnen
cmsel,s,elemaussen
cmsel,u,nodeaussen 
CEINTF,_cef, , , , , , ,0,

allsel
