?? pidpar.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*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 + -