今天做了个简单测试 (之前仪器的校正堵头被猫叼不知道哪里去了 今天才在冰箱下面找到 这个理由不错吧) 然后发现与前面计算的误差较大 检查程序 发现程序中k0_h式子错了 然后重新推导修改
import scipy.integrate
import numpy
from matplotlib import pyplot
z0=50
wa=367
epsilon_eff=1.2
compress=0.2 # h/l
ratio_from=0
ratio_to=0.5
ratio_show=(ratio_from+ratio_to)/2
match=None
if False:
def match(z):
#@outport: C/parallel, @antenna: L/series, L=5.71213169610197e-09, C=2.113795485039202e-11
L=5.71213169610197e-09
C=2.113795485039202e-11
f=434.e6
w=2.j*numpy.pi*f
z=z+w*L
z=1/(w*C+1/z)
return z
#############################################
ratio=numpy.linspace(ratio_from+0.001, ratio_to-0.001, 1001)
k1_l=ratio*2*numpy.pi
# k1*l=k0*sqrt(epsilon_eff)*l -> k0*h=k1*l/sqrt(epsilon_eff)/l*h=k1_l/sqrt(epsilon_eff)*compress
k0_h=k1_l/numpy.sqrt(epsilon_eff)*compress
f=lambda theta, k1l, k0h: (((numpy.cos(k0h*numpy.cos(theta))-numpy.cos(k1l))/(((k0h*numpy.cos(theta))**2)-(k1l**2)))**2)*(numpy.sin(theta)**3)
r_sigma=numpy.vectorize(
lambda k1l, k0h: 60*((k1l*k0h)**2)*scipy.integrate.quad(f, 0, numpy.pi, args=(k1l, k0h))[0],
otypes=[float]
)(k1_l, k0_h)
r1_l=4*k1_l*r_sigma/(2*k1_l-numpy.sin(2*k1_l))
beta_a_l=r1_l/2/wa
t=wa/(numpy.cosh(2*beta_a_l)-numpy.cos(2*k1_l))
z=((numpy.sinh(2*beta_a_l)-beta_a_l/k1_l*numpy.sin(2*k1_l))-1j*(numpy.sin(2*k1_l)+beta_a_l/k1_l*numpy.sinh(2*beta_a_l)))*t
# with matching network
if match:
z=match(z)
print('At {}λ, RΣ={}, Z={}'.format(
ratio_show,
numpy.interp(ratio_show, ratio, r_sigma),
numpy.interp(ratio_show, ratio, z)))
fig, ax1=pyplot.subplots()
fig.subplots_adjust(right=0.6)
ax1.set_title('Input impedance of antenna')
ax1.set_xlabel('l/λ')
ax1.set_ylabel('Impedance (Ω)', color='black')
ax1.set_xlim(ratio_from, ratio_to)
ax1.set_xticks(numpy.linspace(ratio_from, ratio_to, 5))
ax1.grid()
plt1a=ax1.plot(ratio, numpy.real(z), linewidth=1, color='blue', label='Real')
plt1b=ax1.plot(ratio, numpy.imag(z), linewidth=1, color='red', label='Imag')
ax2=ax1.twinx()
ax2.set_ylabel('Phase (°)', color='orange')
ax2.set_ylim(-90, 90)
ax2.grid()
plt2=ax2.plot(ratio, numpy.degrees(numpy.angle(z)), linewidth=1, color='orange', label='Phase')
gamma=(z-z0)/(z+z0)
vswr=(1.+numpy.abs(gamma))/(1.-numpy.abs(gamma))
ax3=ax1.twinx()
ax3.spines['right'].set_position(('outward', 60))
ax3.set_ylabel('VSWR', color='black')
ax3.set_ylim(1, 5)
ax3.grid()
plt3=ax3.plot(ratio, vswr, linewidth=1, color='black', label='VSWR')
ax4=ax1.twinx()
ax4.spines['right'].set_position(('outward', 120))
ax4.set_ylabel('RΣ', color='cyan')
plt4=ax4.plot(ratio, r_sigma, linewidth=1, color='cyan', label='RΣ')
plts = plt1a+plt1b+plt2+plt3+plt4
ax3.legend(plts, [t.get_label() for t in plts], loc='upper right')
pyplot.show()
使用背板远离的参数 然后结果居然吻合得不错
计算得2.66Ω 实测是2.82Ω 测试时候背板远离 使用了一个电流共轭型的1:1巴伦 实际上也曾经用非平衡式测试 只测一端 实测非平衡单端电阻与平衡两端电阻接近但还略小 说明了做非平衡-平衡转换时 是有耗损的 毕竟辐射功率不变 测出来电阻越大 说明有些能量非辐射性地消耗掉了
上背板后 因为等效介电常数上升 同样长度天线 谐振点频率变低 这个符合预期
但是实测电阻变大了太多 要知道 用背板后的参数 计算出来的电阻应该更小
2.13Ω和3.16欧姆就相差太大了 何况我原本预期 辐射功率应该只有一半 理应更小才对 说明背板会带来极大问题 我测试时候 是用根天线同时检查S21参数的 用了背板 S21下降了10db左右 说明消耗功率提高了 真实辐射反而变小了 这样即使匹配了阻抗也于事无补
可以说原方案定向的意图是失败了 但是网上确实有卖非常薄不可能是反射结构的同频平板天线 我得暂停这个方案 再考虑看看有什么办法
时段 | 个数 |
---|---|
{{f.startingTime}}点 - {{f.endTime}}点 | {{f.fileCount}} |