已屏蔽 原因:{{ notice.reason }}已屏蔽
{{notice.noticeContent}}
~~空空如也

还是认真做匹配看看 .,.. 嗯 这是理论侧

首先完善了一下前面的程序  (6.26: 发现k0_h计算有误 已更新)

import scipy.integrate
import numpy
from matplotlib import pyplot

z0=50 
wa=200
epsilon_eff=1.3
compress=0.2 # h/l
ratio_from=0
ratio_to=0.5
ratio_show=(ratio_from+ratio_to)/2
match=None

if True:
	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
# old wrong version : k0_h=k1_l*epsilon_eff*compress
# new right version : 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()

在没有匹配之前 1/4λ处 阻抗非常的低 只有5欧左右

image.png

写了个程序来自动匹配 并且输出匹配后频率和匹配网络误差对匹配的影响

import numpy
from matplotlib import pyplot
import scipy.integrate

z0=50.
zl=(5.372731854378172-0.09190623230437875j)
freq=434.e6
tolerance=0.2

method=None
C_first=True
L=None
C=None
match=None

'''
method='Customized, @outport: C/parallel, @antenna: L/series'
C_first=True
L=5.53e-9
C=24.e-12
def match(z, f, l, c):
	w=2j*numpy.pi*f
	z=z+w*l
	return 1/(w*c+1/z)
'''

#resolve L/C if not specified
zr=numpy.real(zl)
zj=numpy.imag(zl)
if not method:
	w=2*numpy.pi*freq
	zr=numpy.real(zl)
	zj=numpy.imag(zl)
	if (zr<z0):
		if C_first:
			method='@outport: C/parallel, @antenna: L/series'
			L=(numpy.sqrt(zr/(z0-zr))*(z0-zr)-zj)/w
			C=1/w/(z0*numpy.sqrt(zr/(z0-zr)))
			def match(z, f, l, c):
				w=2j*numpy.pi*f
				z=z+w*l
				return 1/(w*c+1/z)
		else:
			method='@outport: L/parallel, @antenna: C/series'
			C=1/w/(zj+numpy.sqrt(zr*(z0-zr)))
			L=z0*numpy.sqrt(zr/(z0-zr))/w
			def match(z, f, l, c):
				w=2j*numpy.pi*f
				z=z+1/(w*c)
				return 1/(1/(w*l)+1/z)
	else:
		if C_first:
			method='@outport: C/series, @antenna: L/parallel'
			C=1/w/(numpy.sqrt(z0*(zr**2+zj**2-z0*zr)/zr))
			L=(z0*zj+zr*numpy.sqrt(z0*(zr**2+zj**2-z0*zr)/zr))/(zr-z0)/w
			def match(z, f, l, c):
				w=2j*numpy.pi*f
				z=1/(1/z+1/(w*l))
				return z+1/(w*c)
		else:
			method='@outport: L/series, @antenna: C/parallel'
			C=1/w/((numpy.sqrt(z0*zr*(zj**2+zr**2-z0*zr))-z0*zj)/(zr-z0))
			L=numpy.sqrt(z0*zr*(zj**2+zr**2-z0*zr))/zr/w
			def match(z, f, l, c):
				w=2j*numpy.pi*f
				z=1/(1/z+w*c)
				return z+w*l
			w=2*numpy.pi*f

print ('{}, L={}, C={}'.format(method, L, C)) 

###########################

