Расчет резонаторного фильтра на прямых объемных магнитостатических волнах

c HD=CMPLX(D1,D2)

c HA=CMPLX(0.5,-E)

c HC=(1.0,0.)

c Z1=0.

c Z2=-KDPLUS*W

c HZ=CMPLX(Z1,Z2)

c CALL HYP11(HA,HC,MAX,HZ,HS)

c HF=HS*HD

c X1=REAL(HF)

c X2=AIMAG(HF)

c JPK=CABS(HF)

JPK=SIN(KDPLUS*W/(2*D))

JPK=JPK/(KDPLUS*W/(2*D))

JPK2=JPK**2

c D3=COS(-KDMINU*W/2)

c D4=SIN(-KDMINU*W/2)

c HD=CMPLX(D3,D4)

c Z2=-KDMINU*W

c HZ=CMPLX

(Z1,Z2)

c CALL HYP11(HA,HC,MAX,HZ,HS)

c HF=HS*HD

c X3=REAL(HF)

c X4=AIMAG(HF)

c JMK=CABS(HF)

JMK=SIN(KDMINU*W/(2*D))

JMK=JMK/(KDMINU*W/(2*D))

JMK2=JMK**2

KTPL=KDPLUS*TD

KTMN=KDMINU*TD

C PRINT*,KTPL,KTMN

THKTPL=TANH(KTPL)

SKTPL2=(1/COSH(KTPL))**2

THKTMN=TANH(KTMN)

SKTMN2=(1/COSH(KTMN))**2

KP=THKTPL*THKTPL*M22

KP=KP/(2*KDPLUS*((THKTPL-M12)**2-M11*M22)-2*KTPL*M22*SKTPL2)

KM=-THKTMN*THKTMN*M22

KM=KM/(2*KDMINU*((THKTMN-M12)**2-M11*M22)-2*KTMN*M22*SKTMN2)

KP=KP/(SINH(KTPL)*SINH(KTPL))

KP=KP*SINH(KDPLUS*(TD-H))*SINH(KDPLUS*(TD-H))

KM=KM/(SINH(KTMN)*SINH(KTMN))

KM=KM*SINH(KDMINU*(TD-H))*SINH(KDMINU*(TD-H))

R1=KP*JPK2+KM*JMK2

R=MV*2*PI*F*(KP*JPK2+KM*JMK2)

R2=MV*2*PI*F*KP*JPK2

R3=MV*2*PI*F*KM*JMK2

WRITE(6,103)F,KP,KM,JPK2,JMK2,R,R2,R3,KDPLUS,KDMINU

100 CONTINUE

FR(IL)=F

KR(IL)=KDPLUS/D

RR(IL)=R

11 CONTINUE

C расчет интеграла Гильберта Xm

WRITE(6,52)

FF2=(F3-F1)/NR

DO 104 I=1,NR

XX(I)=(RR(I)/PI)*LOG((F1+FR(I))*(F3-FR(I))/

*((F3+FR(I))*(FR(I)-F1)))

SUM=.0

DO 207 J=1,NR

IF(J.NE.I) GO TO 108

SUM=SUM+2*FF2*FR(I)*((RR(J-1)-RR(I))/(FR(J-1)**2-FR(I)**2))/PI

GO TO 207

108 SUM=SUM+2*FF2*FR(I)*((RR(J)-RR(I))/(FR(J)**2-FR(I)**2))/PI

207 CONTINUE

XX(I)=XX(I)+SUM

WRITE(6,103)FR(I),KR(I),RR(I),XX(I)

104 CONTINUE

CLOSE (6)

WRITE(*,*)'Eshe raz?'

READ(*,14)KEY

IF(KEY.EQ.'Y') GO TO 19

IF(KEY.EQ.'N') GO TO 12

GO TO 12

15 WRITE(*,*)'Mezhdu kakimi chastotami MIN,MAX(GHz) brat polosu?'

READ(*,*)FRMIN,FRMAX

GO TO 5

61 FORMAT(1H ,51HBABICHEV FVMSW MICROSTRIP LINE(A) WITH H AND SCREEN)

62 FORMAT(/8H H EXT =,F8.3,4H KOE,7H AMS = ,F8.3,4H KOE,

*/3X,

*5H W = ,F9.5,3H CM)

64 FORMAT(4H D= ,F10.6,3H CM,6H T/D= ,F12.2,6H H/D= ,F12.2,5H GH =,

*F7.3,3X,3HNR=,I7,/3HN =,I6)

