Bilaga 4. Programlista PWMIND — del 1

Rekonstruktion, pass 1. Denna fil omfattar originalets bilaga 4.6–4.9 (PDF-sidorna 38–41), från rad 0100 till rad 2490 i programlistan.

Programtexten är återgiven i fast FORTRAN-format så långt skanningen medger. Punktmatrisskriften gör denna del mindre säker än den löpande texten. Några svårlästa variabelnamn och fortsättningsrader bör därför kontrolleras mot originalet i en senare passering. Svenska texter i PRINT-satser har återställts med å, ä och ö där de är tydliga.

Bilaga 4.6 — original sida 38

0100C     PROGRAM FÖR MASKINBERÄKNING MED PWM REFERENS-
0110C     OCH MODULATIONSPULSER SOM INDATA
0120C     PROGRAMMET BERÄKNAR MOMENTANVÄRDEN PÅ SPÄNNING,
0130C     STRÖMMAR OCH MOMENT. FÖRLUSTER BERÄKNAS
0140C     *******************************************************
0150      DIMENSION RES(50,5),AIN(10),NRWANT(50),KIND(50),IIND(50)
0160      DIMENSION ABM(50,5),U(50,2,2),UDQ(50),UDG(50),UDA(50),
     &              VOD(50)
0170      DIMENSION DELTAU(50,2)
0180      DIMENSION VOD(50,4),HM(20),EE(4),SI(4),BS(20)
0190      DIMENSION AINTID(10)
0200      DIMENSION H(20),BC(20),RHO(20)
0210      DIMENSION A(50,2,4),RROT(50,2),EFF(50,2)
0220      COMMON/LABEL2/RS,LS,M,LR,RR,WE,WR,A(4,4),RI,LI,B(4,4)
0230      COMMON/LABEL1/IND(199)
0240      REAL PI/3.14159/
0250      REAL MOM1
0260      REAL KM,LS,LR,M,LI
0270      REAL PCU1,PCU2,IQST,IDST,IQRT,IDRT,MOMT
0280      CHARACTER TEXT*42
0290    1 CONTINUE
0300      DO 3 I=1,50
0310      NRWANT(I)=0
          KIND(I)=0
          IIND(I)=0
0320      IF(I.LT.11) AIN(I)=0.
0330    3 CONTINUE
0340      DO 5 I=2,198,2
0350      IND(I)=3*I-1
0360    5 IND(I+1)=3*I+1
0370      IND(1)=1
0380      PRINT,"GE ANTAL ARGUMENT (ALFA) SOM INTE=0"
0390      READ,N
0400      NTID=N
0410      PRINT,"GE ARGUMENTEN I GRADER"
0420      READ,(AINTID(I),I=1,N)
0430      DO 10 I=1,N
0440   10 AIN(I)=AINTID(I)*PI/180
0450      DO 7 I=1,N
0460      AINTID(I)=AIN(I)
0470    7 CONTINUE
0480      PRINT,"ÖNSKAS SÄRSKILDA FREKVENSER? 1=JA"
0490      READ,IS
0500      IF(IS.NE.1) GO TO 15
0510      PRINT,"GE ANTALET ÖNSKADE FREKVENSER"
0520      READ,NT
0530      PRINT,"GE FREKVENSERNA SOM F/F0, F0=GRUNDTON"
0540      READ,(NRWANT(I),I=1,NT)
0550      GO TO 40
0560   15 PRINT,"GE HÖGSTA ÖNSKADE FREKVENS F/F0, F0=GRUNDTON"
0570      READ,NMAX
0580      DO 20 I=1,199
0590      IF(IND(I).GT.NMAX) GO TO 30
0600   20 NRWANT(I)=IND(I)
0610   30 NT=I-1
0620   40 CONTINUE
0630      PRINT,"GE PULSKVOT"
0640      READ,APK
0650      PRINT,"GE (ANTALET PULSER PER PERIOD)/6"
0660      READ,MK
0670      MKN=6*MK
0680      PRINT,"GE FASFÖRSKJUTNING I GRADER"
0690      READ,FFI

Bilaga 4.7 — original sida 39

