1、微波工程期中课程设计班级: 2010 姓名: 学号: 序号: 02 日 期:2013年 5月 EMAIL : 目录一:软件界面2二:功能介绍21.输入模块22.归一化阻抗和导纳求解23.反射系数和驻波比求解24.单支节双支节匹配35.演示部分36.清除6三:操作步骤6四:软件原理6A.公式6B.代码原理81:输入部分82:计算归一化阻抗和反射系数93:单支节匹配114:双支节匹配15五:总结16六:致谢17一:软件界面二:功能介绍1. 输入模块此处输入负载的实部和虚部以及特征阻抗。2. 归一化阻抗和导纳求解按下计算按钮后此处显示归一化阻抗和导纳3. 反射系数和驻波比求解、此处显示反射系数和驻波
2、比的计算结果4. 单支节双支节匹配此处显示单支节和双支节匹配的计算结果(双支节需要输入d1和d2)5. 演示部分l 归一化演示l 单支节匹配演示l 双支节演示6. 清除此键将左侧图重置,并清除所有数据。三:操作步骤1) 在ZL处输入负载的实部和虚部,没有虚部写成0,不能空着。2) 点击计算按钮,得到归一化阻抗导纳及驻波比和反射系数3) 点击单支节匹配得到单支节匹配结果4) 输入distance1和distance2点击双支节匹配可得到双支节结果四:软件原理A. 公式1:求反射系数的公式。在ConvertZ2AbsL等函数中用到2:求反射系数的模,在AbsL,Ph函数中用到。反射系数与驻波比的关
3、系。3:求输入阻抗,在双支节匹配中,由y1旋转到y1用到,用于求第一个直接匹配后的导纳。4:用于计算按钮中,求驻波比和K。5:单支节匹配中用于解析法求distance和length 的函数中用到。输入阻抗虚部不为0时用到。6:主要用于绘制圆的函数,非常重要。B. 代码原理 1:输入部分输入部分类似都是用str2double函数读取edit类型框中的输入数值并进行检错,如果不是数字则报错。Handle.R1和X1以及Zc分别存入负载和特性阻抗的值。2:计算归一化阻抗和反射系数利用公式Zl=Z𝐿0,得到归一化阻抗的实部ZIR虚部ZIX。(此处只能用handle来储存值,不用随意定义
4、变量储存) 为了接下来计算方便(不使用handle计算,打字麻烦)读取刚才的结果值给Z_Re,Z_Im,这么做是因为不能直接将handle赋值给变量 上面这么做无法通过编 此处计算导纳值,complex为复数函数。ConvertZ2AbsL_Ph 为计算|𝛤|和𝜑的函数,因为后面多次用到,所以独立成了一个函数,具体内容如下。这个函数通过阻抗的实部和虚部返回反射系数和相角。然后用set将结果返回到GU框中,利用公式𝜌=(1+𝛤)/(1𝛤)和K=1/𝜌得到驻波比,同时返回给GUI的edit8和edit1
5、1 最后这个Draw函数完成绘图,细节Smith_chart为绘制圆图背景的函数,每次赋予0就是从绘。Draw_Ratio完成绘制等反射系数圆。Theta从0到2pi一周x_zIN和y_zIN为以𝛤为模的单位圆上。Plot函数定义了线宽。 绘制实数圆与以上大致相同。绘制虚数部分,根据书上公式,虚数部分是以1,1/Z_Im为圆心,1/Z_Im为半径的一部分圆。所以r=1/abs(Z_Im),x_g和y_g为以r为半径的圆加上C_X和C_Y的偏移量,然后用find找到x_g,y_g在半径为1的园内的点。最后用plot函数画出。3:单支节匹配同计算,首先读取负载和特性阻抗。并赋值给Z
6、_Re和Z_Im用于后面的计算根据书上公式,首先判断导纳的虚部是否为0, if Y_Im = 0如果为0,根据 L=(𝜆/2/(1-gL)公式L1=atan(sqrt(Y_Re)/(1-Y_Re)/2/pi; L2=-atan(sqrt(Y_Re)/(1-Y_Re)/2/pi;如果不为0,则L=(𝜆/2/(1-𝜌)L1=atan(sqrt(P)/(1-P)/2/pi; L2=atan(-sqrt(P)/(1-P)/2/pi;上面用来计算distance。如果Y_Im为0,则d= (/4)arccos(gl-1)/(gl+1)。由于matlab中a
7、cos只返回一个值,所以需要加上theta2=2*pi-theta1;当Y_Im不为0时,令 theta1=acos(K-1)/(K+1); 或者 theta1=pi-acos(P-1)/(P+1);都可以 因为 2*pi0.5所以Lmin=Ph/(2*)*0.5.最后D1,D2分别加上Lmin。如果超过0.5就减去0.5。将得到的结果返回GUI的相应的框中此段完成绘图。X3,Y3为Z_In到Y_In的一条180度的直线的横纵坐标Draw_Circle为很重要的画圆函数。接收4个参数,分别代表圆心的横纵坐标和半径AbsL,以及颜色。Pause 用于暂停,显示动态的感觉。AbsL1,AbsL2,
8、Ph1,Ph2分别为匹配点的模和相角。用于接下来绘制中心道匹配点的两条直线。X1,Y1,Y2是用来绘制从中心道匹配点的直线。Display_Marker_And_Text为标记函数。4:双支节匹配同样读取数据,但是由于双支节匹配,所以需要将读取的Z向源顺时针转动D1的距离得到L1匹配有的导纳所在的圆图。g,b分别为转动后的导纳点。画出单位导纳圆和辅助圆。Rotate_Point为转动点函数。根据图解法,Y1所在的导纳圆与辅助圆的两个交点即为L1所匹配后的y1,solve解决方程组,求得这两个交点的坐标然后求出Y1到这两个点的相角Ph1,Ph2,用公式L1=Ph1/4 L2=Ph2/4同理,计算
9、第二个支节的L1,L2.五:总结这次matlab实验是我接触的最难的一次matlab实验,比通信原理软件实验要用的matlab知识还要多,之前丝毫没有接触过matlab GUI方面的编程,起初想用C语言试试,但是后来想这样matlab就得不到锻炼的机会了。所以从图书馆找了本精通matlab GUI设计,过程中算是小有帮助。这次实验首先让我从新看了遍书本,之前模模糊糊的地方再也不能模糊了,否则导致编不出来程序,个人感觉最难得还是单双支节匹配,之前上课时候,这个地方就是难点,要用程序语言写出来更是让我捉襟见肘。而且matlab本身有很多人想不到的错误,比如handle不能直接赋值给变量,acos函数返回的值只返回小于pi的一个值,解析法求distance是用还是K等等,总之一切都在编程中增加了难度。但只要努力寻找一定有解决的办法。这算是这回的一点体会吧六:致谢1:感谢Dr.Li Xiuping的辛勤教育,老师讲课很认真负责。2:感谢CSDN,PUDN。让我有参考的余地3:最后感谢这本书。18