63 FORMAT(7H FLOW =,F9.3,4H GHZ,7H FMID =,F9.3,4H GHZ,

*7H FMAX =,F9.3,4H GHZ/)

51 FORMAT(9X, 2H F, 13X, 2HKP, 10X, 2HKM, 14X, 2HJP, 11X, 2HJM, 9X,

+ 1HR, 13X, 3HRPL, 13X, 2HRM, 13X, 4HKDPL, 9X, 4HKDMI)

52 FORMAT(9X, 2H F, 13X, 2H K, 10X, 3H Rm, 13X, 3H Xm)

103 FORMAT(F14.3, F14.3, F14.3, F14.3, F14.4, E15.3, E15.4, E15.4,

+ F14.6, F14.6)

106 FORMAT(F8.3,F13.4,F12.5)

12 CONTINUE

END

SUBROUTINE HYP11(A,C,K,Z,S)

COMPLEX A,C,S,Y,Z

S=(1.0,0.)

Y=(1.0,0.)

DO 47 J=1,K

I=J-1

Y=Y*((A+I)/(C+I))*Z/(I+1)

IF (REAL(S).EQ.REAL(S+Y).AND.AIMAG(S).EQ.AIMAG(S+Y)) GO TO 48

S=S+Y

47 CONTINUE

48 CONTINUE

RETURN

END

REAL FUNCTION FU(X)

REAL X,M11,M12,M22,TD,AL

COMMON M11,M12,M22,TD,AL

FU=(1+(M11*M22-M12**2-M12)*TAN(AL*X)/(AL*M22))/(1+(M12+1)*TAN

*(AL*X)/(AL*M22))+TANH(TD*X)

RETURN

END

REAL FUNCTION FW(X)

REAL X,M11,M12,M22,TD,AL

COMMON M11,M12,M22,TD,AL

FW=(-1+(M11*M22-M12**2+M12)*TAN(-AL*X)/(AL*M22))/(1+(M12-1)*

*TAN(-AL*X)/(AL*M22))+TANH(-TD*X)

RETURN

END

c

real function zeroin(ax,bx,f,tol,l)

real ax,bx,f,tol

real a,b,c,d,e,eps,fa,fb,fc,tol1,xm,p,q,r,s,AL

COMMON M11,M12,M22,TD,AL

c * eps *

eps=1.0

10 eps=eps/2.0

tol1=1.0+eps

if(tol1.gt.1.0) goto 10

c write(*,*) eps

c pause '***# 10 '

c * begin sign *

a=ax

b=bx

fa=f(a)

fb=f(b)

if (fa*fb) 20,11,11

11 l=-1

zeroin=0

return

c * begin step *

20 c=a

fc=fa

d=b-a

e=d

30 if(abs(fc) .ge. abs(fb)) goto 40

a=b

b=c

c=a

fa=fb

fb=fc

fc=fa

c 8 check converg *

40 tol1=2.0*eps*abs(b)+0.5*tol

xm=0.5*(c-b)

c write(*,*) xm

c pause ' *** #40 '

if(abs(xm) .le. tol1) goto 90

if(fb .eq. 0.0) goto 90

c * bisection=? *

if(abs(e) .lt. tol1) goto 70

if(abs(fa) .le. abs(fb)) goto 70

c * qudr interpol *

if(a .ne. c) goto 50

c * line interpolation *

s=fb/fa

p=2.0*xm*s

q=1.0-s

goto 60

c * reciprocal quadr interpolation *

50 q=fa/fc

r=fb/fc

s=fb/fa

p=s*(2.0*xm*q*(q-r)-(b-a)*(r-1.0))

q=(q-1.0)*(r-1.0)*(s-1.0)

c * sign *

60 if(p.gt.0.0) q=-q

p=abs(p)

c * interpolation? *

if((2.0*p).ge.(3.0*xm*q-abs(tol1*q))) goto 70

if(p.ge.abs(0.5*e*q)) goto 70

e=d

d=p/q

goto 80

c * bisection *

70 d=xm

e=d

c * end step *

80 a=b

fa=fb

if(abs(d).gt.tol1) b=b+d

if(abs(d).le.tol1) b=b+sign(tol1,xm)

fb=f(b)

c write(*,*) fb

c pause '*** # 80 '

if((fb*(fc/abs(fc))).gt.0.0) goto 20

goto 30

c * end *

90 zeroin=b

l=1

return

end

Страница:  1  2  3  4  5  6 


Другие рефераты на тему «Физика и энергетика»:

Поиск рефератов

Последние рефераты раздела

Copyright © 2010-2024 - www.refsru.com - рефераты, курсовые и дипломные работы