您好,欢迎来到99网。
搜索
您的当前位置:首页北邮微波期中作业单双支节匹配样稿

北邮微波期中作业单双支节匹配样稿

来源:99网

信息和通信工程学院

微波期中作业试验汇报


班级:211116
姓名: 黄常凯
学号:210456
序号: 05
日期:15.06.10

目录

一、

二、

三、

1

试验目标:........................................................................................................................试验要求............................................................................................................................试验原理............................................................................................................................

圆图绘制:....................................................................................................................

2、单支节并联匹配原理:......................................................................................................

3、双支节并联匹配原理:......................................................................................................

四、

软件步骤图........................................................................................................................

五、

使用说明............................................................................................................................

六、

七、

心得体会............................................................................................................................
演示步骤截图....................................................................................................................


摘要本试验经过MATLAB软件绘制Smith圆图,并进行单、双支节匹配演示。关键词:MATLABSmith圆图单支节匹配双支节匹配

一、试验目标:

2、学会使用史密斯圆图分析问题;1、了解史密斯圆图原理和作用;

二、试验要求

1、经过软件编程实时显示史密斯圆图和归一化阻抗值;
2、实时显示导纳圆图和归一化阻抗值;
3、实现驻波系数,反射系数模和幅角可视化计算;
4、实现传输线输入阻抗可视化计算;
5、实现并联单支节匹配长度和支节位置计算;
6、实现并联双支节匹配长度计算。


三、试验原理
a:

求反射系数公式。在ConvertZ2AbsL等函数中用到

b

求反射系数模,在[AbsLPh]函数中用到。

求输入阻抗,在双支节匹配中,由y1旋转到y1‘用到,用于求第一个直接匹配后导纳。

d



用于计算按钮中,求驻波比和K
e

单支节匹配中用于解析法求distancelength函数中用到。

输入阻抗虚部不为0 时用到。

1

f

关键用于绘制圆函数,很关键。

1、圆图绘制:

给定输入阻抗值和传输线特征阻抗,即可求得归一化阻抗

~
Z

Z

L

~
R

j

~
X

r

jx

。则能够分别绘出等 圆,等 圆及依据算出来

2

绘出等

L


Z

o










RX




反射圆。

R圆和等X圆方程以下:


~
R


)

2

2


1


(

1 )

2

(

1

)

2

(

1

)

2


u


~
R

1




v



~
(R

1 )

2


u






v


~
X





~
X



2、单支节并联匹配原理:

当负载阻抗表示为

( R jX )jZ m 时,则距负载距离为d 处传输线 ~

Z L

R ( XZ o m ) Z o [ R ( XZ o m ) ] 。为取得匹配负载,选

d 使

G

Y o

1

,

m


Z

o

Z

o

(

R

Z

o

)

m

2

2

X Z

o

m

(

R Z

o

R

2

X

2

)

0

,对m 求解给出








m

X

o

R [(

Z

o

R

)

2

X

2

]

/

Z

o

(

R

Z

o

)

R

Z

o

m

X

2

Z


(

R

Z

o

)

所以,m两个解为:



d



d

1
arctan(

2

m

)

m

)]

(

m

0 )


m


Z


