!導線の表皮効果による電流分布

 投稿者:SECOND  投稿日:2009年11月11日(水)15時55分47秒
  !導線の表皮効果による電流分布

!電波時計などに使うバーアンテナの巻線について、エナメル線と、リッツ線
!( 細線を多数束ねた絹巻線)で、損失に、どのくらい差があるかを、調べます。

!変形ベッセル関数1種0次を使用して、導体断面の半径ごとの電流密度分布の
!グラフを書きます。これを見ると、40kHzぐらいなら、0.5φmm 単線の
!エナメル線でも、大して違わないようです。
!
!---------------
OPTION ARITHMETIC COMPLEX

!半径r(m)の電流密度Ir(A/m^2) / 表皮半径a(m)の電流密度Ia(A/m^2)

!Ir/Ia= I0( k*r )/ I0( k*a )  ・・・I0(z) 変形ベッセル関数1種0次
! k=√(j*2*π*周波数*u*g)     ・・・j=虚数
LET u=PI*4*1e-7 !H/m 透磁率 !銅
LET g=58*1e6    !S/m 導電率 !銅

SET bitmap SIZE 640, 400
CLEAR
SET COLOR MIX(15) .4, .4, .4
SET COLOR MIX( 0) .4, .4, .4
SET AREA COLOR 1
DIM col(6),frq(6)
MAT READ col
DATA 4,   6,   2,   7,    3,     5 ! red yellow blue magenta green cyan
MAT READ frq
DATA 10e3,40e3,60e3,100e3,1e6,10e6
!
LET a=0.5*1e-3  !m   導線半径.(1mmφ)
SET VIEWPORT 100/640,300/640, 100/640,300/640
CALL msub00
LET a=a/2       !m   導線半径.(.5mmφ)
SET VIEWPORT 350/640,550/640, 100/640,300/640
CALL msub00
!
SET VIEWPORT 0/640,640/640, 0/640,400/640
SET WINDOW 0,16, 10,0
SET TEXT COLOR 1
PLOT TEXT,AT 4,.5:"表皮効果によるエナメル線(銅)の電流密度分布"
PLOT TEXT,AT 4,1.3 ,USING"φ= %.##mm": a*4000
PLOT TEXT,AT 10.25,1.3 ,USING"φ= %.##mm": a*2000
PLOT TEXT,AT     3,2:"表皮 ← 中心 → 表皮"
PLOT TEXT,AT 9.25,2:"表皮 ← 中心 → 表皮"
PLOT AREA:.5,2.5;2,2.5;2,7.5;.5,7.5
FOR ch=1 TO 6
   SET TEXT COLOR col(ch)
   IF frq(ch)< 1e6 THEN LET w$=STR$(frq(ch)/1e3)& "KHz" ELSE LET w$=STR$(frq(ch)/1e6)& "MHz"
   PLOT TEXT,AT .8, 3+.6*ch: w$
NEXT ch

!------
SUB msub00
   SET WINDOW -a*1.01,a*1.01, -0.01,+1.01
   PLOT AREA:-a*1.01,-0.01;a*1.01,-0.01;a*1.01,1.01;-a*1.01,1.01
   DRAW axes0( a/5, 0.2)
   ASK PIXEL SIZE(-a,0;a,0) j,i
   LET dr=2*a/j
   PRINT USING "φ= %.##mm": a*2000
   FOR ch=1 TO 6
      CALL skin
   NEXT ch
END SUB

SUB skin
   SET LINE COLOR col(ch)
   LET k=SQR( COMPLEX(0,1)*2*PI*frq(ch)*u*g )
   LET Iaa= ABS( besseli(0,k*a) ) !表面電流密度 A/m^2
   !---
   FOR r=dr TO a STEP dr
      LET ra= ABS( besseli(0,k*r))/Iaa
      IF r=dr THEN
         IF frq(ch)< 1e6 THEN LET w$=STR$(frq(ch)/1e3)& "KHz" ELSE LET w$=STR$(frq(ch)/1e6)& "MHz"
         PRINT right$("  "& w$,6);" ";
         PRINT USING$("###.########",ra*100);"%" !電流密度比(中心/表面)
      ELSE
         PLOT LINES:xb,yb; r,ra
         PLOT LINES:-xb,yb;-r,ra
      END IF
      LET xb=r
      LET yb=ra
   NEXT r
END SUB

!------ 変形ベッセル関数1種0次
FUNCTION besseli(n,x)
   LET m=2*INT( (6+MAX(n,1.5*ABS(x))+9*1.5*ABS(x)/(1.5*ABS(x)+2))/2)
   LET w=0
   FOR kk=1 TO m
      LET w=w+Tki(kk,x)
   NEXT kk
   LET besseli=EXP(x)*Tki(n,x)/(Tki(0,x)+2*w)
END FUNCTION

FUNCTION Tki(i,x)
   LET t2=0
   LET t1=1e-9
   LET t0=2*(m+1)/x*t1+t2
   FOR kp1=m TO i+1 STEP -1
      LET t2=t1
      LET t1=t0
      LET t0=2*kp1/x*t1+t2
   NEXT kp1
   LET Tki=t0
END FUNCTION

END

!※十進BASIC にも ベッセル関数、変形ベッセル関数1種を内蔵出来ないでしょうか。
 

戻る