📄 add_remove.m
字号:
function add_remove(index)
% Add & Remove responses 1DF
%--------------------------
global plot_setpoint plot_disturb plot_effort setpoint_Enable disturb_Enable
global effort_Enable plot_IMC plot_real_PID plot_1_lag_PID plot_2_lag_PID IMC_Enable
global real_PID_Enable lag1_PID_Enable lag2_PID_Enable old_handle keep
keep=0; %clear keepimg existimg plot
switch index
case 'main'
fad=crfig(370,200,220,290,'Add&Remove Responses','w','none','off');
uicontrol(fad,...
'Style','checkbox',...
'Position',[60 125 120 20],...
'String','IMC',...
'Value',plot_IMC,...
'Enable',IMC_Enable,...
'BackgroundColor',[1 1 1],...
'Callback','add_remove(''IMC'');');
uicontrol(fad,...
'Style','checkbox',...
'Position',[60 100 120 20],...
'String','Realizable PID',...
'Value',plot_real_PID,...
'Enable',real_PID_Enable,...
'BackgroundColor',[1 1 1],...
'Callback','add_remove(''Realizable PID'');');
uicontrol(fad,...
'Style','checkbox',...
'Position',[60 75 120 20],...
'String','First order lag PID',...
'Value',plot_1_lag_PID,...
'Enable',lag1_PID_Enable,...
'BackgroundColor',[1 1 1],...
'Callback','add_remove(''First order lag PID'');');
uicontrol(fad,...
'Style','checkbox',...
'Position',[60 50 120 20],...
'String','Second order lag PID',...
'Value',plot_2_lag_PID,...
'Enable',lag2_PID_Enable,...
'BackgroundColor',[1 1 1],...
'Callback','add_remove(''Second order lag PID'');');
uicontrol(fad,...
'Style','push',...
'Position',[40 13 50 30],...
'String','OK',...
'Callback',['close,',...
'JMENU=IMENU;',...
'cback;']);
uicontrol(fad,...
'Style','push',...
'Position',[120 13 50 30],...
'String','Cancel',...
'Callback','close');
uicontrol(fad,...
'Style','checkbox',...
'Position',[35 200 150 20],...
'String','Setpoint Responses',...
'Value',plot_setpoint,...
'Enable',setpoint_Enable,...
'BackgroundColor',[1 1 1],...
'Callback','add_remove(''Setpoint Responses'');');
uicontrol(fad,...
'Style','checkbox',...
'Position',[35 175 150 20],...
'String','Disturbance Responses',...
'Value',plot_disturb,...
'Enable',disturb_Enable,...
'BackgroundColor',[1 1 1],...
'Callback','add_remove(''Disturbance Responses'');');
uicontrol(fad,...
'Style','checkbox',...
'Position',[35 150 150 20],...
'String','Control Efforts',...
'Value',plot_effort,...
'Enable',effort_Enable,...
'BackgroundColor',[1 1 1],...
'Callback','add_remove(''Control Efforts'');');
uicontrol(fad,...
'Style','text',...
'Position',[35 225 120 50],...
'String','To add control effort first uncheck set point or disturbance!',...
'BackgroundColor',[1 1 1]);
case 'Time'
old_handle=gcf; change_time('main');
case 'add'
old_handle=gcf; add_remove('main');
case 'IMC'
plot_IMC=get(gcbo,'Value');
case 'Realizable PID'
plot_real_PID=get(gcbo,'Value');
case 'First order lag PID'
plot_1_lag_PID=get(gcbo,'Value');
case 'Second order lag PID'
plot_2_lag_PID=get(gcbo,'Value');
case 'Setpoint Responses'
handle=get(gcf,'Child');
plot_setpoint=get(handle(4),'Value');
plot_disturb=get(handle(3),'Value');
plot_effort=get(handle(2),'Value');
if plot_setpoint
effort_Enable='on';
set(handle(2),'Enable',effort_Enable);
if plot_disturb
effort_Enable='off';
set(handle(2),'Enable',effort_Enable);
elseif plot_effort
disturb_Enable='off';
set(handle(3),'Enable',disturb_Enable);
end
elseif ~plot_disturb
plot_effort=0;
set(handle(2),'Value',plot_effort);
effort_Enable='off';
set(handle(2),'Enable',effort_Enable);
disturb_Enable='on';
set(handle(3),'Enable',disturb_Enable);
else
effort_Enable='on';
set(handle(2),'Enable',effort_Enable);
disturb_Enable='on';
set(handle(3),'Enable',disturb_Enable);
end
case 'Disturbance Responses'
handle=get(gcf,'Child');
plot_setpoint=get(handle(4),'Value');
plot_disturb=get(handle(3),'Value');
plot_effort=get(handle(2),'Value');
if plot_disturb
effort_Enable='on';
set(handle(2),'Enable',effort_Enable);
if plot_effort
setpoint_Enable='off';
set(handle(4),'Enable',setpoint_Enable);
elseif plot_setpoint
effort_Enable='off';
set(handle(2),'Enable',effort_Enable);
end
elseif ~plot_setpoint
plot_effort=0;
set(handle(2),'Value',plot_effort);
effort_Enable='off';
set(handle(2),'Enable',effort_Enable);
setpoint_Enable='on';
set(handle(4),'Enable',setpoint_Enable);
else
effort_Enable='on';
set(handle(2),'Enable',effort_Enable);
setpoint_Enable='on';
set(handle(4),'Enable',setpoint_Enable);
end
case 'Control Efforts'
handle=get(gcf,'Child');
plot_setpoint=get(handle(4),'Value');
plot_disturb=get(handle(3),'Value');
plot_effort=get(handle(2),'Value');
if plot_effort
if plot_setpoint
disturb_Enable='off';
set(handle(3),'Enable',disturb_Enable);
elseif plot_disturb
setpoint_Enable='off';
set(handle(4),'Enable',setpoint_Enable);
else
plot_effort=0;
set(handle(2),'Value',plot_effort);
effort_Enable='off';
set(handle(2),'Enable',effort_Enable);
end
else
setpoint_Enable='on';
set(handle(4),'Enable',setpoint_Enable);
disturb_Enable='on';
set(handle(3),'Enable',disturb_Enable);
end
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -