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

📄 pidpar1.m

📁 基于MATLAB的辅助设计 简述了矩阵分析的重要性
💻 M
字号:
% PIDPAR is a mfile which make the input for the controlers

%    Author:   Ole Barup Sorensen, Rapid Data Ltd 

%    Copyright (c) 1989-94 by Rapid Data Ltd
%    Revision 10:29  20/09/94

okflag=figflag('PID-Controller',0);

if okflag==0,									
  Fig21=figure('Numbertitle','off','Name','PID-Controller','Menubar','none',...
  'Units','normal','Position',[(195)/Scx (170)/Scy (250)/Scx (180)/Scy],'Nextplot',...
  'new','Resize','off','Color',[0.5 0.5 0.5]);
  Sx=250;Sy=180; 
  x=0;y=0;
  mv=Kp;mv1=Ti;mv2=Td;mv3=Alfa;
  Kp_str=num2str(Kp);Ti_str=num2str(Ti);Td_str=num2str(Td);Alfa_str=num2str(Alfa);

  if Gc_typ==1,
    g(1)=uicontrol(Fig21,'Style','frame','Position',[(x+15)/Sx (y+55)/Sy (220)/Sx (90)/Sy]);
    g(6)=uicontrol(Fig21,'Style','text','String','Proportional:',...
    'Position',[(x+30)/Sx (y+120)/Sy (100)/Sx (20)/Sy]);
    g(2)=uicontrol(Fig21,'Style','edit','Position',[(x+120)/Sx (y+120)/Sy (100)/Sx (18)/Sy],...
    'String',Kp_str,'Callback','Kp_str=get(g(2),''String'');');

    g(7)=uicontrol(Fig21,'Style','text','String','Integral:',...
    'Position',[(x+30)/Sx (y+100)/Sy (100)/Sx (20)/Sy]);
    g(3)=uicontrol(Fig21,'Style','edit','Position',[(x+120)/Sx (y+100)/Sy (100)/Sx (18)/Sy],...
    'String',Ti_str,'Callback','Ti_str=get(g(3),''String'');');

    g(8)=uicontrol(Fig21,'Style','text','String','Derivative:',...
    'Position',[(x+30)/Sx (y+80)/Sy (100)/Sx (20)/Sy]);
    g(4)=uicontrol(Fig21,'Style','edit','Position',[(x+120)/Sx (y+80)/Sy (100)/Sx (18)/Sy],...
    'String',Td_str,'Callback','Td_str=get(g(4),''String'');');

    g(9)=uicontrol(Fig21,'Style','text','String','Alpha:',...
    'Position',[(x+30)/Sx (y+60)/Sy (80)/Sx (20)/Sy]);
    g(5)=uicontrol(Fig21,'Style','edit','Position',[(x+120)/Sx (y+60)/Sy (100)/Sx (18)/Sy],...
    'String',Alfa_str,'Callback','Alfa_str=get(g(5),''String'');');

    set([g(6:9)],'Foregroundcolor',[0 0 0],'HorizontalAlignment','left');
    set(g(2:5),'Backgroundcolor',[1 1 1]);

  elseif Gc_typ==2,
    g(1)=uicontrol(Fig21,'Style','frame','Position',[(x+15)/Sx (y+55)/Sy (220)/Sx (70)/Sy]);

    g(5)=uicontrol(Fig21,'Style','text','String','Proportional:',...
    'Position',[(x+30)/Sx (y+100)/Sy (100)/Sx (20)/Sy]);
    g(2)=uicontrol(Fig21,'Style','edit','Position',[(x+120)/Sx (y+100)/Sy (100)/Sx (18)/Sy],...
    'String',Kp_str,'Callback','Kp_str=get(g(2),''String'');');

    g(6)=uicontrol(Fig21,'Style','text','String','Derivative:',...
    'Position',[(x+30)/Sx (y+80)/Sy (100)/Sx (20)/Sy]);
    g(3)=uicontrol(Fig21,'Style','edit','Position',[(x+120)/Sx (y+80)/Sy (100)/Sx (18)/Sy],...
    'String',Td_str,'Callback','Td_str=get(g(3),''String'');');

    g(7)=uicontrol(Fig21,'Style','text','String','Alpha:',...
    'Position',[(x+30)/Sx (y+60)/Sy (80)/Sx (20)/Sy]);
    g(4)=uicontrol(Fig21,'Style','edit','Position',[(x+120)/Sx (y+60)/Sy (100)/Sx (18)/Sy],...
    'String',Alfa_str,'Callback','Alfa_str=get(g(4),''String'');');

    set([g(5:7)],'Foregroundcolor',[0 0 0],'HorizontalAlignment','left');
    set(g(2:4),'Backgroundcolor',[1 1 1]);

  elseif Gc_typ==3,
    g(1)=uicontrol(Fig21,'Style','frame','Position',[(x+15)/Sx (y+55)/Sy (220)/Sx (50)/Sy]);
    g(4)=uicontrol(Fig21,'Style','text','String','Proportional:',...
    'Position',[(x+30)/Sx (y+80)/Sy (100)/Sx (20)/Sy]);
    g(2)=uicontrol(Fig21,'Style','edit','Position',[(x+120)/Sx (y+80)/Sy (100)/Sx (18)/Sy],...
    'String',Kp_str,'Callback','Kp_str=get(g(2),''String'');');

    g(5)=uicontrol(Fig21,'Style','text','String','Integral:',...
    'Position',[(x+30)/Sx (y+60)/Sy (100)/Sx (20)/Sy]);
    g(3)=uicontrol(Fig21,'Style','edit','Position',[(x+120)/Sx (y+60)/Sy (100)/Sx (18)/Sy],...
    'String',Ti_str,'Callback','Ti_str=get(g(3),''String'');');
    set([g(4:5)],'Foregroundcolor',[0 0 0],'HorizontalAlignment','left');
    set(g(2:3),'Backgroundcolor',[1 1 1]);
  end




  uicontrol(Fig21,'Style','push','String','Done','Position',...
  [(x+15)/Sx (y+15)/Sy (70)/Sx (20)/Sy],'Callback',...
  ['Kp=str2num(Kp_str);Ti=str2num(Ti_str);Td=str2num(Td_str);',...
   'Alfa=str2num(Alfa_str);',...
   'if Gc_typ==1,',...
     'Gc_num=[Ti*Td*(1+Alfa) Ti+Td*(1+Alfa) 1]*Kp;',...
     'Gc_den=[Alfa*Td*Ti Ti 0];',...
     'close(Fig21);clear Fig21 g;',...
   'elseif Gc_typ==2,',...
     'Gc_num=[Td*(1+Alfa) 1]*Kp;',...
     'Gc_den=[Alfa*Td 1];',...
     'close(Fig21);clear Fig21 g;',...
   'elseif Gc_typ==3,',...
     'Gc_num=[Ti 1]*Kp;',...
     'Gc_den=[Ti 0];',...
     'close(Fig21);clear Fig21 g;',...
   'end;']);

  uicontrol(Fig21,'Style','push','String','Cancel','Position',...
  [(x+95)/Sx (y+15)/Sy (70)/Sx (20)/Sy],'Callback',...
  ['Kp=mv;Ti=mv1;Td=mv2;Alfa=mv3;close(Fig21);clear Fig21 g;']);
end
clear okflag

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -