📄 autogui.m
字号:
AxesCV = axes(...
'Parent', Fig,...
'Units', 'pixel',...
'Position', [175 FigH-325 22 300],...
'CLim', [1 64], ...
'Xlim', [-1 1],...
'Ylim', [-10 10],...
'Visible', 'on',...
'XTick', [],...
'XTickLabel', [],...
'FontSize', 8,...
'Box', 'on');
uicontrol(...
'Parent', Fig,...
'Style', 'text',...
'Units', 'pixel',...
'Position', [175 FigH-20 22 12], ...
'HorizontalAlignment','center',...
'String', 'CV',...
'Backgroundcolor', [0.8 0.8 0.8],...
'Foregroundcolor', [0 1 1],...
'Fontweight', 'bold');
CV = patch(...
'Parent', AxesCV,...
'XData', [-1 -1 1 1],...
'YData', [0 CVValue CVValue 0],...
'FaceColor', [0 1 1]);
% Control variable - Manual
SlideControlCV = uicontrol(...
'Parent', Fig,...
'Style', 'slider',...
'Units', 'pixel', ...
'Position', [225 FigH-325 22 300],...
'Min', -9,...
'Max', 9,...
'Value', 0,...
'BackgroundColor', [0 1 1],...
'Callback', 'autogui([],[],[],''SliderCV'');',...
'Enable', 'inactive');
uicontrol(...
'Parent', Fig,...
'Style', 'text',...
'Units', 'pixel',...
'Position', [200 FigH-20 72 12], ...
'HorizontalAlignment','center',...
'String', 'CV - MAN',...
'Backgroundcolor', [0.8 0.8 0.8],...
'Foregroundcolor', [0 1 1],...
'Fontweight', 'bold');
uicontrol(...
'Parent', Fig,...
'Style', 'text',...
'Units', 'pixel',...
'Position', [106 FigH-250 50 14], ...
'Backgroundcolor', [0.8 0.8 0.8],...
'Foregroundcolor', [0 1 1],...
'HorizontalAlignment','center',...
'Fontweight', 'bold',...
'String', 'CV');
EditCV = uicontrol(...
'Parent', Fig,...
'Style', 'edit',...
'Units', 'pixel',...
'Position', [106 FigH-268 50 18], ...
'HorizontalAlignment','center',...
'String', num2str(CVValue),...
'Foregroundcolor', [0 0 0],...
'Backgroundcolor', [1 1 1],...
'Callback', 'autogui([],[],[],''EditCV'');',...
'Enable', 'inactive');
% time field
uicontrol(...
'Parent', Fig,...
'Style', 'text',...
'Units', 'pixel',...
'Position', [100 FigH-348 36 12], ...
'HorizontalAlignment','right',...
'Backgroundcolor', [0.8 0.8 0.8],...
'Fontweight', 'bold',...
'String', 'Time: ');
TimeField = uicontrol(...
'Parent', Fig,...
'Style', 'text',...
'Units', 'pixel', ...
'Position', [136 FigH-348 36 12],...
'HorizontalAlignment','left',...
'Backgroundcolor', [0.8 0.8 0.8],...
'String', num2str(TimeClock));
% PID parameters
uicontrol(...
'Parent', Fig,...
'Style', 'text',...
'Units', 'pixel',...
'Position', [12 FigH-371 140 14], ...
'HorizontalAlignment','left',...
'Fontweight', 'bold',...
'Backgroundcolor', [0.8 0.8 0.8],...
'String', 'Parameters');
uicontrol(...
'Parent', Fig,...
'Style', 'frame',...
'Units', 'pixel',...
'Position', [12 FigH-417 248 46]);
uicontrol(...
'Parent', Fig,...
'Style', 'text',...
'Units', 'pixel',...
'Position', [16 FigH-393 20 14], ...
'HorizontalAlignment','right',...
'Fontweight', 'bold',...
'String', 'K ');
EditK = uicontrol(...
'Parent', Fig,...
'Style', 'edit',...
'Units', 'pixel',...
'Position', [36 FigH-393 60 18], ...
'HorizontalAlignment','center',...
'String', '',...
'Backgroundcolor', [1 1 1],...
'Callback', 'autogui([],[],[],''EditK'');');
uicontrol(...
'Parent', Fig,...
'Style', 'text',...
'Units', 'pixel',...
'Position', [96 FigH-393 20 14], ...
'HorizontalAlignment','right',...
'Fontweight', 'bold',...
'String', 'Ti ');
EditTi = uicontrol(...
'Parent', Fig,...
'Style', 'edit',...
'Units', 'pixel',...
'Position', [116 FigH-393 60 18], ...
'HorizontalAlignment','center',...
'String', '',...
'Backgroundcolor', [1 1 1],...
'Callback', 'autogui([],[],[],''EditTi'');');
uicontrol(...
'Parent', Fig,...
'Style', 'text',...
'Units', 'pixel',...
'Position', [176 FigH-393 20 14], ...
'HorizontalAlignment','right',...
'Fontweight', 'bold',...
'String', 'Td ');
EditTd = uicontrol(...
'Parent', Fig,...
'Style', 'edit',...
'Units', 'pixel',...
'Position', [196 FigH-393 60 18], ...
'HorizontalAlignment','center',...
'String', '',...
'Backgroundcolor', [1 1 1],...
'Callback', 'autogui([],[],[],''EditTd'');');
uicontrol(...
'Parent', Fig,...
'Style', 'text',...
'Units', 'pixel',...
'Position', [16 FigH-413 20 14], ...
'HorizontalAlignment','right',...
'Fontweight', 'bold',...
'String', 'N ');
EditN = uicontrol(...
'Parent', Fig,...
'Style', 'edit',...
'Units', 'pixel',...
'Position', [36 FigH-413 60 18], ...
'HorizontalAlignment','center',...
'String', '',...
'Backgroundcolor', [1 1 1],...
'Callback', 'autogui([],[],[],''EditN'');');
uicontrol(...
'Parent', Fig,...
'Style', 'text',...
'Units', 'pixel',...
'Position', [96 FigH-413 20 14], ...
'HorizontalAlignment','right',...
'Fontweight', 'bold',...
'String', 'b ');
Editb = uicontrol(...
'Parent', Fig,...
'Style', 'edit',...
'Units', 'pixel',...
'Position', [116 FigH-413 60 18], ...
'HorizontalAlignment','center',...
'String', '',...
'Backgroundcolor', [1 1 1],...
'Callback', 'autogui([],[],[],''Editb'');');
uicontrol(...
'Parent', Fig,...
'Style', 'text',...
'Units', 'pixel',...
'Position', [176 FigH-413 20 14], ...
'HorizontalAlignment','right',...
'Fontweight', 'bold',...
'String', 'c ');
Editc = uicontrol(...
'Parent', Fig,...
'Style', 'edit',...
'Units', 'pixel',...
'Position', [196 FigH-413 60 18], ...
'HorizontalAlignment','center',...
'String', '0',...
'Backgroundcolor', [1 1 1],...
'Callback', 'autogui([],[],[],''Editc'');',...
'Enable', 'off');
% auto/man selector
uicontrol(...
'Parent', Fig,...
'Style', 'text',...
'Units', 'pixel',...
'Position', [12 FigH-441 140 14], ...
'HorizontalAlignment','left',...
'Fontweight', 'bold',...
'Backgroundcolor', [0.8 0.8 0.8],...
'String', 'Operating Mode');
uicontrol(...
'Parent', Fig,...
'Style', 'frame',...
'Units', 'pixel',...
'Position', [12 FigH-467 248 24]);
Man = uicontrol(...
'Parent', Fig,...
'Style', 'radiobutton',...
'Position', [16 FigH-465 70 20],...
'String', 'Manual', ...
'Fontweight', 'bold',...
'Value', 0,...
'Callback', 'autogui([],[],[],''Man'');');
Auto = uicontrol(...
'Parent', Fig,...
'Style', 'radiobutton',...
'Position', [136 FigH-465 50 20],...
'String', 'Auto', ...
'Fontweight', 'bold',...
'Value', 1,...
'Callback', 'autogui([],[],[],''Auto'');');
% autotuning
uicontrol(...
'Parent', Fig,...
'Style', 'text',...
'Units', 'pixel',...
'Position', [12 FigH-491 140 14], ...
'HorizontalAlignment','left',...
'Fontweight', 'bold',...
'Backgroundcolor', [0.8 0.8 0.8],...
'String', 'Autotuner');
uicontrol(...
'Parent', Fig,...
'Style', 'frame',...
'Units', 'pixel',...
'Position', [12 FigH-604 248 112]);
uicontrol(...
'Parent', Fig,...
'Style', 'text',...
'Units', 'pixel',...
'Position', [16 FigH-516 140 14], ...
'HorizontalAlignment','left',...
'Fontweight', 'bold',...
'String', 'Identification method');
IdentMethod = uicontrol(...
'Parent', Fig,...
'Style', 'popupmenu',...
'Position', [156 FigH-516 100 18],...
'String', ['step ';'relay'],...
'Backgroundcolor', [1 1 1],...
'Fontweight', 'bold',...
'Value', 1,...
'Callback', 'autogui([],[],[],''Identification'');');
uicontrol(...
'Parent', Fig,...
'Style', 'text',...
'Units', 'pixel',...
'Position', [16 FigH-536 140 14], ...
'HorizontalAlignment','left',...
'Fontweight', 'bold',...
'String', 'Tuning method');
TuningMethod = uicontrol(...
'Parent', Fig,...
'Style', 'popupmenu',...
'Position', [156 FigH-536 100 18],...
'String', ['IMC ';'KT ';'ZN (OL)';'ZN (CL)'], ...
'Backgroundcolor', [1 1 1],...
'Fontweight', 'bold',...
'Value', 2,...
'Callback', 'autogui([],[],[],''Tuning'');');
TuningParText = uicontrol(...
'Parent', Fig,...
'Style', 'text',...
'Units', 'pixel',...
'Position', [16 FigH-556 180 14], ...
'HorizontalAlignment','right',...
'Fontweight', 'bold',...
'String', 'Ms ');
TuningParam = uicontrol(...
'Parent', Fig,...
'Style', 'popupmenu',...
'Units', 'pixel',...
'Position', [196 FigH-556 60 18], ...
'HorizontalAlignment','center',...
'String', ['1.4';'2.0'],...
'Value', 1,...
'Backgroundcolor', [1 1 1],...
'Callback', 'autogui([],[],[],''EditParam'');');
uicontrol(...
'Parent', Fig,...
'Style', 'text',...
'Units', 'pixel',...
'Position', [16 FigH-576 140 14], ...
'HorizontalAlignment','left',...
'Fontweight', 'bold',...
'String', 'Structure');
RegStruct = uicontrol(...
'Parent', Fig,...
'Style', 'popupmenu',...
'Position', [156 FigH-576 100 18],...
'String', ['PID ';'PI ';'auto'], ...
'Backgroundcolor', [1 1 1],...
'Fontweight', 'bold',...
'Value', 1,...
'Callback', 'autogui([],[],[],''Structure'');');
uicontrol(...
'Parent', Fig,...
'Style', 'pushbutton',...
'Position', [100 FigH-601 72 20],...
'String', 'Autotune', ...
'Fontweight', 'bold',...
'Callback', 'autogui([],[],[],''Autotune'');');
% all the HG objects are created, store them into the Figure's UserData
% time field
FigUD.TimeField = TimeField;
% process value & setpoint
FigUD.PV = PV;
FigUD.SlideSP = SlideControlSP;
FigUD.RefMark = RefMark;
FigUD.EditSP = EditSP;
FigUD.PVField = PVField;
% control variable
FigUD.CV = CV;
FigUD.SlideCV = SlideControlCV;
FigUD.EditCV = EditCV;
% radiobox button
FigUD.Man = Man;
FigUD.Auto = Auto;
% edit field (PID parameters)
FigUD.EditK = EditK;
FigUD.EditTi = EditTi;
FigUD.EditTd = EditTd;
FigUD.EditN = EditN;
FigUD.Editb = Editb;
% autotuning
FigUD.Ident = IdentMethod;
FigUD.Tuning = TuningMethod;
FigUD.TunParText = TuningParText;
FigUD.TuningParam = TuningParam;
FigUD.Structure = RegStruct;
% Simulink Block Interaction
FigUD.Block = get_param(gcbh,'Handle');
FigUD.RefBlock = get_param([sys '/' RefBlock],'Handle');
set(Fig,'UserData',FigUD);
drawnow
% store the figure handle in the animation block's UserData
set_param(gcbh,'UserData',Fig);
% end LocalPIDInit
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -