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
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)