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)
コルゲートホーンを一次放射器とし,周波数などを設定する.
#Omega_0 = 1.302 # TE11モード
Omega_0 = 1.554 # コルゲートホーン
L_e = 15.0 # エッジレベル[dB]
freq = 300.0 # 周波数[GHz]
wl = 300.0/freq # 波長
k = 2*np.pi/wl # 波数
np.array([Omega_0, L_e, freq, wl, k])
array([  1.554,  15.   , 300.   ,   1.   ,   6.283])
所定の鏡面の開口径 $D$ に照射する1次ホーンでは, 焦点距離 $f_m$ に1次パターンの波面の曲率半径 $\bar{R}$ は一致させる. ここでは,ホーンの軸長 $L$ を与えて1次ホーンを設計しよう.
R_bar = 13 # 鏡面上の波面の曲率半径
D = 13.0 # 鏡面の開口径
L = 7.0 # ホーンの軸長
R_h = L
np.array([R_bar, D, L, R_h])
array([13., 13.,  7.,  7.])
まず,鏡面上のビーム半径 $\omega$ からビームウエストのビーム半径 $\omega_0$ を求めると,
omega = D/2*np.sqrt(8.69/L_e)
v = k*omega**2/2/R_bar
omega_0 = omega/np.sqrt(1+v**2)
np.array([omega, v, omega_0])
array([4.947, 5.915, 0.825])
ホーン開口面でのビーム半径 $\omega_h$ を求めれば,ホーン開口径 $D_h$ が決まる.
x = 1-np.sqrt(1-(k*omega_0**2/R_h)**2)
omega_h = R_h/k/omega_0*np.sqrt(2*x)
D_h = 2*omega_h*Omega_0
v_h = k*omega_h**2/2/R_h
np.array([omega_h, D_h, v_h])
array([0.871, 2.708, 0.341])
次に,位相中心について求めると,
omega_00 = omega_h/np.sqrt(1+v_h**2)
z_h = R_h/(1+1/v_h**2)
L_c = R_bar/(1+v**2) + R_h*v_h**2/(1+v_h**2)
d = R_bar-L_c
np.array([omega_00, z_h, L_c, d])
array([ 0.825,  0.728,  1.089, 11.911])
1次パターンおよび2次パターンの100%利得は,
G0_h = 20*np.log10(np.pi*D_h/wl) # 100%-gain of primary horn
G0 = 20*np.log10(np.pi*D/wl) # 100%-gain of main aperture
np.array([G0_h, G0])
array([18.595, 32.222])
ユニバーサルパターンや利得低下の評価に有用なt-パラメータは,
t = D_h**2/8/wl/R_h # ホーン
td = D_h**2/8/wl/d # 鏡面までの有限距離
np.array([t, td, t+td])
array([0.131, 0.077, 0.208])
設計した1次ホーンの形状を描くと,
fig = plt.figure() # グラフ領域
plt.plot([0,0,-L,0],[D_h/2,-D_h/2,0,D_h/2])
plt.plot([d,d],[-D/2,D/2])
plt.plot(d,0,'o')
plt.plot([0,0],[-omega_h,omega_h])
plt.plot(-z_h,0,'o')
plt.plot([d,d],[-omega,omega])
plt.plot([-z_h,-z_h],[-omega_0,omega_0])
plt.plot(-L_c,0,'o')
plt.axis('scaled')
fig.savefig('p3_ap_beam-mode_horn_ex1_1.pdf')
plt.show()

1次ホーンによる放射波の振幅分布を基本ビームモードとみなしコンターマップとして描くと,
z = np.linspace(-10, 15, 101)
rho = np.linspace(-12.5, 12.5, 101)
zv, rhov = np.meshgrid(z, rho)
vv = wl*zv/np.pi/omega_0**2
omegav = omega_0*np.sqrt(1+vv**2)
ee = omega_0/omegav*np.exp(-(rhov/omegav)**2)

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

1次ホーンもいっしょに描くと,
fig = plt.figure() # グラフ領域
pdb = 20.0*np.log10(ee)
vv = np.linspace(-50, 0, 11)
h = plt.contourf(zv-z_h, 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-z_h, 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],[D_h/2,-D_h/2,0,D_h/2])
plt.plot([0,0],[-omega_h,omega_h])
plt.plot(-z_h,0,'o')
plt.plot([d,d],[-omega,omega])
plt.plot([-z_h,-z_h],[-omega_0,omega_0])
plt.plot(-L_c,0,'o')
plt.axis('scaled')
fig.savefig('p3_ap_beam-mode_horn_ex1_3.pdf')
plt.show()