📄 daona.m
字号:
h140=uicontrol('style','edit','string','','position',[450,270,100,24],'fontsize',12);
h170=uicontrol('style','edit','string','','position',[450,180,100,24],'fontsize',12);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
case 'callback3'
%首先清除前一次留下的图形和数据
delete(findobj('color','k'));delete(findobj('color','b'));delete(findobj('color','r'));delete(findobj('color','m'));
delete(findobj('position',[375,150,70,20]));delete(findobj('position',[450,150,100,24]));
h130=uicontrol('style','edit','string','','position',[442,300,55,24],'fontsize',8);
h132=uicontrol('style','edit','string','','position',[505,300,55,24],'fontsize',8);
h110=uicontrol('style','edit','string','','position',[442,360,55,24],'fontsize',8);
h112=uicontrol('style','edit','string','','position',[505,360,55,24],'fontsize',8);
h210=uicontrol('style','edit','string','','position',[442,330,55,24],'fontsize',8);
h212=uicontrol('style','edit','string','','position',[505,330,55,24],'fontsize',8);
h150=uicontrol('style','edit','string','','position',[450,240,100,24],'fontsize',12);
h160=uicontrol('style','edit','string','','position',[450,210,100,24],'fontsize',12);
h140=uicontrol('style','edit','string','','position',[450,270,100,24],'fontsize',12);
h170=uicontrol('style','edit','string','','position',[450,180,100,24],'fontsize',12);
answer =inputdlg({'请输入归一化电导值G:','请输入归一化电纳值B:'},'INPUT G+jB=',1);%输入归一化阻抗值
c=answer(1,1);d=answer(2,1);
G=str2double(c);%提取电阻电抗值
B=str2double(d);
R=G/(G^2+B^2);
X=-B/(G^2+B^2);
U=(R^2+X^2-1)/(R^2+2*R+1+X^2);%转化为坐标值 即U V
V=2*X/(R^2+2*R+1+X^2);
tr=2*pi*(0:0.00001:1);
cosA=U/sqrt(U^2+V^2);
sinA=V/sqrt(U^2+V^2);
r0=0:0.00001:1;
g0=plot(r0*cosA,r0*sinA,'k','linewidth',1.5);%画相角线
axis square;
hold on;
rr=1/(1+G);cr=1-rr;
g1=plot(-cr+rr*cos(tr),rr*sin(tr),'r','linewidth',1.5);%画电导圆
axis square;
hold on;
b=B;
rx=1/b;cx=rx;
tx=2*atan(-b)*(0:0.01:1);
if tx<pi
plot(-1-rx*sin(tx),-cx+rx*cos(tx),'m','linewidth',1.5)%画电纳圆
else
plot(-1-rx*sin(tx),cx+rx*cos(tx),'m','linewidth',1.5)
end
hold on;
r=sqrt(U^2+V^2);
g4=plot(r*cos(tr),r*sin(tr),'--','linewidth',1.5);% 等反射系数圆的半径
axis square;
hold on; %当有新的图形输入的时候 原来图形被清除,同时保证 第二次取点的时候背景保留。
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%取点后显示输出参数
h130=uicontrol('style','edit','string',U,'position',[442,300,55,24],'fontsize',7.5,'HorizontalAlignment','center'); %反射系数
h132=uicontrol('style','edit','string',V,'position',[505,300,55,24],'fontsize',7.5,'HorizontalAlignment','center');
R=(1-U^2-V^2)/((1-U)^2+V^2); %阻抗
X=2*V/((1-U)^2+V^2);
h110=uicontrol('style','edit','string',R,'position',[442,360,55,24],'fontsize',7.5,'HorizontalAlignment','center');
h112=uicontrol('style','edit','string',X,'position',[505,360,55,24],'fontsize',7.5,'HorizontalAlignment','center');
G=R/(R^2+X^2);%导纳
B=-X/(R^2+X^2);
h210=uicontrol('style','edit','string',G,'position',[442,330,55,24],'fontsize',8,'HorizontalAlignment','center');
h212=uicontrol('style','edit','string',B,'position',[505,330,55,24],'fontsize',8,'HorizontalAlignment','center');
zhu_bo_bi=(1+sqrt(U^2+V^2))/(1-sqrt(U^2+V^2));%驻波比
%zhu_bo_bi
h150=uicontrol('style','edit','string',...
[sprintf('%1.4g',zhu_bo_bi)],'position',[450,240,100,24],'fontsize',12);
A0=atan(V/U); %相位角
if U<0
A=(180/pi)*(A0+pi);
elseif V>=0
A=(180/pi)*A0;
else
A=(180/pi)*(A0+2*pi);
end
h160=uicontrol('style','edit','string',...
[sprintf('%1.4g',A),'度'],'position',[450,210,100,24],'fontsize',12);
if V>=0
B=(0.5/360)*(180-A);
else
B=0.75-(0.5/360)*A;
end
h170=uicontrol('style','edit','string',... %波长数
[sprintf('%1.4g',B)],'position',[450,180,100,24],'fontsize',12);
xing_bo_xi_shu=1/zhu_bo_bi; %行波系数
h140=uicontrol('style','edit','string',...
[sprintf('%1.4g',xing_bo_xi_shu)],'position',[450,270,100,24],'fontsize',12);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
case 'callback4'
%首先清除前一次留下的图形和数据
delete(findobj('color','k'));delete(findobj('color','b'));delete(findobj('color','r'));delete(findobj('color','m'));
delete(findobj('position',[375,150,70,20]));delete(findobj('position',[450,150,100,24]));
h130=uicontrol('style','edit','string','','position',[442,300,55,24],'fontsize',8);
h132=uicontrol('style','edit','string','','position',[505,300,55,24],'fontsize',8);
h110=uicontrol('style','edit','string','','position',[442,360,55,24],'fontsize',8);
h112=uicontrol('style','edit','string','','position',[505,360,55,24],'fontsize',8);
h210=uicontrol('style','edit','string','','position',[442,330,55,24],'fontsize',8);
h212=uicontrol('style','edit','string','','position',[505,330,55,24],'fontsize',8);
h150=uicontrol('style','edit','string','','position',[450,240,100,24],'fontsize',12);
h160=uicontrol('style','edit','string','','position',[450,210,100,24],'fontsize',12);
h140=uicontrol('style','edit','string','','position',[450,270,100,24],'fontsize',12);
h170=uicontrol('style','edit','string','','position',[450,180,100,24],'fontsize',12);
answer4 =inputdlg({'请输入特征导纳值Y0:','请输入终端负载电导值G:','请输入终端负载电纳值B:','请输入归一化传输线长L:'},'INPUT Y0,Yl,L',1);%输入已知条件
a=answer4(1,1);b=answer4(2,1);c=answer4(3,1);d=answer4(4,1);
Y0=str2double(a);
Gl=str2double(b);%提取电阻电抗值
Bl=str2double(c);
Yl=Gl+j*Bl;
l=str2double(d);
Y=(Yl+j*Y0*tan(2*pi*l))/(Y0+j*Yl*tan(2*pi*l));
G=real(Y);
B=imag(Y);
R=G/(G^2+B^2);
X=-B/(G^2+B^2);
U=(R^2+X^2-1)/(R^2+2*R+1+X^2);%转化为坐标值 即U V
V=2*X/(R^2+2*R+1+X^2);
tr=2*pi*(0:0.00001:1);
cosA=U/sqrt(U^2+V^2);
sinA=V/sqrt(U^2+V^2);
r0=0:0.00001:1;
g0=plot(r0*cosA,r0*sinA,'k','linewidth',1.5);%画相角线
axis square;
hold on;
rr=1/(1+G);cr=1-rr;
g1=plot(-cr+rr*cos(tr),rr*sin(tr),'r','linewidth',1.5);%画电导圆
axis square;
hold on;
b=B;
rx=1/b;cx=rx;
tx=2*atan(-b)*(0:0.01:1);
if tx<pi
plot(-1-rx*sin(tx),-cx+rx*cos(tx),'m','linewidth',1.5)%画电纳圆
else
plot(-1-rx*sin(tx),cx+rx*cos(tx),'m','linewidth',1.5)
end
hold on;
r=sqrt(U^2+V^2);
g4=plot(r*cos(tr),r*sin(tr),'--','linewidth',1.5);% 等反射系数圆的半径
axis square;
hold on; %当有新的图形输入的时候 原来图形被清除,同时保证 第二次取点的时候背景保留。
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%取点后显示输出参数
h130=uicontrol('style','edit','string',U,'position',[442,300,55,24],'fontsize',7.5,'HorizontalAlignment','center'); %反射系数
h132=uicontrol('style','edit','string',V,'position',[505,300,55,24],'fontsize',7.5,'HorizontalAlignment','center');
R=(1-U^2-V^2)/((1-U)^2+V^2); %阻抗
X=2*V/((1-U)^2+V^2);
h110=uicontrol('style','edit','string',R,'position',[442,360,55,24],'fontsize',7.5,'HorizontalAlignment','center');
h112=uicontrol('style','edit','string',X,'position',[505,360,55,24],'fontsize',7.5,'HorizontalAlignment','center');
G=R/(R^2+X^2);%导纳
B=-X/(R^2+X^2);
h210=uicontrol('style','edit','string',G,'position',[442,330,55,24],'fontsize',8,'HorizontalAlignment','center');
h212=uicontrol('style','edit','string',B,'position',[505,330,55,24],'fontsize',8,'HorizontalAlignment','center');
zhu_bo_bi=(1+sqrt(U^2+V^2))/(1-sqrt(U^2+V^2));%驻波比
%zhu_bo_bi
h150=uicontrol('style','edit','string',...
[sprintf('%1.4g',zhu_bo_bi)],'position',[450,240,100,24],'fontsize',12);
A0=atan(V/U); %相位角
if U<0
A=(180/pi)*(A0+pi);
elseif V>=0
A=(180/pi)*A0;
else
A=(180/pi)*(A0+2*pi);
end
h160=uicontrol('style','edit','string',...
[sprintf('%1.4g',A),'度'],'position',[450,210,100,24],'fontsize',12);
if V>=0
B=(0.5/360)*(180-A);
else
B=0.75-(0.5/360)*A;
end
h170=uicontrol('style','edit','string',... %波长数
[sprintf('%1.4g',B)],'position',[450,180,100,24],'fontsize',12);
xing_bo_xi_shu=1/zhu_bo_bi; %行波系数
h140=uicontrol('style','edit','string',...
[sprintf('%1.4g',xing_bo_xi_shu)],'position',[450,270,100,24],'fontsize',12);
%实际输出导纳
h18=uicontrol('style','text','string','输入导纳=','position',[375,150,70,20],'fontsize',11,'fontweight','demi','foregroundcolor','r','backgroundcolor',[0.8 0.8 0.8]);
h180=uicontrol('style','edit','string',[sprintf('%1.4g',G*Y0),'+j(',sprintf('%1.4g',B*Y0),')'],'position',[450,150,100,24],'fontsize',8);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
case 'callback23' %给帮助和退出按钮设置具体的回调函数和操作
helpdlg(sprintf('单击取点,将指针置于圆图范围内即可显示参数\n 单击左边四个按钮进入各自演示界面.\n 传输线求解可以完成典型的传输线求解题型.\n 单击退出按钮并确认即可关闭所有界面!'),'帮助');
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
case 'callback24'
response1=questdlg(' 确定要退出吗?','提示');
if (strcmp(response1,'Yes'))
close;
pause(0.2);
helpdlg(' 感谢您的使用!','THANK YOU!');
end
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -