acmotor Translation Listing



 FORTRAN CALCULUS (VERSION 2.0) ------------------------- 04/18/2008   16:03:29
 ####  LABEL ---+---------+---------+---------+---------+---------+---------+--
~
    1        GLOBAL ALL
    2        PROBLEM ACMOTOR
            !----------------------------------------------------------------|
            ! Optimization Re-Engineering of a BASIC simulation model        |
            ! developed by a Sierracin Magnedyne engineer.                   |
            !----------------------------------------------------------------|
            ! Assisted by a mentor from PROSE Inc., this program was         |
            ! converted to PROSE, and optimim results were found after a few |
            ! runs, solving for twelve design parameters while satisfying    |
            ! seven constaints, and optimizing motor efficiency to 73%, an   |
            ! improvement of 33% over the simulation results.                |
            !----------------------------------------------------------------|
      
    3          DIMENSION CNS(7)   ! Constraints vector
    4          DYNAMIC BOTM,BND   ! Constant floor constraints and step bounds
    5          CALL SETUP         ! Set constants, initial guesses and bounds
    6          @TERMINAL(11)      ! Set terminal (console) output to unit 11
    7          @STREAM(’CONSOLE’) ! Route print statements to console stream
    8          CALL DESIGN        ! Execute original model simulation
      
    9          PRINT *,’--------------- INITIAL DESIGN ---------------’
   10          CALL OUTPUT        ! Results of initial simulation
      
           ! Now optimize
      
   11          FIND COILTRNS,  ! Number of turns per coil
           &      SEPDIAM,    ! Separating diameter
           &      STASLOTW,   ! Stator slot opening width
           &      ROTSLOTW,   ! Rotor slot opening width
           &      AIRGAP,     ! Air gap
           &      STATOOTW,   ! Stator tooth width
           &      STABAKIR,   ! Stator back iron
           &      ROTTOOTW,   ! Rotor tooth width
           &      ROTBAKIR,   ! Rotor back iron
           &      STASLOTO,   ! Stator slot opening depth
           &      ROTSLOTO,   ! Rotor slot opening depth
           &      SLIP;       ! Slip
           &    IN DESIGN; BY THOR(TCON);
           &    WITH BOUNDS BND; AND LOWERS BOTM;
           &    HOLDING CNS; TO MAXIMIZE EFF
      
           ! And print optimum results ...
      
   12          PRINT *,’---------------- OPTIMIZED DESIGN -----------------’
   13          CALL OUTPUT
   14        END
~
      
   15        MODEL DESIGN
   16          F1=231258.0438/COILTRNS
   19>         Q1=SEPDIAM*PI/56 : Q2=SEPDIAM*PI/69 : Q3=SEPDIAM*PI/28
   20          C1=Q1/((Q1-STASLOTW)+(STASLOTW*(.7-(.036*(STASLOTW/AIRGAP)))))
   21          C2=Q2/((Q2-ROTSLOTW)+(ROTSLOTW*(.7-(.036*(ROTSLOTW/AIRGAP)))))
   22          CRNOL=F1*AIRGAP*C1*C2/(6.96*COILTRNS*Q3)
   23          Q4=(STATOROD-STABAKIR-STABAKIR-SEPDIAM-.1)/2-.01
   26>         Q5=(SEPDIAM+Q4+.1)*PI/56-STATOOTW-.016 :  A3=Q4*Q5 : Z1=7000*A3
   28>         Q6=COILTRNS*2/Z1: Z3=-2
   31>         Z4=32+Z3 : Q7=1.26**Z3*162 : Q8=64/1.26**Z3
   32          Z5=STACKLEN+STACKLEN+PI*STATOROD/14
   33          RDC=Z5*COILTRNS*28*Q7/12000
   34          V1=(SEPDIAM-.06-ROTORID-ROTBAKIR-ROTBAKIR)/2
   35          V2=(SEPDIAM-.06-V1)*PI/69-ROTTOOTW
   37>         A4=V1*V2 : R2=(.0133/A4)*(STACKLEN/12000)*U1
   39>         RROT=(56*COILTRNS)**2*R2/138 : R4=RROT
   40          G3=3.2*(Q4/(3*Q5)+.03/(STASLOTW+Q5)+STASLOTO/STASLOTW)
   41          G4=3.2*(V1/(3*V2)+.03/(ROTSLOTW+V2)+ROTSLOTO/ROTSLOTW)
   42          G5=(1/C1+1/C2-1)**2*.26/AIRGAP
   43          G6=(G3+G5*Q1)/56+(G4+G5*Q2)/69
   44          XLEAK=XC*PI*COILTRNS**2*(.05+G6*STACKLEN)    ! Leakage reactance
   45          CRSTAL=115/(SQRT(((RDC+R4)**2)+XLEAK**2))    ! Stall current
   46          CRFL=115/(SQRT(((RDC+R4/SLIP)**2)+XLEAK**2)) ! Full load current
   47          STORQ=1.5792*(CRSTAL**2)*R4                  ! Stall torque
   48          RTORQ=1.5792*(CRFL**2)*R4/SLIP               ! Running torque
   49          P8=RTORQ*(1-SLIP)*1.264944649
   50          P6=(CRSTAL**2)*(RDC+R4)
   51          P7=(CRFL**2)*R4/SLIP
   52          FLUX=(1.4*F1/(STATOOTW*STACKLEN))/6450       ! Flux density
   53          B7=(SQRT(CRFL**2+CRNOL**2)*FLUX/CRNOL)/1.4
   54          B2=.13*B7**1.9
   55          B3=(((STATOROD**2-SEPDIAM**2)*PI/4)-56*A3)*0.28*STACKLEN
   56          FELOSS=B3*B2                           ! Iron losses
   57          CULSTA=(B7*CRNOL)/FLUX)**2*RDC         ! Stator copper losses
   58          EFF=.5*P8/(P7+FELOSS/2+CULSTA)         ! Efficiency -> maximize
   59          RAC=13225/FELOSS                       ! A.C. resistance
   60          XMAG=115/CRNOL                         ! Magnetizing reactance
   61          CULROT=CRFL*CRFL*RROT/STASLOTW         ! Rotor copper losses
      
          ! Stator O.D >= Separation Diam +.1
       C   Constraints
   62          CNS(1)=STATOROD-.1-SEPDIAM
          ! Separation Diam >= Rotor I.D -.1
   63          CNS(2)=SEPDIAM-ROTORID+.1
          ! Rotor tooth geometry
   64          CNS(3)=((SEPDIAM*PI/69)-.035)-ROTTOOTW
          ! Rotor back iron geometry
   65          CNS(4)=.5*(SEPDIAM-ROTORID)-.025-ROTBAKIR
          ! Stall torque >= 60
   66          CNS(5)=STORQ-60
          ! Flux density <= 19
   67          CNS(6)=19-FLUX
          ! Slip <= 5 percent
   68          CNS(7)=.05-SLIP
~
   69        END
~
      
   70        PROCEDURE SETUP
   71          CALL FIXEDATA
   72          CALL GUESSES
   73          CALL BOUNDS
   74        END
~
      
   75        PROCEDURE FIXEDATA
   76          ROTORID=2.875   ! Rotor inside diameter
   77          STATOROD=5.11   ! Stator outside diameter
   78          Y1=2
   79          XC=0.050176
   80          STACKLEN=2
   81          U1=2.6
   82          PI=3.1415926536
   83        END
~
      
   84        PROCEDURE GUESSES
   85          COILTRNS=29
   86          SEPDIAM=4
   87          ROTSLOTW=.035
   88          AIRGAP=.008
   89          STATOOTW=.135
   90          STABAKIR=.15
   91          STASLOTW=.06
   92          ROTTOOTW=.11
   93          ROTBAKIR=.47
   94          STASLOTO=.035
   95          ROTSLOTO=.015
   96          SLIP=.03
   97        END
~
      
   98        PROCEDURE BOUNDS
   99          <BOTM>=DATA(5,0,.035,.035,.008,.04,.06,0,0,.025,0,0)
  100          <BND>=DATA(.01*COILTRNS,.05*SEPDIAM,.01*STASLOTW,.01*ROTSLOTW,
           &  .05*AIRGAP,.01*STATOOTW,.05*STABAKIR,.01*ROTTOOTW,.05*ROTBAKIR,
           &  .05*STASLOTO,.05*ROTSLOTO,.05*SLIP)
  101        END
~
      
  102        PROCEDURE OUTPUT
  103          PRINT *,’ EFFICIENCY =’,EFF
  104          PRINT *,’ STALL TORQUE =’,STORQ
  105          PRINT *,’ RUNNING TORQUE =’,RTORQ
  106          PRINT *,’ FLUX DENSITY =’,FLUX
  107          PRINT *,’ IRON LOSSES =’,FELOSS
  108          PRINT *,’ D.C. RESISTANCE =’,RDC
  109          PRINT *,’ A.C. RESISTANCE =’,RAC
  110          PRINT *,’ ROTOR RESISTANCE =’,RROT
  111          PRINT *,’ LEAKAGE REACTANCE =’,XLEAK
  112          PRINT *,’ MAGNETIZING REACTANCE =’,XMAG
  113          PRINT *,’ STATOR COPPER LOSSES =’,CULSTA
  114          PRINT *,’ ROTOR COPPER LOSSES =’,CULROT
  115          PRINT *,’ NO LOAD CURRENT =’,CRNOL
  116          PRINT *,’ FULL LOAD CURRENT =’,CRFL
  117          PRINT *,’ STALL CURRENT =’,CRSTAL
  118        END
~
      
  119        CONTROLLER TCON(THOR)
  120          SUMOUT=1
  121          DETAIL=1
  122          DETOUT=0
  123        END