0700      PRINT,"GE MINSTA AMPLITUD SOM SKALL ADDERAS"
0710      READ,RMMIN
0720      FFI=FFI*PI/180
0730      IE=2
0740      PRINT,"ÖNSKAS KONSTANT FLÖDE? 1=JA"
0750      READ,IE
0760      IF(IE.NE.1) GOTO 107
0770      PRINT,"GE ÖNSKAT E-VÄRDE"
0780      READ,E1
0790  107 CONTINUE
0800  103 CONTINUE
0810C
0820      WRITE(6,104) APK
0830  104 FORMAT(1X,"PULSKVOT=",F10.4)
0840      K1=0
0850      N=NTID
0860      DO 109 I=1,N
0870  109 AIN(I)=AINTID(I)
0880      DO 200 J=1,NT
0890      R1=APK*REFK(N,AIN,NRWANT(J))
0900      R2=NRWANT(J)
0910      R3=0
0920      CALL FIND1(NRWANT(J),MKN,KIND,IIND,M1)
0930      IF(M1.LT.1) GO TO 120
0940      DO 110 J1=1,M1
0950      RM=AMT(APK,IIND(J1))*REFK(N,AIN,KIND(J1))/2.
0960      FI=-IIND(J1)*FFI
0970      IF(ABS(RM).LT.RMMIN) GO TO 110
0980      CALL ADD(RM,R1,FI,R3,FI,RR1,RR3)
0990      R1=RR1
1000      R3=RR3
1010  110 CONTINUE
1020  120 CONTINUE
1030      CALL FIND2(NRWANT(J),MKN,KIND,IIND,M2)
1040      IF(M2.EQ.0) GO TO 150
1050      DO 140 J2=1,M2
1060      K2=IABS(KIND(J2))
1070      I2=IABS(IIND(J2))
1080      RM=AMT(APK,I2)*REFK(N,AIN,K2)/2.
1090      RM=RM*SIGN(1.,KIND(J2))
1100      IF(ABS(RM).LT.RMMIN) GO TO 140
1110      FI=FFI*IIND(J2)
1120      CALL ADD(RM,R1,FI,R3,FI,RR1,RR3)
1130      R1=RR1
1140      R3=RR3
1150  140 CONTINUE
1160  150 K1=K1+1
1170      RES(K1,1)=R1
1180      RES(K1,2)=R2
1190      RES(K1,3)=R3
1200  200 CONTINUE
1210C
1220      IF(IE.EQ.1) GOTO 411
1230      WRITE(6,420)
1240  420 FORMAT(1X,5(1H*),/T10,"RESULTAT AV FOURIERANALYS:",
     &       /5(1H*),/T10,"F/F0",5X,"AMPLITUD",3X,"FASVINKEL",
     &       /70(1H-))
1260      WRITE(6,430)(RES(I,2),RES(I,1),RES(I,3),I=1,K1)
1270  430 FORMAT(1X,T10,F4.0,5X,F7.5,2X,F9.5)
1280  440 CONTINUE
1290  411 CONTINUE

Bilaga 4.8 — original sida 40

1300      PRINT,"ÖNSKAS NY FOURIER-ANALYS ? 1=JA"
1310      READ,IIVS
1320      IF(IIVS.EQ.1) GO TO 1
1330      PRINT,"NYA MASKINKONSTANTER ? 1=JA"
1340      READ,MASK
1350C
1360      K3=K1
1370      IF(MASK.NE.1) GOTO 405
1380      PRINT,"ÖNSKAS MBK 280 S-6:S MASKINKONSTANTER? 1=JA"
1390      READ,IMBK
1400      IF(IMBK.NE.1) GOTO 404
1410      RS=.048
          XLS=.21
          XM=3.886
          XLR=.16
          RRO=.051
          P=6
          FB=50
1420      SPTR=2
          BS21=3.95
          BS22=3.95
          HS2=29.2
          BSY2=2
          HSY2=1
1430      BSMR=0
          HSMR=0
          BCR1=3.75
          BCMR=0
          HCR=28
          RHO2=.0425
          RRAT=.65
1440  404 CONTINUE
1450      IF(IMBK.EQ.1) GOTO 405
1460      PRINT,"GE INDATA: RS,XLS,XM,XLR,RRO,P,FB"
1470      READ,RS,XLS,XM,XLR,RRO,P,FB
1480      PRINT,"ROTOR-SPTR: BS21,BS22,HS2,BSY2,HSY2,BSMR,HSMR",
1490     &      " BCR1,BCMR,HCR,RHO2,RRAT"
1500      READ,SPTR,BS21,BS22,HS2,BSY2,HSY2,BSMR,HSMR,
1510     &     BCR1,BCMR,HCR,RHO2,RRAT
1520  405 CONTINUE
1530      PRINT,"ÖNSKAS S-ITERATION? 1=JA"
1540      READ,IIVS
1550  390 PRINT,"GE FM0, SM, UD/2"
1560      READ,FM0,SM,UM1
1570      RI=0
          LI=0