def show(z, x, x_label):
	gamma=(z-z0)/(z+z0)
	vswr=(1.+numpy.abs(gamma))/(1.-numpy.abs(gamma))
	fig, ax1=pyplot.subplots()
	fig.subplots_adjust(right=0.75)
	ax1.set_title('Impedance of matched')
	ax1.set_xlabel(x_label)
	ax1.set_ylabel('Impedance (Ω)', color='blue')
	ax1.grid()
	plt1a=ax1.plot(x, numpy.real(z), linewidth=1, color='blue', label='Real')
	plt1b=ax1.plot(x, 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(x, numpy.degrees(numpy.angle(z)), linewidth=1, color='orange', label='Phase')
	ax3=ax1.twinx()
	ax3.spines['right'].set_position(('outward', 60))
	ax3.set_ylabel('VSWR', color='black')
	ax3.grid()
	ax3.set_ylim(1, 3)
	plt3=ax3.plot(x, vswr, linewidth=1, color='black', label='VSWR')
	plts = plt1a+plt1b+plt2+plt3
	ax3.legend(plts, [t.get_label() for t in plts], loc='upper right')

#########################
tol=numpy.linspace((1.-tolerance), (1.+tolerance), 200)

f=tol*freq
z=match(zl, f, L, C)
show(z, f, 'Freq (Hz)')

l=tol*L
z=match(zl, freq, l, C)
show(z, l, 'L (H)')

c=tol*C
z=match(zl, freq, L, c)
show(z, c, 'C (F)')

##################################
pyplot.show()

代入天线输入阻抗 计算出匹配电感5.7nH 电容21pF

image.png

再代入第一个程序看看效果 嗯 匹配上了

image.png

嗯 理论侧真好 ... 可是实践上 还有些问题要解决

  1. 巴伦很麻烦 尤其这个频段  做微带和传输线嫌大 做磁芯 手上没有好磁芯 本身弯折天线辐射效率就低 大多数能量感觉都浪费在磁芯耗损上了 但是不做平衡 背板就有不对称的问题 

  2. 是不是可以找个偏离1/4λ的地方 使得正好匹配网络只需要一个元件 这个地方我感觉应该存在 下面试试看从理论上是否能找到

  3. 背板方面 暂时没有太大头绪 直接用应该没有问题 但有没有可能能优化 同相反射太复杂 用角铝做双反射结构有没有可能性

文号 / 933509

千古风流
名片发私信
学术分 1
总主题 52 帖总回复 894 楼拥有证书:进士 学者 机友
注册于 2020-01-22 18:44最后登录 2024-11-21 18:33
主体类型:个人
所属领域:无
认证方式:手机号
IP归属地:上海

个人简介

个人开源项目: m24h.github.io

文件下载
加载中...
{{errorInfo}}
{{downloadWarning}}
你在 {{downloadTime}} 下载过当前文件。
文件名称:{{resource.defaultFile.name}}
下载次数:{{resource.hits}}
上传用户:{{uploader.username}}
所需积分:{{costScores}},{{holdScores}}下载当前附件免费{{description}}
积分不足,去充值
文件已丢失

当前账号的附件下载数量限制如下:
时段 个数
{{f.startingTime}}点 - {{f.endTime}}点 {{f.fileCount}}
视频暂不能访问,请登录试试
仅供内部学术交流或培训使用,请先保存到本地。本内容不代表科创观点,未经原作者同意,请勿转载。
音频暂不能访问,请登录试试
投诉或举报
加载中...
{{tip}}
请选择违规类型:
{{reason.type}}

空空如也

插入资源
全部
图片
视频
音频
附件
全部
未使用
已使用
正在上传
空空如也~
上传中..{{f.progress}}%
处理中..
上传失败,点击重试
等待中...
{{f.name}}
空空如也~
(视频){{r.oname}}
{{selectedResourcesId.indexOf(r.rid) + 1}}
处理中..
处理失败
插入表情
我的表情
共享表情
Emoji
上传
注意事项
最大尺寸100px,超过会被压缩。为保证效果,建议上传前自行处理。
建议上传自己DIY的表情,严禁上传侵权内容。
点击重试等待上传{{s.progress}}%处理中...已上传,正在处理中
空空如也~
处理中...
处理失败
加载中...
草稿箱
加载中...
此处只插入正文,如果要使用草稿中的其余内容,请点击继续创作。
{{fromNow(d.toc)}}
{{getDraftInfo(d)}}
标题:{{d.t}}
内容:{{d.c}}
继续创作
删除插入插入
插入公式
评论控制
加载中...
文号:{{pid}}
加载中...
详情
详情
推送到专栏从专栏移除
设为匿名取消匿名
查看作者
回复
只看作者
加入收藏取消收藏
收藏
取消收藏
折叠回复
置顶取消置顶
评学术分
鼓励
设为精选取消精选
管理提醒
编辑
通过审核
评论控制
退修或删除
历史版本
违规记录
投诉或举报
加入黑名单移除黑名单
查看IP
{{format('YYYY/MM/DD HH:mm:ss', toc)}}
ID: {{user.uid}}