Расчет резонаторного фильтра на прямых объемных магнитостатических волнах
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
Другие рефераты на тему «Физика и энергетика»:
Поиск рефератов
Последние рефераты раздела
- Автоматизированные поверочные установки для расходомеров и счетчиков жидкостей
- Энергосберегающая технология применения уранина в котельных
- Проливная установка заводской метрологической лаборатории
- Источники радиации
- Исследование особенностей граничного трения ротационным вискозиметром
- Исследование вольт-фарадных характеристик многослойных структур на кремниевой подложке
- Емкость резкого p-n перехода