微带线计算python小程序

python 写的计算微带线数值的小程序源码

学了python 这么久,本身自己做射频的,为了工作的方便,
第一次用python写了一个小的程序,也算是为了自己的努力先做一个小小的总结吧。

源码如下:

import tkinter
from tkinter.messagebox import showerror
import math

win=tkinter.Tk()
win.title(“microstrip counter”)
win.geometry(“400×400”)

show_str1=tkinter.StringVar()
show_str2=tkinter.StringVar()
show_str3=tkinter.StringVar()

#输入频率
freqencytxt=tkinter.Label(win,text=“Frequency:”).place(x=10,y=10)
freq=tkinter.Entry(win,textvariable=show_str1)
freq.pack()
freq.place(x=90,y=10)

#输入介质常数
constantxt=tkinter.Label(win,text=“Constant:”).place(x=10,y=40)
cons=tkinter.Entry(win,show=None,textvariable=show_str2)
cons.pack()
cons.place(x=90,y=40)

#输入介质厚度
thicknesstxt=tkinter.Label(win,text=“Thickness:”).place(x=10,y=70)
thick=tkinter.Entry(win,textvariabl=show_str3)
thick.pack()
thick.place(x=90,y=70)

def count():
try:
var_freq = float(freq.get())
var_constant= float(cons.get())
var_thick=float(thick.get())
#计算贴片宽度
var1 = 150 / var_freq
var2 = 1 / math.sqrt((var_constant + 1) / 2)
var_width = float(“%.2f”%(var1*var2))
w_txt.insert(‘end’,var_width)
#计算贴片长度
yipe = (var2 + 1) / 2 + ((var2- 1) / 2) * (1 / math.sqrt(1 + (12 * var_thick) / var_width)); #有效介电常数
Le = 0.412 * var_thick * (((yipe + 0.3) * (var_width/ var_thick + 0.264)) / ((yipe – 0.258) * (var_width/ var_thick + 0.8)));#等效缝隙的长度
L = float(“%.2f” % (150 / (var_freq * math.sqrt(yipe)) – 2 * Le)); # 贴片长度计算值
L_txt.insert(‘end’,L)
#计算馈电点位置
Xf = float(“%.2f” % (L / (2 * math.sqrt((var_constant + 1) / 2 + ((var_constant – 1) / 2) * (1 / math.sqrt(1 + (12 * var_thick) / L)))))); # 馈电点位置计算值
show_feed_txt.insert(‘end’,Xf)
#波长计算
n0 = float(“%.2f” % (300 / var_freq)); # 波长
show_wave_txt.insert(‘end’,n0)
#计算介质板长度
Lg = float(“%.2f” % (L + (300 / var_freq) / (5 * math.sqrt(yipe)))); # 介质板长度参考值
show_sub_width_txt.insert(‘end’,Lg)
#计算介质板宽度
Wg = float(“%.2f” % (var_width + (300 / var_freq) / (5 * math.sqrt(yipe)))); # 介质板宽度参考值
show_sub_length_txt.insert(‘end’,Wg)
#空气腔表面宽度参考值
La = float(“%.2f” % (Lg + n0 / 4)); # 空气腔(辐射边界表面)宽度参考值
show_air_width_txt.insert(‘end’,La)
#空气腔表面长度参考值e
Wa = float(“%.2f” % (Wg + n0 / 4)); # 空气腔(辐射边界表面)长度参考值
show_air_length_txt.insert(‘end’,Wa)
except:
showerror(title=‘警告’,message=‘请输入有用数字’)

def purge():
freq.delete(0,‘end’)
cons.delete(0,‘end’)
thick.delete(0,‘end’)
w_txt.delete(‘0.0’,‘end’)
L_txt.delete(‘0.0’,‘end’)
show_feed_txt.delete(‘0.0’,‘end’)
show_sub_width_txt.delete(‘0.0’,‘end’)
show_sub_length_txt.delete(‘0.0’,‘end’)
show_air_length_txt.delete(‘0.0’,‘end’)
show_air_width_txt.delete(‘0.0’,‘end’)
show_wave_txt.delete(“0.0”,‘end’)

counter=tkinter.Button(win,text=“Counter”,command=count).place(x=20,y=100)
purge_button=tkinter.Button(win,text=“Purge”,command=purge).place(x=200,y=100)

#贴片宽度显示
show_w=tkinter.Label(win,text=“贴片宽度:”).place(x=10,y=150)
w_txt=tkinter.Text(win,height=2,width=10,font=10)
w_txt.pack()
w_txt.place(x=80,y=150)
#贴片长度显示
show_L=tkinter.Label(win,text=“贴片长度:”).place(x=200,y=150)
L_txt=tkinter.Text(win,height=2,width=10,font=10)
L_txt.pack()
L_txt.place(x=270,y=150)
#馈电点位置
show_feed=tkinter.Label(win,text=“馈电点位置:”).place(x=10,y=190)
show_feed_txt=tkinter.Text(win,height=2,width=10,font=10)
show_feed_txt.pack()
show_feed_txt.place(x=80,y=190)
#真空波长
show_wave=tkinter.Label(win,text=“真空波长:”).place(x=180,y=190)
show_wave_txt=tkinter.Text(win,height=2,width=10,font=10)
show_wave_txt.pack()
show_wave_txt.place(x=270,y=190)
#介质板宽度参考值
show_sub_width=tkinter.Label(win,text=“介质板宽度:”).place(x=10,y=230)
show_sub_width_txt=tkinter.Text(win,height=2,width=10,font=10)
show_sub_width_txt.pack()
show_sub_width_txt.place(x=80,y=230)
#介质板长度参考值
show_sub_length=tkinter.Label(win,text=“介质板长度:”).place(x=180,y=230)
show_sub_length_txt=tkinter.Text(win,height=2,width=10,font=10)
show_sub_length_txt.pack()
show_sub_length_txt.place(x=270,y=230)
#空气腔表面宽度参考值
show_air_width=tkinter.Label(win,text=“空气腔宽度:”).place(x=10,y=270)
show_air_width_txt=tkinter.Text(win,height=2,width=10,font=20)
show_air_width_txt.pack()
show_air_width_txt.place(x=80,y=270)
#空气腔表面长度参考值
show_air_length=tkinter.Label(win,text=“空气腔长度:”).place(x=180,y=270)
show_air_length_txt=tkinter.Text(win,height=2,width=10,font=20)
show_air_length_txt.pack()
show_air_length_txt.place(x=270,y=270)

win.mainloop()

文章知识点与官方知识档案匹配,可进一步学习相关知识Python入门技能树首页概览212772 人正在系统学习中

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2020年10月13日
下一篇 2020年10月13日

相关推荐