1580      PRINT,"SKALL SERIEREAKTOR INGÅ I BERÄKNINGARNA? 1=JA"
1590      READ,KS
1600      IF(KS.NE.1) GOTO 392
1610      PRINT,"GE SERIEREAKTORDATA: R,L"
1620      READ,RI,LI
1630      XL=2*PI*FB*LI
1640  392 CONTINUE
1650  397 CONTINUE
1660  394 CONTINUE
1670      CALL SARE(SPTR,BS21,BS22,HS2,BSY2,HSY2,BSMR,HSMR,
1680     &          BCR1,BCMR,HCR,RHO2,N,BS,H,BC,RHO)
1690      WRITE(6,530)
1700  530 FORMAT(1X,5(1H*))
1710C     UPPLÄGGNING AV RESULTAT FRÅN FOURIER-ANALYS
1720C     3-FAS TILL Q OCH D-AXEL
1730      WRITE(6,545)
1740C
1750      K1=K3
1760      IF(IIVS.EQ.1) K1=1
1770      IF(IE.EQ.1) K1=1
1780      DO 540 I=1,K1
1790      A2=RES(I,1)*SIN(RES(I,3))+UM1
1800      B3=RES(I,1)*COS(RES(I,3))+UM1
1810      ABM(I,1)=RES(I,2)
1820      ABM(I,2)=A2
1830      ABM(I,3)=B3
1840      IN=ABM(I,1)
1850  540 WRITE(6,550) A2,IN,B3,IN
1860C
1870      PRINT,"COPY"
          READ,STRUNT
1880  545 FORMAT(1X,6(1H*),/T10,"SPÄNNING Q-AXEL")
1890  550 FORMAT(1X,T10,F10.3,"*COS(",I2,"*WT) +",

Bilaga 4.9 — original sida 41

1900     &      I2,"*WT) + ",F10.3,"*SIN(",I2,"*WT) +")
1910  559 CONTINUE
1920      WRITE(6,530)
1930C     WQ & WD
1940      S2=2/SQRT(3)
1950C
1960      K1=K3
1970      IF(IIVS.EQ.1) K1=1
1980      IF(IE.EQ.1) K1=1
1990      DO 560 I=1,K1
2000      ABM(I,4)=S2*ABM(I,3)*SIN(ABM(I,1)*2*PI/3)
2010      ABM(I,5)=-S2*ABM(I,2)*SIN(ABM(I,1)*2*PI/3)
2020      IN=ABM(I,1)
2030  560 CONTINUE
2040C
2050      XS=XLS+XM
2060      XR=XLR+XM
2070      WP=2*PI*FB
2080      WE=2*PI*FM0
2090      LS=XS/WP
2100      M=XM/WP
2110C
2120      EE(3)=0.
2130      EE(4)=EE(3)
2140C
2150      IF(KS.NE.1) GOTO 699
2160      DO 698 K=1,50
2170      DO 698 J=1,2
2180      DO 698 I=1,2
2190      U(K,J,I)=0.0
2200  698 CONTINUE
2210  699 CONTINUE
2220      K1=K3
2230      IF(IE.EQ.1) K1=1
2240      DO 700 K=1,K1
2250      KU=ABM(K,1)
2260      WR=WE*(1-SM)
2270C
2280      VOD(K,1)=0.5*(ABM(K,2)-ABM(K,5))
2290      VOD(K,2)=0.5*(ABM(K,3)+ABM(K,4))
2300      VOD(K,3)=0.5*(ABM(K,2)+ABM(K,5))
2310      VOD(K,4)=0.5*(ABM(K,3)-ABM(K,4))
2320C
2330      DO 700 J=1,3,2
2340      MP=1
2350      IF(J.EQ.3) MP=2
2360      EE(1)=VOD(K,J)
2370      EE(2)=VOD(K,J+1)
2380      KW=ABM(K,1)
2390      IF(J.EQ.3) KW=-ABM(K,1)
2400      F2=ABS(KW*WE-WR)/(2*PI)
2410      CALL RSPIMP(1,F2,N,0,BS,H,BC,RHO,
     &            Z1,Z2,Z3,Z4,Z5,Z6,Z7,Z8)
2420      CALL RSPIMP(1,.1,N,0,BS,H,BC,RHO,
     &            Z3,Z4,Z5,Z6,Z7,Z8,Z9,Z10)
2430      RFACT=RRAT*(Z1/Z3-1.0)+1.0
2440      XFACT=RRAT*(Z2*.1/(Z4*F2)-1.0)+1.0
2450      LR=(XLR*XFACT+XM)/WP
2460      RR=RRO*RFACT
2470      RROT(K,MP)=RR
2480      CALL SETA(KW)
2490      CALL MINF(F2,4,4,0.0001,HM,IER2)