⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 add_remove.m

📁 内模控制器(IMC)工具箱。包括参数整定、PID控制器参数转换等
💻 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 + -