📄 input_n.m
字号:
%输入非线性环节参数
col0=[0.7 0.7 0.7]; %浅灰色,窗体背景色
col1=[0.8 0.8 0.8]; %深灰色,输入框无效时的颜色
%创建输入非线性环节参数窗体
nawin=figure('color',col0,'position',[100 200 400 200],...
'name','输入非线性环节参数','menubar','none',...
'NumberTitle','off','Resize','off');
dd=text(0.25,0.9,'非线性环节参数');
set(dd,'fontsize',15,'color',[0,0,1],'fontname','宋体');
%创建四个输入框,依次为:死区、饱和、间隙、继电器,并置为无效
for i=1:4
n_edits(i)=uicontrol(nawin,'style','edit','units','normalized',...
'position',[0.5,0.75-i*0.16,0.25,0.1],'string','','back',col1,'enable','off');
end;
%为各个输入框设置初始值,并将死区输入框置为有效
set(n_edits(1),'string','[0.5 1]','enable','on','back',[1 1 1]);
set(n_edits(2),'string','[0.5 1]');
set(n_edits(3),'string','[0.5 1]');
set(n_edits(4),'string','[1 0.5 1]');
dd=text(0.02,0.65,'死区环节[a,k]:');
set(dd,'fontsize',12,'color',[1,0,0],'fontname','宋体');
%选择单选按钮时,使相应的输入框有效,其余均无效
radios(1)=uicontrol(nawin,'style','radio','units','normalized',...
'position',[0.1,0.6,0.03,0.05],'string','','back',col0,'value',1,...
'call',['j=1;for i=1:4;if i==j;set(radios(i),''value'',1);set(n_edits(i),''enable'',''on'',''back'',[1 1 1]),',...
'else set(radios(i),''value'',0);set(n_edits(i),''back'',col1,''enable'',''off'');end;end']);
dd=text(0.02,0.45,'饱和环节[a,k]:');
set(dd,'fontsize',12,'color',[1,0,0],'fontname','宋体');
radios(2)=uicontrol(nawin,'style','radio','units','normalized',...
'position',[0.1,0.45,0.03,0.05],'string','','back',col0,...
'call',['j=2;for i=1:4;if i==j;set(radios(i),''value'',1);set(n_edits(i),''enable'',''on'',''back'',[1 1 1]),',...
'else set(radios(i),''value'',0);set(n_edits(i),''back'',col1,''enable'',''off'');end;end']);
dd=text(0.02,0.25,'间隙环节[b,k]:');
set(dd,'fontsize',12,'color',[1,0,0],'fontname','宋体');
radios(3)=uicontrol(nawin,'style','radio','units','normalized',...
'position',[0.1,0.30,0.03,0.05],'string','','back',col0,...
'call',['j=3;for i=1:4;if i==j;set(radios(i),''value'',1);set(n_edits(i),''enable'',''on'',''back'',[1 1 1]),',...
'else set(radios(i),''value'',0);set(n_edits(i),''back'',col1,''enable'',''off'');end;end']);
dd=text(0.02,0.05,'继电器环节[h,m,M]:');
set(dd,'fontsize',12,'color',[1,0,0],'fontname','宋体');
radios(4)=uicontrol(nawin,'style','radio','units','normalized',...
'position',[0.1,0.15,0.03,0.05],'string','','back',col0,...
'call',['j=4;for i=1:4;if i==j;set(radios(i),''value'',1);set(n_edits(i),''enable'',''on'',''back'',[1 1 1]),',...
'else set(radios(i),''value'',0);set(n_edits(i),''back'',col1,''enable'',''off'');end;end']);
axis off;
%接受非线性环节参数
%其中:i为1,2,3,4分别代表非线性环节为死区,饱和,间隙,继电器
% para为该非线性环节参数
call_com=['for i=1:4,if get(radios(i),''value'')==1,break;end;end;',...
'para=eval(get(n_edits(i),''string'')); para=[para,0];'...
'if (i==4)&((para(2)>1|(para(2)<0¶(2)~=-1))|(para(3)<=0)|(para(1)<0)),'...
' errordlg(''继电器环节参数输入错误!'',''错误信息'',''on'');'...
'else n_para=para; close(nawin); end;'];
ok_button=uicontrol('Style','Pushbutton','Position',[.8 .1 .15 .15],...
'Units','normalized','Call',call_com,'String','&OK');
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -