资源描述
一、摘要
Smith圆图重要用语计算微波网络阻抗、导纳及网络阻抗匹配设计,还可用于设计微波元器件。Smith圆图软件不但合用于微波工程设计,也可用于电磁场、微波技术及天线与电波传播等。本软件可形象演示圆图上阻抗值、导纳值与反射系数。
二、设计目
微波网络正弦稳态分析具有复数计算,运算十分繁琐和耗时。在计算机运算速度和内存不够发达此前,图解分析法达到长足发展,其中近年来运用最广事Smith圆图。在计算微波传播线输入阻抗、导纳、及阻抗匹配等问题时,它不但能避开繁琐公式及复数运算,是工程设计总有关计算简朴便捷,并且图解过程物理概念清晰,所成果直观形象。但随着计算机技术飞速发展,图解法在计算精度上固有缺陷日益显现,由于,圆图设计精度取决于圆图中必要有足够圆周数,并且过多圆周会导致图线过于密集,不便将阻抗,反射系数、电压驻波系数(VSWR)及电长度等有关数据从图上直接读出。通过对圆图构成基本原理和应用问题分析,运用当代计算机技术可以解决原图计算精度等问题,为此设计Simth圆图。
三、设计规定
圆图软件设计规定计算成果以图形和数据并行输出,整个圆图软件分为顾客图形界面模块、圆图计算模块、圆图演示模块。圆图计算模块分为反射系数计算、单支节匹配计算、输入阻抗计算及整个Smith圆图;画图演示模块分为等归一化电阻圆、等归一化电抗圆、反射系数圆等;拟定阻抗值在圆图上位置、圆图基本应用、求输入阻抗及其在圆图上位置以及单支节匹配等问题。
四、程序流程图
程序构造模型:
功能实现图:
五、演示验证过程
1、打开Smith圆图软件
2、点击“Smith圆图”按钮,观测到图形区内浮现了已经画好圆图,绿色是反射系数圆,紫色是阻抗圆实部,紫色是阻抗圆虚部。
3、在图形区点住鼠标左键不放,此时移动鼠标时,在图形区中自动画出鼠标所在点Smith圆图,蓝色是反射系数圆,红色是阻抗圆。在界面右边可以读出此时反射系数、阻抗值、导纳值,并且计算出该点驻波比和行波系数,判断该点与否是波腹或者波节点。
4、在“输入实部和虚部”文本框中,输入任意实数,按下“计算”按钮,图形区中会画出该点归一化后圆图,在右边文本框中会显示此处归一化反射系数、阻抗值、导纳值,并且计算出该点驻波比和行波系数,判断该点与否是波腹或者波节点。
附录:
1、 源程序
Dim trace As Integer
Dim sb,xb,u,v,q,k,p,t,shib,xub,w As Single
Private Sub Command1_Click() //点击该按钮对输入归一化阻抗进行计算与画圆
Dim f As Integer
Picture1.Cls
Picture1.Scale (-1,1)-(1,-1)
Picture1.Circle (0,0),1,RGB(0,255,255)
Picture1.Line (-1,0)-(1,0),RGB(0,0,0)
Picture1.Line (0,1)-(0,-1),RGB(0,0,0)
sb = shib
xb = xub
u = (sb ^ 2 + xb ^ 2 - 1) / ((sb + 1) ^ 2 + xb ^ 2)
v = 2 * xb / ((sb + 1) ^ 2 + xb ^ 2)
q = (1 - u ^ 2 - v ^ 2) / ((1 + u) ^ 2 + v ^ 2)
w = (-2 * v) / ((1 + u) ^ 2 + v ^ 2)
t = Sqr(v ^ 2 + u ^ 2)
p = (1 + t) / (1 - t)
k = 1 / p
Picture1.Circle (u,v),0.01,RGB(255,250,66)
Picture1.Circle (0,0),t,RGB(255,250,0)
Picture1.Circle (sb / (sb + 1),0),1 / (sb + 1),RGB(255,0,0)
Picture1.Circle (1,1 / xb),Abs(1 / xb),RGB(255,0,0)
Text1.Text = u
Text2.Text = v
Text3.Text = sb
Text4.Text = xb
Text5.Text = q
Text6.Text = w
Text7.Text = p
Text8.Text = k
If sb = p Then
Text9.Text = "波腹点"
ElseIf sb = k Then
Text9.Text = "波节点"
Else
Text9.Text = "普通点"
End If
End Sub
Private Sub Command2_Click() //点击该点画出SMITH圆图
Picture1.Cls
Dim i,r,a,b,j As Single
Picture1.Scale (-1,1)-(1,-1)
For i = 0.1 To 1 Step 0.1
Picture1.Circle (0,0),i,RGB(0,255,255)
Next i
r = 0
a = 0
b = 0
For j = 0 To 10
r = r + 0.05
a = a - 0.02
b = b + 0.02
Picture1.Circle (r / (r + 1),0),1 / (r + 1),RGB(100,100,255)
Picture1.Circle (1,1 / a),1 / Abs(a),RGB(255,255,100)
Picture1.Circle (1,1 / b),1 / b,RGB(255,255,100)
Next j
r = 2
a = -1
b = 1
For j = 0 To 20
r = r + 0.5
a = a - 0.5
b = b + 0.5
Picture1.Circle (r / (r + 1),0),1 / (r + 1),RGB(100,100,255)
Picture1.Circle (1,1 / a),1 / Abs(a),RGB(255,255,100)
Picture1.Circle (1,1 / b),1 / b,RGB(255,255,100)
Next j
r = 0.5
a = -0.2
b = 0.2
For j = 0 To 15
r = r + 0.1
a = a - 0.1
b = b + 0.1
Picture1.Circle (r / (r + 1),0),1 / (r + 1),RGB(100,100,255)
Picture1.Circle (1,1 / a),1 / Abs(a),RGB(255,255,100)
Picture1.Circle (1,1 / b),1 / b,RGB(255,255,100)
Next j
Picture1.Line (-1,0)-(1,0),RGB(0,0,0)
Picture1.Line (0,1)-(0,-1),RGB(0,0,0)
End Sub
Private Sub Command3_Click() //指出导纳点
Picture1.Circle (-u,-v),0.01,RGB(220,250,255)
Picture1.Line (-u,-v)-(u,v),RGB(20,50,255)
End Sub
Private Sub Command4_Click() //指出波节点
Picture1.Circle (-t,0),0.01,RGB(220,250,255)
End Sub
Private Sub Command5_Click() //指出波节点
Picture1.Circle (t,0),0.01,RGB(220,250,255)
End Sub
Private Sub Picture1_MouseDown(Button As Integer,Shift As Integer,X As Single,Y As Single)
trace = True //当鼠标按下时,进行取点画图
End Sub
Private Sub Picture1_MouseUp(Button As Integer,Shift As Integer,X As Single,Y As Single)
trace = False //当鼠标未按下,则不进行画图计算
End Sub
Private Sub Picture1_MouseMove(Button As Integer,Shift As Integer,X As Single,Y As Single)
If trace Then //在鼠标移动中,当鼠标按下,画出该点阻抗圆并进行计算
u = X
v = Y
Picture1.Cls
Dim i,r,a,b,j As Single
Picture1.Scale (-1,1)-(1,-1)
Picture1.Line (-1,0)-(1,0),RGB(255,255,255)
Picture1.Line (0,1)-(0,-1),RGB(255,255,255)
Picture1.Circle (0,0),1,RGB(0,255,255)
sb = (1 - (u ^ 2 + v ^ 2)) / ((1 - u) ^ 2 + v ^ 2)
xb = 2 * v / ((1 - u) ^ 2 + v ^ 2)
q = (1 - u ^ 2 - v ^ 2) / ((1 + u) ^ 2 + v ^ 2)
w = (-2 * v) / ((1 + u) ^ 2 + v ^ 2)
t = Sqr(u ^ 2 + v ^ 2)
p = (1 + t) / (1 - t)
k = 1 / p
Picture1.Circle (0,0),t,RGB(0,2,255)
Picture1.Circle (u,v),0.01,RGB(255,250,66)
Picture1.Circle (sb / (sb + 1),0),1 / (sb + 1),RGB(255,0,0)
Picture1.Circle (1,1 / xb),Abs(1 / xb),RGB(255,0,0)
Text1.Text = u
Text2.Text = v
Text3.Text = sb
Text4.Text = xb
Text5.Text = q
Text6.Text = w
Text7.Text = p
Text8.Text = k
If sb = p Then
Text9.Text = "波腹点"
ElseIf sb = k Then
Text9.Text = "波节点"
Else
Text9.Text = "普通点"
End If
End If
End Sub
Private Sub Text10_Change()
shib = Val(Text10.Text) //在文本框中输入归一化阻抗实部
End Sub
Private Sub Text11_Change()
xub = Val(Text11.Text) //在文本框中输入归一化阻抗虚部
End Sub
程序截图:
实验心得:通过本次课程设计,我对SMITH圆图有个更深刻结识,并且对用VB编程有了一定掌握 ,在实验过程中也遇到了许多问题和困惑,在教师和同窗协助下,解决了一某些难题,尚有某些问题需要在后来学习中完善和解决。+
展开阅读全文