Xm

)(

X

Z





1

[


arctan(





2





(

m

0 )

(

o

o

m

)



B

R

2

为求出匹配支节长度,先要得到m 代入







Z

o

2

[

R

2

(

X

Z

o

m

)

2

]





中求出B

然后令支节输入端电纳等于-B


L o

1
arctan(

2

B

)

支节为开路线时长度为



Y o



L



1

arctan


Y o

)

支节为短路线时长度为

2

B





假如上面两式求出长度是负值,只需加上

2

即可。

传输线相连接位置会随负载位置而发生改变,这对同轴线、带线等传输形式就不方便了。处
单支节匹配能使任意负载 ( R 和传输线特征阻抗相匹配。但它缺点是:支节和主

和波导,采取段路线更为适宜,因为开路线很轻易产生辐射,使得开路支节不再是纯电抗。

3、双支节并联匹配原理:

(在程序中我们固定第一调配支节在负载处,即令

d

1

0,同时选择两支节之间距

d

2

8

在第一支节左边,输入导纳可表示为:

Yb

G

j

(

B

B

2

)

,式中,

YL

G

jB

是负载导纳,

jB

2

是第一支节输入电纳,向电源方向走过

d

2

到第二支节右边时,输入导

纳可表示为

Y 3

Y o

G

j

(

B

B

2

Y o

m

)

)

,式中,

m

tan(下载d 2 )Z o。要匹


Y o

jm

( G

jB

jB

2



配成功,则在该点

Y 3

实部必需等于

Y o

,由此导出方程:

G

2

GY o

1

m

2

( Y o

Bm

B

2

m

)

2

0

。再由已知

d

2

和上式一起确定第一支节输


m

2

m

2

入电纳:

B

2

B

Y o

( 1

m

2

)

GY o

G

2

m

2

,然后,令

Y 3

虚部等于第二支节电

m

纳负值,便可求出第二支节电纳值为

B

4

Y o

( 1

m

2

)

GY o

G

2

m

2

GY o

。在求

Gm

B 2

B

4

中,正负号分别对应同一组解。利用

B

B

2

B

B

4

能够分别求出两个匹配

支节长度

L 1

L 1

支节为开路线时长度为

L

1
arctan(

2

B

)

Y o

支节为短路线时长度为

L 1 Y

www.taodocs.com

3

d

2

<

2

,但靠近0

2

时,会使匹配网络对频率敏感,通常取为

8

2

8

。决

定辅助圆位置两支节之间距离

d

2

标准上能够任意选择,但只有当辅助圆和

~
Y 1

g

1

jb

中等

g 1

圆有交点时,才能实现阻抗匹配。实际上,当

d

2

和第一支节到负载距离

d

1

确定

后,不是对任意负载全部能使对应等

g 1

圆和辅助圆相交,这就是双支节匹配“盲区”。处

理“盲区”有效方法是采取三支节匹配器


四、软件步骤图

Main函数

主函数开始


绘制圆图

单支节匹配

双支节匹配

plot__circle

plot_single_fun

plot_double_fun

始化

circle 子函数

取得Zo,ZL

Y

single_match 函数

circlefun 子函数 N

值符合

计算ρ,R,X

取得Zo,ZL

Z0,Zl计算匹配点位置

提醒犯错信息

在圆图上画出匹配点



用子函数画圆图

返回,并输出计算结果

double_match函数

传入Zo,ZL

计算匹配点位置

在圆图上画出匹配点


返回

传入已求Z0,R,X

将上值带入求单支节匹配位置公式

返回各位置值。

五、使用说明

将上值带入求双支节匹配位置公式

返回各位置值。

在传输线计算结果中,Inf 表示无穷,NaN 表示不存在这个数。

点击main.exe,则出现以下界面:
自己填入负载电阻R 和电抗X,和传输线特征阻抗Zo

该程序能够实现以下计算及输出:

1)绘制圆图:依据输入负载和特征阻抗,绘出阻抗圆图;给出终端反射系数

2

、行波

系数

、距终端最近电压波节点

L min

和电压波腹点

L max

;并给出单节


变换器匹配情况:

4

在阻抗圆图上,蓝色圆分别表示等R圆、等X圆,黑色实线圆表示等反射圆,绿色五

角星表示负载在圆图上位置。由蓝色实线能够确定负载电刻度(假如RXZo输入不是

实数,则会出现错误提醒)。

2)单支节并联匹配:依据输入负载和特征阻抗,绘出导纳圆图;给出终端反射系数

2

行波系数

、距终端最近电压波节点

L min

和电压波腹点

L max

;并给出单支节并联匹配情

况(包含短路和开路支节匹配位置和长度)。

在导纳圆图上,蓝色圆分别表示等G圆、等B圆,黑色实线圆表示等反射圆,等G

和等反射圆交点处绿色五角星代表负载在圆图上位置,和这个五角星相关等反射圆对称另一

个绿色五角星代表负载阻抗在圆图上位置。青色圆表示g=1 匹配圆。两

3)双支节并联匹配:依据输入负载和特征阻抗,绘出导纳圆图;给出终端反射系数2

行波系数

、距终端最近电压波节点

L min

和电压波腹点

L max

;并给出双支节并联匹配情

况(包含短路支节匹配位置和长度)。

在导纳圆图上,蓝色圆分别表示等G圆、等B圆,黑色实线圆表示等反射圆,等G

和等反射圆交点处绿色五角星代表负载在圆图上位置,和这个五角星相关等反射圆对称另一

个绿色五角星代表负载阻抗在圆图上位置。两个青色圆分别表示g=1 匹配圆和


匹配圆。

8

G 圆和


匹配圆两个交点处蓝色五角星代表第一支节匹配点,两条蓝色直线分别标出其

8

电刻度。两个蓝色五角星顺时针旋转

,得到红色五角星即是第二支节匹配点,而两条红

2

色直线分别标出了其电刻度。当等G 元圆和


8 匹配圆没有交点时,说明进入了双支节匹配

盲区”,程序会自动给出提醒。同时在圆图上只画出导纳示意图。(假如RX Zo 输入



不是实数,则会出现错误提醒)。

六、演示步骤截图

界面以下图所表示,现已完成负载阻抗ZL=(30+j45)Ω,特征阻抗Zo=100Ω单双枝节并联匹配为例,第一步,绘制史密斯圆图,在图中绿色交点即为归一化负载阻抗点。


第二步,单击单枝节匹配,史密斯圆图下方显示出了匹配点距离负载距离和并联短路线

或开路线长度。一共有两组解。

显示中小方格其实是汉字字符,但因为本人电脑上matlab版本和win7专题兼容不好,造成汉字字符显示不全,完整截图内文字应该是: d1= 0.35471λ处并接入长度为Ls=0.0926λ短路支节,Lo= 0.34265λ开路支节


可实现匹配,或在d2 =0.0013178λ处并接入长度为Ls = 0.40735λ短路支节,Lo = 0.15735λ

开路支节可实现匹配”


第三步,单击双枝节匹配,其中d1+0d2=λ/8。也是一共有两组解,也是有显示上
问题,完整文字应该是:

在负载处并入长度为0.45616λ短路支节,再在d=λ/8处并入长度为0.42539λ短路支节就可实现匹配,或在负载处并入长度为0.40828λ短路支节,再在d=λ/8处并入长度为0.25403λ短路支节就可实现匹配”


这次试验是我从未碰到过,难度之大超出了我能力范围,所以这次试验也是在很多同学

帮助下才得以完成,而且完成得并不是很好。因为我编程能力并不是很好,所以并没能实现

全部功效,期望老师谅解。以后我还要愈加努力学习射频知识和matlab,争取下次假如碰到

这种试验时能做得愈加好。

八、参考文件

《微波技术基础》

李秀萍著电子工业出版社

高等教育出版社、

MATLAB 程序设计和应用》

刘卫国陈昭平张颖


九、部分代码(单双支节匹配部分)

functionsmithfun(action)
ifnargin<1
action='initialize';
end
ifstrcmp(action,'initialize')
%建立用户控件界面
clfreset;
set(gcf,'menubar','none');
set(gcf,'defaultuicontrolunits','normalized');

set(gcf,'resize','off');set(gcf,'defaultuicontrolhorizontal','left');

set(gcf,'unit','normalized','position',[0.2,0.2,0.5,0.6]);

H_axes=axes('position',[0.08,0.35,0.6,0.6],'xlim',[-1,1],'ylim',[-1,1]);
%生成框架控件
H_fig=get(H_axes,'parent');

H=uicontrol(H_fig,'style','frame','position',[0.72,0.05,0.25,0.65

]);

H=uicontrol(H_fig,'style','frame','position',[0.72,0.75,0.25,0.2]


);

H=uicontrol(H_fig,'style','frame','position',[0.08,0.05,0.6,0.2])

;

%生成静态文本控件(显示作者姓名)

H=uicontrol(H_fig,'style','text','unit','normalized','position',[

0.73,0.88,0.22,0.05],'fontname','

','fontsize',12,'horizontal','left','string',{'210579号邵熠'});

H=uicontrol(H_fig,'style','text','unit','normalized','position',[

','fontsize',12,'horizontal','left','string',{'210581号何凡 '});

0.73,0.82,0.22,0.05],'fontname','

0.73,0.76,0.23,0.05],'fontname','

','fontsize',12,'horizontal','left','string',{'210582号刘谋亚'});

%生成静态文本控件

H=uicontrol(H_fig,'style','text','unit','normalized','position',[

0.73,0.63,0.20,0.05],'fontname','

','fontsize',12,'horizontal','left','string',{' ZL =

'});

H=uicontrol(H_fig,'style','text','unit','normalized','position',[

0.73,0.55,0.20,0.05],'fontname','



','fontsize',12,'horizontal','left','string',{'

+ j

'});

H=uicontrol(H_fig,'style','text','unit','normalized','position',[

0.73,0.47,0.20,0.05],'fontname','

'});

','fontsize',12,'horizontal','left','string',{' Zo=

%生成可编辑文本控件(输入R,X,Zo)

H_R=uicontrol(H_fig,'style','edit','position',[0.82,0.63,0.10,0.0

5],'fontname','微软雅黑');

H_X=uicontrol(H_fig,'style','edit','position',[0.82,0.55,0.10,0.0

5],'fontname','微软雅黑');

%生成静态文本控件(显示圆图结果)

H_t1=uicontrol(H_fig,'style','text','unit','normalized','position

',[0.74,0.39,0.22,0.05]);

H_t2=uicontrol(H_fig,'style','text','unit','normalized','position

',[0.74,0.34,0.20,0.05]);

H_t3=uicontrol(H_fig,'style','text','unit','normalized','position

',[0.74,0.29,0.20,0.05]);

H_t4=uicontrol(H_fig,'style','text','unit','normalized','position',[0.74,0.24,0.20,0.05]);

H_t5=uicontrol(H_fig,'style','text','unit','normalized','position',[0.1,0.1,0.54,0.08]);

H_t6=uicontrol(H_fig,'style','text','unit','normalized','position',[0.1,0.07,0.54,0.08]);
%生成按钮控件
H_circle=uicontrol(H_fig,

0,'string','

'style','pushbutton','position',[0.735,0.21,0.22,0.07],'fontsize',1

'style','pushbutton','position',[0.735,0.14,0.22,0.07],'fontsize',1

0,'string','

','callback',['smithfun(''plot_single_fun'');']);
H_circle=uicontrol(H_fig,
'style','pushbutton','position',[0.735,0.07,0.22,0.07],'fontsize',1

0,'string','

','callback',['smithfun(''plot_double_fun'');']);
%保留句柄矩阵用于交互式获取数据
Hdata=[H_R,H_X,H_Zo,H_t1,H_t2,H_t3,H_t4,H_t5,H_t6];
set(H_fig,'userdata',Hdata);

%画出圆图
elseifstrcmp(action,'plot__circle')
Hdata=get(gcf,'userdata');
HR=Hdata(1);
HX=Hdata(2);
HZo=Hdata(3);
Ht1=Hdata(4);
Ht2=Hdata(5);
Ht3=Hdata(6);
Ht4=Hdata(7);
Ht5=Hdata(8);

R=str2num(get(Hdata(1),'string'));

Ht6=Hdata(9);

%犯错处理

ifisempty(R)|isempty(X)|isempty(Zo)
set(Ht1,'string','无效输入');
set(Ht2,'string','');
set(Ht3,'string','');
set(Ht4,'string','');
set(Ht5,'string','');
set(Ht6,'string','');

elseif R<0
set(Ht1,'string','无效输入');


set(Ht2,'string','');
set(Ht3,'string','');
set(Ht4,'string','');
set(Ht5,'string','');
set(Ht6,'string','');
elseifZo<=0
set(Ht1,'string','无效输入');
set(Ht2,'string','');
set(Ht3,'string','');
set(Ht4,'string','');
set(Ht5,'string','');

%显示圆图结果

set(Ht6,'string','');

end

%单支节并联匹配
elseifstrcmp(action,'plot_single_fun')
Hdata=get(gcf,'userdata');
HR=Hdata(1);
HX=Hdata(2);
HZo=Hdata(3);
Ht1=Hdata(4);

Ht2=Hdata(5);
Ht3=Hdata(6);



Ht4=Hdata(7);
Ht5=Hdata(8);
Ht6=Hdata(9);
R=str2num(get(Hdata(1),'string'));
X=str2num(get(Hdata(2),'string'));
Zo=str2num(get(Hdata(3),'string'));
%犯错处理
ifisempty(R)|isempty(X)|isempty(Zo)
set(Ht1,'string','illegalinput!');
set(Ht2,'string','');
set(Ht3,'string','');

set(Ht5,'string','');

set(Ht4,'string','');

set(Ht1,'string','illegal RESISTANCE!');

set(Ht2,'string','');
set(Ht3,'string','');
set(Ht4,'string','');
set(Ht5,'string','');
set(Ht6,'string','');
elseifZo<=0
set(Ht1,'string','illegalZo!');

set(Ht2,'string',''); set(Ht3,'string','');



set(Ht4,'string','');

set(Ht5,'string','');

set(Ht6,'string','');

%显示圆图匹配结果

else

[Lo1,Lo2,Ls1,Ls2,d1,d2]=singlefun(R,X,Zo);

[Gamma2,Lmin,Lmax]=circlefun(R,X,Zo);

holdon;

single_match(Gamma2,R,X,Zo,d1);

holdoff;

rho=(1+abs(Gamma2))/(1-abs(Gamma2));

set(Ht5,'string',strcat(' ',num2str(d1),处并接if R==Zo

set(Ht6,'string',strcat(' 或在d2 = ',num2str(d2),处并

接入Ls= ',num2str(Ls1),开路支节实现匹配'),'fontname','TimesNew

Roman','fontsize',8);

else

set(Ht5,'string',strcat(' d1= ',num2str(d1),处并接

入长度为Ls= ',num2str(Ls1),短路支节','Lo= ',num2str(Lo1),开路支

节可实现匹配'),'fontname','TimesNew Roman','fontsize',8);

set(Ht6,'string',strcat(' 或在d2= ',num2str(d2),处并

接入长度为Ls= ',num2str(Ls2),短路支节','Lo= ',num2str(Lo2),开路

支节可实现匹配'),'fontname','TimesNew Roman','fontsize',8);

end
end
%双支节并联匹配
elseifstrcmp(action,'plot_double_fun')
Hdata=get(gcf,'userdata');
HR=Hdata(1);
HX=Hdata(2);
HZo=Hdata(3);
Ht1=Hdata(4);
Ht2=Hdata(5);
Ht3=Hdata(6);

Ht4=Hdata(7);
Ht5=Hdata(8);

X=str2num(get(Hdata(2),'string'));

Zo=str2num(get(Hdata(3),'string'));
%犯错处理
ifisempty(R)|isempty(X)|isempty(Zo)
set(Ht1,'string','illegalinput!');
set(Ht2,'string','');
set(Ht3,'string','');
set(Ht4,'string','');

set(Ht5,'string',''); set(Ht6,'string','');



elseifR<0
set(Ht1,'string','illegalRESISTANCE!');
set(Ht2,'string','');
set(Ht3,'string','');
set(Ht4,'string','');
set(Ht5,'string','');
set(Ht6,'string','');
elseifZo<=0
set(Ht1,'string','illegalZo!');
set(Ht2,'string','');
set(Ht3,'string','');

set(Ht5,'string','');

set(Ht4,'string','');

else

[Ls11,Ls12,Ls21,Ls22]=doublefun(R,X,Zo);
[Gamma2,Lmin,Lmax]=circlefun(R,X,Zo);
holdon;

if

imag(Ls11)==0

&

imag(Ls12)==0

&

imag(Ls21)==0

&

imag(Ls22)==0
double_match1(Gamma2,R,X,Zo,Ls21,Ls22); else

end

double_match2(Gamma2,R,X,Zo);


holdoff;
rho=(1+abs(Gamma2))/(1-abs(Gamma2));
set(Ht1,'string',strcat(
2=',num2str(Gamma2)),'fontname','TimesNew Roman','fontsize',8); set(Ht2,'string',strcat(
=',num2str(rho)),'fontname','Times NewRoman','fontsize',8,'horizontal','left');
set(Ht3,'string',strcat('Lmin=',num2str(Lmin),
'),'fontname','TimesNew Roman','fontsize',8);
set(Ht4,'string',strcat('Lmax=',num2str(Lmax),
'),'fontname','TimesNew Roman','fontsize',8);

imag(Ls22)==0
if imag(Ls11)==0 imag(Ls21)==0

&

路支节就可实现匹配'),'fontname','Times New Roman','fontsize',8);

set(Ht6,'string',strcat(' 或在负载处并入长度为',num2str(Ls12),短路支节,再在d=λ/8处并入长度为',num2str(Ls22),短路支节就可实现匹配'),'fontname','TimesNew Roman','fontsize',8); else

set(Ht5,'string',strcat('

WARNING !

G 圆和λ/ 8辅助圆无

交点'),'fontname','TimesNew Roman','fontsize',10);
set(Ht6,'string',strcat(' 双支节匹配出现盲区!

'),'fontname','Times New Roman','fontsize',10); end


end
end

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%画阻抗圆图函数
function[Gamma2,Lmin,Lmax]=circle(R,X,Zo)
%归一化阻抗
r=R/Zo;
x=X/Zo;

%画出单位圆和标出电刻度t=0:0.0001:2*pi;

text

'italic');

text(-0.1,1.03,'0.125','fontname','arial','color','b','fonta','italic');
text(1.03,0,'0.25','fontname','arial','color','b','fonta','italic');
text(-0.1, -1.18, '0.375','fontname','arial','color','b','fonta','italic');
holdon;

plot([-1,1],[0,0],'k'); hold on;



plot([0,0],[-1,1],'k');
holdon;
axis('equal',[-1,1,-1,1]);
%画出等R
ifr==inf
plot(1,0,'rp');
axis('equal',[-1,1,-1,1]);
else
a=r/(1+r);
r1=1/(1+r);
plot((r1*cos(t)+a),(r1*sin(t)),'b');

hold on;

axis('equal',[-1,1,-1,1]);

%画出等X end;

if x==inf

plot(1,0,'rp');
axis('equal',[-1,1,-1,1]);
elseifx==0
plot([-1,1],[0,0],'r');
axis('equal',[-1,1,-1,1]);
else
b=1/x;

r2=1/x;
plot((r2*cos(t)+1),(r2*sin(t)+b),'b');


axis('equal',[-1,1,-1,1]);
holdon;
end;
%画出等反射圆
z=r+j*x;
Gamma2=(z-1)/(z+1);
Mod=abs(Gamma2);
Phi=angle(Gamma2);
plot(Mod*cos(t),Mod*sin(t),'k');
holdon;
axis('equal',[-1,1,-1,1]);

hold on;
%确定传输状态

hold on;

Re=[0,cos(Phi)];

Im=[0,sin(Phi)];
polyfit(Re,Im,1);
plot(Re,Im,'b');
holdon;
ifX<0
if(Phi>=0)
Lmin=Phi/(4*pi);

Lmax=0.25+Lmin;
else



Lmin=(pi+Phi)/(4*pi);
Lmax=0.25+Lmin;
end
else
if(Phi>=0)
Lmax=Phi/(4*pi);
Lmin=0.25+Lmax;
else
Lmax=(pi+Phi)/(4*pi);
Lmin=0.25+Lmax;
end

end

hold off;

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%画导纳圆图函数
function[Gamma2,Lmin,Lmax]=circlefun(R,X,Zo)
%归一化阻抗和确定传输状态
r=R/Zo;
x=X/Zo;

z=r+i*x;
y=1/z;



g=real(y);
b=imag(y);
Gamma2=(z-1)/(z+1);
Mod=abs(Gamma2);
Phi=angle(Gamma2);
Lambda=(pi-Phi)/(4*pi);
Alpha=(y-1)/(y+1);
plot(real(Alpha),imag(Alpha),'gp');
holdon;
plot(real(Gamma2),imag(Gamma2),'gp');
holdon;

bb=[imag(Alpha),imag(Gamma2)];

aa=[real(Alpha),real(Gamma2)];

hold on;

ifX<0
if(Phi>=0)
Lmin=Phi/(4*pi);
Lmax=0.25+Lmin;
else
Lmin=(pi+Phi)/(4*pi);
Lmax=0.25+Lmin;

end
else



if(Phi>=0)
Lmax=Phi/(4*pi);
Lmin=0.25+Lmax;
else
Lmax=(pi+Phi)/(4*pi);
Lmin=0.25+Lmax;
end
end
%画出单位圆和标出电刻度
t=0:0.0001:2*pi;
plot(cos(t),sin(t),'--k');

text

(-1.2,0,'0',


'fontname', 'arial','color','b',

'fonta',

'italic');

'italic');

text (1.03,0,'0.25', 'fontname', 'arial','color','b', 'fonta',

'italic');
text(-0.1, -1.18, '0.375','fontname','arial','color','b','fonta','italic');
holdon;
plot([-1,1],[0,0],'k');
holdon;
plot([0,0],[-1,1],'k');

hold on;
axis('equal',[-1,1,-1,1]);



%画出等G
ifg==inf
plot(1,0,'rp');
axis('equal',[-1,1,-1,1]);
else
a=g/(1+g);
g1=1/(1+g);
plot((g1*cos(t)+a),(g1*sin(t)),'b');
axis('equal',[-1,1,-1,1]);
holdon;
end;

%画出等B
if b==inf

elseif b==0

plot([-1,1],[0,0],'r');
axis('equal',[-1,1,-1,1]);
else
b1=1/b;
r2=1/b;
plot((r2*cos(t)+1),(r2*sin(t)+b1),'b');
axis('equal',[-1,1,-1,1]);

hold on;
end;



%画出等反射圆和匹配圆
y=g+j*b;
gamma=(y-1)/(y+1);
Mod=abs(gamma);
Phi=angle(gamma);
plot(Mod*cos(t),Mod*sin(t),'k');
holdon;
axis('equal',[-1,1,-1,1]);
plot(0.5*(cos(t)+1),(0.5*sin(t)),'c');
holdoff;
title('SMITH导纳圆图');


%%%%%%%%%% %单支节并联匹配函数

function[Lo1,Lo2,Ls1,Ls2,d1,d2]=singlefun(R,X,Zo) %计算并联支节位置和短路及开路支节长度
r=R/Zo;
x=X/Zo;
ifR==Zo
m=-x/2;
B=(R^2*m-(Zo-X*m)*(Zo+X*m))/(Zo*(R^2+(Zo+X*m)^2));

if m>=0
d1=atan(m)/(2*pi);



ifd1>=0.5
d1=d1-0.5;
elseifd1<0
d1=d1+0.5;
else
d1=d1;
end
d2=atan(m)/(2*pi);
ifd2>=0.5
d2=d2-0.5;
elseifd2<0

d2=d2+0.5;
else

Lo1=(-atan(B*Zo))/(2*pi);

ifLo1>=0
Lo1=Lo1;
Lo2=Lo1;
else
Lo1=0.5+Lo1;
Lo2=Lo1;
end

Ls1=(atan(1/(B*Zo)))/(2*pi); if Ls1>=0


Ls1=Ls1;
Ls2=Ls1;
else
Ls1=0.5+Ls1;
Ls2=Ls1;
end
else
d1=(atan(m)+pi)/(2*pi);
ifd1>=0.5
d1=d1-0.5;
elseifd1<0

d1=d1+0.5;
else

d2=(atan(m)+pi)/(2*pi);

ifd2>=0.5
d2=d2-0.5;
elseifd2<0
d2=d2+0.5;
else
d2=d2;
end

Lo1=(-atan(B*Zo))/(2*pi); if Lo1>=0



Lo1=Lo1;
Lo2=Lo1;
else
Lo1=0.5+Lo1;
Lo2=Lo1;
end
Ls1=(atan(1/(B*Zo)))/(2*pi);
ifLs1>=0
Ls1=Ls1;
Ls2=Ls1;
else

Ls1=0.5+Ls1;
Ls2=Ls1;

else

m1=(X+sqrt(R*((Zo-R)^2+X^2)/Zo))/(R-Zo);
m2=(X-sqrt(R*((Zo-R)^2+X^2)/Zo))/(R-Zo);
B1=(R^2*m1-(Zo-X*m1)*(X+Zo*m1))/(Zo*(R^2+(X+Zo*m1)^2));B2=(R^2*m2-(Zo-X*m2)*(X+Zo*m2))/(Zo*(R^2+(X+Zo*m2)^2));Lo1=(-atan(B1*Zo))/(2*pi);
ifLo1>=0
Lo1=Lo1;

else
Lo1=0.5+Lo1;



end
Lo2=(-atan(B2*Zo))/(2*pi);
ifLo2>=0
Lo2=Lo2;
else
Lo2=0.5+Lo2;
end
Ls1=(atan(1/(B1*Zo)))/(2*pi);
ifLs1>=0
Ls1=Ls1;
else

end

Ls1=0.5+Ls1;

Ls2=Ls2;

else
Ls2=0.5+Ls2;
end
ifm1>=0
d1=atan(m1)/(2*pi);
ifd1>=0.5
d1=d1-0.5;

elseif d1<0
d1=d1+0.5;



else
d1=d1;
end
d2=(atan(m2)+pi)/(2*pi);
ifd2>=0.5
d2=d2-0.5;
elseifd2<0
d2=d2+0.5;
else
d2=d2;
end

d1=(atan(m1)+pi)/(2*pi);

else

elseif d1<0

d1=d1+0.5;
else
d1=d1;
end
d2=atan(m2)/(2*pi);
ifd2>=0.5
d2=d2-0.5;

elseif d2<0
d2=d2+0.5;



else
d2=d2;
end
end
end
holdoff;

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%双支节并联匹配函数(第一支节在负载处)

Z=R+i*X;

function [Ls11,Ls12,Ls21,Ls22]=doublefun(R,X,Zo)

Yo=1/Zo; Y=1/Z;

G=real(Y);

B=imag(Y);
m=1;
%两支节相距λ/8
m1=(1+m^2)*G*Yo-G^2*m^2;
m2=abs(1+m^2)*G*Yo-G^2*m^2;
B11=-B+(Yo+sqrt(m1))/m;
B21=(Yo*sqrt(m2)+G*Yo)/(G*m);

B12=-B+(Yo-sqrt(m1))/m;
B22=(-Yo*sqrt(m2)+G*Yo)/(G*m);



Ls=-(atan(Yo/B11))/(2*pi);
ifLs>=0
Ls11=Ls;
else
Ls11=0.5+Ls;
end
Ls=-(atan(Yo/B21))/(2*pi);
ifLs>=0
Ls21=Ls;
else
Ls21=0.5+Ls;

Ls=-(atan(Yo/B12))/(2*pi);

end

if Ls>=0

else

Ls12=0.5+Ls;
end
Ls=-(atan(Yo/B22))/(2*pi);
ifLs>=0
Ls22=Ls;
else
Ls22=0.5+Ls;

end
hold off;



%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%单支节并联圆图
function[]=single_match(Gamma2,R,X,Zo,d1)
%归一化及计参数
r=R/Zo;
x=X/Zo;
z=r+i*x;
y=1/z;

alpha1=(y-1)/(y+1);

Alpha=atan2(imag(Gamma2),real(Gamma2));

if R==Zo

plot(real(Gamma2),imag(Gamma2),'rp');

plot(real(Gamma2),-imag(Gamma2),'rp');
m=[0,real(Gamma2)];
Re1=[0,cos(Alpha)];
Im1=[0,sin(Alpha)];
Im2=[0,-sin(Alpha)];
plot(Re1,Im1,'b');
plot(Re1,Im2,'b');

hold off;
else



angle1=abs(atan2(imag(Gamma2),real(Gamma2)));
angle2=2*pi*(d1/0.5)-angle1;
ifX>=0
ifangle2<0
angle2=2*pi+angle2;

plot(-abs(Gamma2)*cos(angle2),abs(Gamma2)*sin(angle2),'rp');

plot(-abs(Gamma2)*cos(angle2),-abs(Gamma2)*sin(angle2),'rp');Re3=[0,cos(angle2)];
Re4=[0,cos(angle2)];

Im4=[0,-sin(angle2)];

Im3=[0,sin(angle2)];

hold off;

else
angle2=angle2;

plot(-abs(Gamma2)*cos(angle2),abs(Gamma2)*sin(angle2),'rp');

plot(-abs(Gamma2)*cos(angle2),-abs(Gamma2)*sin(angle2),'rp'); Re3=[0,cos(angle2)];

Re4=[0,cos(angle2)];
Im3=[0,sin(angle2)];



Im4=[0,-sin(angle2)];
plot(-Re3,Im3,'b');
plot(-Re4,Im4,'b');
holdoff;
end
else
angle1=abs(atan2(imag(Gamma2),real(Gamma2))); angle2=2*pi*(d1/0.5)+angle1-2*pi;
ifangle2<0
angle2=2*pi+angle2;


plot(-abs(Gamma2)*cos(angle2),abs(Gamma2)*sin(angle2),'rp');

Re4=[0,cos(angle2)];
Im3=[0,sin(angle2)];
Im4=[0,-sin(angle2)];
plot(-Re3,Im3,'b');
plot(-Re4,Im4,'b');
holdoff;
else
angle2=angle2;

plot(-abs(Gamma2)*cos(angle2),abs(Gamma2)*sin(angle2),'rp');

plot(-abs(Gamma2)*cos(angle2),-abs(Gamma2)*sin(angle2),'rp'); Re3=[0,cos(angle2)];
Re4=[0,cos(angle2)];
Im3=[0,sin(angle2)];
Im4=[0,-sin(angle2)];
plot(-Re3,Im3,'b');
plot(-Re4,Im4,'b');
holdoff;
end
end

end

%%%%%%%%%%
%双支节并联圆图(无盲区)
function[]=double_match1(Gamma2,R,X,Zo,Ls21,Ls22)
t=0:0.0001:2*pi;
plot(0.5*(cos(t)),(0.5*sin(t)+0.5),'c');
holdon;
r=R/Zo;
x=X/Zo;

z=r+i*x;
y=1/z;



g=real(y);
b=imag(y);
%计算并画出第二支节匹配点位置
x1=-tan(2*pi*Ls21);
x2=-tan(2*pi*Ls22);
y1=1+i*(1/x1);
y2=1+i*(1/x2);
gamma1=(y1-1)/(y1+1);
gamma2=(y2-1)/(y2+1);
aa1=real(gamma1);
bb1=-imag(gamma1);

aa2=real(gamma2); bb2=-imag(gamma2);

alpha1=atan2(bb1,aa1);

alpha2=atan2(bb2,aa2);
Re1=[0,cos(alpha1)];
Re2=[0,cos(alpha2)];
Im1=[0,sin(alpha1)];
Im2=[0,sin(alpha2)];
plot(Re1,Im1,'r');
plot(Re2,Im2,'r');
%计算并画出第一支节匹配点位置
plot(abs(gamma1)*cos(alpha1+pi/2),abs(gamma1)*sin(alpha1+pi/2),'b

p');
plot(abs(gamma2)*cos(alpha2+pi/2),abs(gamma2)*sin(alpha2+pi/2),'bp');
Re3=[0,cos(alpha1+pi/2)];
Re4=[0,cos(alpha2+pi/2)];
Im3=[0,sin(alpha1+pi/2)];
Im4=[0,sin(alpha2+pi/2)];
plot(Re3,Im3,'b');
plot(Re4,Im4,'b');
holdoff;

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%%%%%%%

function []=double_match2(Gamma2,R,X,Zo)

t=0:0.0001:2*pi;
plot(0.5*(cos(t)),(0.5*sin(t)+0.5),'c');
holdon;
[Gamma2,Lmin,Lmax]=circlefun(R,X,Zo);
axis('equal',[-1,1,-1,1]);
holdoff;


因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- 99spj.com 版权所有 湘ICP备2022005869号-5

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务