モーメント法によるダイポールアンテナの解析
(区分正弦ガラーキン法)

平野拓一

General Formula

𝔸=(∫_(-ℓ/2)^(ℓ/2))((μ 𝕚 (z') 
                    (e^(-jkr)))/(4 π r))dz'    (Vector Potential)
G=((e^(-jkr))/(4 π r))    (Green' s Function)r=(Sqrt[(𝒶^2) + (((z - z'))^2)])    (Distance between Source Point and Observation Point)

∇·𝔸+jωμϵ ϕ=0    (Lorentz Condition)
ϕ=-\(TraditionalForm
      \`∇\(·𝔸\)\/jωμϵ\)
𝔼=-∇ϕ-jω𝔸=(1/j)ωμϵ\(TraditionalForm
      \`\((∇∇·𝔸 + 
          \(𝓀\^2\) 𝔸)\)\)

Dipole Antenna

\(𝕚 = \(z\&⋀\) i\_z\ \ より\)\(A\_z = \(∫\_\(\(-ℓ\)/2\)\%\(ℓ/2
                \)\(\(μ\ \(i\_z\) \((z')\)\ 
                    e\^\(-j𝓀r\)\)\/\(4\ π\ r\)\) 
              dz' = 
          \(∫\_\(\(-ℓ\)/2\)\%\(ℓ/2\)μ\ 
                \(i\_z\) \((z')\)\ G\ dz'
E\_z = 
            \(\(1\/jωμϵ\) 
                \((∂\^2 A\_z\/∂z\^2 + 𝓀\^2\ A\_z)
                  \) = \(\(1\/jωϵ\) 
                    \(∫\_\(\(-ℓ\)/2\)\%\(ℓ/2\)\([
                          ∂\^2 G\/∂z\^2 + 
                            \(𝓀\^2\) G]\)\ \(i\_z\) \((z')\)\ 
                        dz'
E\_z\) + E\_z\^i = 
                0\ \ \((on\ PEC)\)\)\)\)\)\)(1/j)ωϵ 
            (∫_(-ℓ/2)^(ℓ/2))[
                  (((∂^2) G (z, z'))/∂)(z^2) + 
                    (𝓀^2) G (z, z')] (Subscript[i, z]) (z') 
                dz' + ((Subscript[E, z])^i) (z)=0    (Pocklington' s Integralequation)

シンプソンの公式で数値積分する関数を定義
(汎関数バージョン)

\(\(simpi[f_, {ξ_, a_, b_}, n_] := 
        Module[{h = \((b - a)\)/\((2*n)\), x, i}, 
		x[i_] := 
            a + h*i; 
		\(h\/3\) \((\((f /. {ξ -> x[0]})\) + 
                  4\ \(∑\+\(i = 1\)\%n\((f /. {ξ -> 
                              x[2*i - 1]})\)\) + 
                  2\ \(∑\+\(i = 2\)\%n\((f /. {ξ -> \ 
                              x[2*i - 2]})\)\) + \((f /. {ξ -> \ 
                          x[2*n]})\))\) // N
	];\)\)

<< Graphics`Colors`

<< Graphics`Graphics`

Parameters of Dipole Antenna

l = 0.5;    
a = 0.001;    
gap = 0.001;    
volt = 1. ;    
nn = 31;

\( (*\ \(放射抵抗値\ --\)\ \(自己インピーダンスの確認用\ --\)\ *) \)\(\(\(
\)\(Print["Rr=", 
          80\ \((π\ \((l\/nn)\))\)\^2]\)\);\)

Analysis Start !

Module[{pos, r, r1, r2, r3, zz, vv, z, srcint, k, ii, curdist},
	  
	k = 2 π;    
	pos[n_] := (l/(nn + 1))*n - l/2;    
	r[zo_, zs_] := (Sqrt[(a^2) + (((zo - zs))^2)]);    
	r1[n_, z_] := r[z, pos[n - 1]];
	r2[n_, z_] := r[z, pos[n]];
	r3[n_, z_] := r[z, pos[n + 1]];
	srcint[n_, 
              z_] := ((I 30)/Sin)[
                      k (pos[n] - 
                            pos[n - 
                                1])] (((E^(-I k r2[n, z]))/r2)[n, z] Cos[
                        k (pos[n] - 
                              pos[n - 
                                  1])] - ((E^(-I k r1[n, z]))/r1)[n, z]) + ((I 30)/Sin)[
                      k (pos[n + 1] - 
                            pos[n])] (((E^(-I k r2[n, z]))/r2)[n, z] Cos[
                        k (pos[n + 1] - 
                              pos[n])] - ((E^(-I k r3[n, z]))/r3)[n, z]);
	zz[m_, n_] := 
            simpi[Sin[k (z - pos[m - 1])]/Sin[k (pos[m] - pos[m - 1])] srcint[n, z], {z, pos[m - 1], pos[m]}, 10] + 
              simpi[Sin[k (pos[m + 1] - z)]/Sin[k (pos[m + 1] - pos[m])] srcint[n, z], {z, pos[m], pos[m + 1]}, 10];
	  
	excite[z_] := If[-gap/2 < z < gap/2, volt/gap, 0];
	weight[i_, z_] := 
            If[pos[i - 1] ≤ z ≤ pos[i], 
              
              Sin[k (z - pos[i - 1])]/Sin[k (pos[i] - pos[i - 1])], Sin[k (pos[i + 1] - z)]/Sin[k (pos[i + 1] - pos[i])]];
	vv[
              i_] := -simpi[
                weight[i, z] excite[z], {z, pos[i - 1], pos[i + 1]}, 10];
	
    \( (*\ 励振関数のグラフ\ *) \)
    \( (*\ 重み関数のグラフ\ *) \)
	Print["******** Now Making Z Matrix... ********"];
	zmat = Table[zz[i, j], {i, 1, nn}, {j, 1, nn}];
	
	Print["******** Now Making V Matrix... ********"];
	vmat=Table[vv[i], {i, 1, nn}];
	
	imat=Table[ii[i], {i, 1, nn}];
	
	Print["******** Now Solving Linear Equations... \
********"];
	imat=imat/.Solve[zmat . imat == vmat, imat];
	curdist = 
            Table[{pos[i], imat[[1]][[i]]}, {i, 1, nn}];
	curdist = Prepend[curdist, {-l/2, 0}];    
	curdist = Append[curdist, {l/2, 0}];    
	
	\(Module[{curre, curim}, 
		curre = 
              ListPlot[MapAt[Re, curdist, Table[{i, 2}, {i, 1, nn + 2}]], 
                PlotJoined -> True, PlotStyle -> {Red, AbsoluteThickness[2]}, 
                DisplayFunction -> Identity]; 
		curim = 
              ListPlot[MapAt[Im, curdist, Table[{i, 2}, {i, 1, nn + 2}]], 
                PlotJoined -> True, 
                PlotStyle -> {Green, AbsoluteThickness[2]}, 
                DisplayFunction -> Identity]; 
		Show[{curre, curim}, 
              DisplayFunction -> $DisplayFunction];
	]\);
]

振幅と位相のリスト

Table[{Abs[ imat[[1, i]] ],  Arg[ imat[[1, i]] ]}, {i, 1, 
        Length[ imat[[1]] ]}]