軸長が最小となる最適1次ホーン

モジュールのインポート

import numpy as np
import matplotlib.pyplot as plt
import scienceplots
#Warning : As of version 2.0.0, you need to add import scienceplots before setting the style (plt.style.use('science')).
plt.style.use(['science', 'notebook'])

1次ホーンの軸長が最小となる条件

まず,出力する値の精度を指定して,
np.set_printoptions(precision=4)
1次ホーンの軸長が最小となる条件は,モードによって異なり,
# Omega0 = 1.302 # TE11モード
Omega0 = 1.554 # コルゲートホーン
設計条件として,鏡面の開口径 $D$,エッジレベル $L_e$ [dB]を与え,
D = 13.0 # 鏡面の開口径
Le = 15.0 # エッジレベル[dB]
edb = 20*np.log10(np.exp(1))
omega = D/2*np.sqrt(edb/Le) # 鏡面上のビーム半径
np.array([D, Le, edb, omega])
array([13.   , 15.   ,  8.686,  4.946])
また,鏡面の焦点距離 $f_m$ を波長で規格化して,
wl = 1.0 # 波長
Rbar = 13.0 # 鏡面上の波面の曲率半径(=鏡面の焦点距離f)
v = np.pi*omega**2/wl/Rbar
np.array([wl, Rbar, v])
array([ 1.   , 13.   ,  5.915])
軸長が最小となる最適1次ホーンの開口径 $D_h$,および軸長 $L$ は,
Dhmin = 2*Omega0*omega*np.sqrt(2/(1+v**2)) # ホーン開口径(軸長が最小となる最適1次ホーン)
Rhmin = 2*Rbar*v/(1+v**2) # ホーンの軸長(軸長が最小となる最適1次ホーン)
L = Rhmin
np.array([Dhmin, Rhmin])
array([3.625, 4.273])
ホーン開口面でのビーム半径 $\omega_h$,ビームウエストでのビーム半径 $\omega_0$, 軸長が最小となる最適1次ホーンのtパラメータ $t_{min}$ は,
omegah = Dhmin/2/Omega0 # ホーン開口面でのビーム半径
omega0 = omegah/np.sqrt(2) # ビームウエストでのビーム半径(vh=1)
tRmin = Omega0**2/2/np.pi # tパラメータ(軸長が最小となる最適1次ホーン)
np.array([omegah, omega0, tRmin])
array([1.166, 0.825, 0.384])
ホーン開口面からビームウエストまでの距離 $z_h$,ホーン開口面から鏡面までの距離 $d$,ホーン開口面から位相中心までの距離 $L_c$ は,
zh = Rhmin/2 # ホーン開口面からビームウエストまでの距離(vh=1)
d = (v-1)*zh # ホーン開口面から鏡面までの距離
Lc = (1+v)/v*zh # ホーン開口面から位相中心までの距離
np.array([zh, d, Lc])
array([ 2.137, 10.502,  2.498])
100%利得は,
G0 = 20*np.log10(np.pi*Dhmin/wl) # 100%-gain
np.array([G0]) # [dB]
array([21.129])
設計した1次ホーンの形状は,
fig = plt.figure() # グラフ領域
plt.plot([0,0,-L,0],[Dhmin/2,-Dhmin/2,0,Dhmin/2])
plt.plot([d,d],[-D/2,D/2])
plt.plot(d,0,'o')
plt.plot([0,0],[-omegah,omegah])
plt.plot(-zh,0,'o')
plt.plot([d,d],[-omega,omega])
plt.plot([-zh,-zh],[-omega0,omega0])
plt.plot(-Lc,0,'o')
plt.axis('scaled')
fig.savefig('p3_ap_beam-mode_optimal_primary_horn_1.pdf')
plt.show()

カット面の振幅分布をプロットすると,
r_min, r_max, n_r = 0.0, 20.0, 41
r = np.linspace(r_min, r_max, n_r) # 半径
rr = r/omega # ビーム半径で規格化した半径

fig = plt.figure() # グラフ領域
plt.plot(rr,np.exp(-rr*rr))
fig.savefig('p3_ap_beam-mode_optimal_primary_horn_2.pdf')
plt.show()

等高線カラー図で示すと,
z = np.linspace(-5, 15, 101)
rho = np.linspace(-10, 10, 101)
zv, rhov = np.meshgrid(z, rho)
vv = wl*zv/np.pi/omega0**2
omegav = omega0*np.sqrt(1+vv**2)
ee = omega0/omegav*np.exp(-(rhov/omegav)**2)

fig = plt.figure() # グラフ領域
plt.contourf(zv-zh, rhov, ee, 31, cmap="Blues")
plt.axis('scaled')
plt.colorbar()
fig.savefig('p3_ap_beam-mode_optimal_primary_horn_3.pdf')
plt.show()

ホーンの形状も描くと,
fig = plt.figure() # グラフ領域
pdb = 20.0*np.log10(ee)
vv = np.linspace(-50, 0, 11)
h = plt.contourf(zv-zh, rhov, pdb, vv, cmap="Blues")
ax = plt.colorbar(h, pad=0.1, shrink=1.0, orientation="vertical")
ax.set_label(r"Relative amplitude [dB]")
h = plt.contour(zv-zh, rhov, pdb, vv,  linewidths=0.3, cmap='gray')
h.clabel(fmt='%1.1f', inline=1, fontsize=8)# 等高線の値を表示
plt.xlabel('$z$')
plt.ylabel(r'$\rho$')
plt.plot([d,d],[-D/2,D/2])
plt.plot([0,0,-L,0],[Dhmin/2,-Dhmin/2,0,Dhmin/2])
plt.plot([0,0],[-omegah,omegah])
plt.plot(-zh,0,'o')
plt.plot([d,d],[-omega,omega])
plt.plot([-zh,-zh],[-omega0,omega0])
plt.plot(-Lc,0,'o')
plt.axis('scaled')
fig.savefig('p3_ap_beam-mode_optimal_primary_horn_4.pdf')
plt.show()

最適ホーン

最適ホーンの開口面でのビーム半径,ビームウエストでのビーム半径は,
wl = 1.0
Dh2 = Dhmin
G0 = 20*np.log10(np.pi*Dh2/wl)
omegah2 = Dh2/2/Omega0 # ホーン開口面でのビーム半径
omega0 = omegah2/np.sqrt(2) # ビームウエストでのビーム半径(vh=1)
omegah2, omega0
(1.1665642116364838, 0.8248854647376964)
ホーンの軸長,ホーン開口面からビームウエストまでの距離は,
Rh2 = np.pi*omegah2**2/wl # ホーンの軸長(最適円錐ホーン)
L = Rh2
zh = Rh2/2 # ホーン開口面からビームウエストまでの距離(vh=1)
Rh2, zh
(4.275305665766504, 2.137652832883252)
最適ホーンの形状と,ビーム半径をビムウエスト位置および開口面で示すと,
fig = plt.figure() # グラフ領域
plt.plot([0,0,-L,0],[Dh2/2,-Dh2/2,0,Dh2/2])
plt.plot([0,0],[-omegah2,omegah2])
plt.plot(-zh,0,'o')
plt.plot([-zh,-zh],[-omega0,omega0])
plt.axis('scaled')
fig.savefig('p3_ap_beam-mode_optimal_primary_horn_5.pdf')
plt.show()