📄 nefgui_o.m
字号:
function nefgui_o(action, p1);
%NEFGUI_O GUI-Tool to manage Nefcon learning algorithm settings.
%
% See also NEFGUI, NEFGUI_E, NEFGUI_I and NEFCON.
% Author: Andreas Nuernberger, TU Braunschweig, August 1996; a.nuernberger@tu-bs.de
% contact: Ludger Merz, DASA-Airbus GmbH, Hamburg; ludger.merz@airbus.de
% Globals: Description in nefmat
global NEFCON_PROT NEFCON_STAT NEFCON_UIH NEFCON_RULE NEFCON_OPT NEFCON_IFM NEFCON_EFM NEFCON_EFMN
global NEFCON_RATE NEFCON_FERR NEFCON_FIS
global NEFCON_RBT NEFCON_RBND NEFCON_RBT1 NEFCON_RBND1 NEFCON_OBT NEFCON_OBND
global NEFCON_CYC NEFCON_NOISE NEFCON_ADDR
global NEFCON_GENN NEFCON_MFIN NEFCON_MFOUT NEFCON_MFIT NEFCON_MFOT
global NEFCON_RRATE NEFCON_RPER
handle = findobj('Tag', 'NEFCONGUI_O');
if nargin < 1
if handle == []
action = 'initialize';
else
action = '';
end;
end;
%create controls
if strcmp(action, 'initialize') & handle == [],
% Information for all objects
bckfrmColor=230/255*[1 1 1];
frmColor=192/255*[1 1 1];
bckColor=230/255*[1 1 1];
btnColor=192/255*[1 1 1];
popupColor=192/255*[1 1 1];
editColor=255/255*[1 1 1];
border=6;
spacing=8;
%Calculate Windowsize
figPos=get(0,'DefaultFigurePosition');
figPos(3) = 1. * figPos(3);
figPos(4) = 0.9 * figPos(3);
maxRight=figPos(3);
maxTop=figPos(4);
% uicontrol sizes
% btnWid = 110;
% btnHt = 23;
btnWid = maxRight/6;
btnHt = maxRight/25;
% calculate normalized units for resizeable window
Nborder = border/maxRight;
Nspacing= spacing/maxRight;
NbtnWid = btnWid/maxRight;
NbtnHt = btnHt/maxTop;
% userdata
localdata = [];
% open new window
h = figure( ...
'Name','Learning Algorithm', ...
'NumberTitle','off', ...
'Color',bckColor, ...
'Visible','on', ...
'UserData',localdata, ...
'Units','pixels', ...
'DefaultAxesXColor','black', ...
'DefaultAxesYColor','black', ...
'MenuBar','none', ...
'Resize','on', ...
'Position',figPos, ...
'Nextplot','new', ...
'Tag','NEFCONGUI_O' ...
);
figPos=get(h,'position');
% create close button
closeb = uicontrol(h, ...
'Style', 'push', ...
'String', 'Close', ...
'Units','normalized', ...
'Position', [1-Nspacing-NbtnWid 3*Nspacing+NbtnHt NbtnWid NbtnHt], ...
'CallBack', 'nefgui_o(''close'')');
% create help button
helpb = uicontrol(h, ...
'Style', 'push', ...
'String', 'Help', ...
'Units','normalized', ...
'Position', [1-Nspacing-NbtnWid 2*(3*Nspacing+NbtnHt) NbtnWid NbtnHt], ...
'CallBack', 'hthelp(''nefcon.htm#learnalgo'')');
% create show fis button
showb = uicontrol(h, ...
'Style', 'push', ...
'enable', 'off', ...
'tag', 'showb', ...
'String', 'Show MF', ...
'Units','normalized', ...
'Position', [1-Nspacing-NbtnWid 1-(3*Nspacing+NbtnHt) NbtnWid NbtnHt], ...
'CallBack', 'global NEFCON_FIS; h=figure; act=gcf; figure(h); dispmfs(NEFCON_FIS);figure(act);');
% create show rules button
editR = uicontrol(h, ...
'Style', 'push', ...
'enable', 'off', ...
'tag', 'editR', ...
'String', 'Edit Rules', ...
'Units','normalized', ...
'Position', [1-Nspacing-NbtnWid 1-2*(3*Nspacing+NbtnHt) NbtnWid NbtnHt], ...
'CallBack', 'global NEFCON_FIS; ruleedit(NEFCON_FIS);');
% create show surface button
editR = uicontrol(h, ...
'Style', 'push', ...
'enable', 'off', ...
'tag', 'showS', ...
'String', 'Surface', ...
'Units','normalized', ...
'Position', [1-Nspacing-NbtnWid 1-3*(3*Nspacing+NbtnHt) NbtnWid NbtnHt], ...
'CallBack', 'global NEFCON_FIS; surfview(NEFCON_FIS);');
% create edit fis button
editb = uicontrol(h, ...
'Style', 'push', ...
'enable', 'off', ...
'tag', 'editb', ...
'String', 'Edit Fis', ...
'Units','normalized', ...
'Position', [1-Nspacing-NbtnWid 1-4*(3*Nspacing+NbtnHt) NbtnWid NbtnHt], ...
'CallBack', 'global NEFCON_FIS; fuzzy(NEFCON_FIS);');
% The STATUS frame
topFrmHndl=uicontrol(h, ...
'Style','frame', ...
'Units','normalized', ...
'Position',[0 0 1 NbtnHt+2*Nspacing], ...
'BackgroundColor',frmColor);
% The STATUS text window
statTxtH=uicontrol(h, ...
'Style','text', ...
'BackgroundColor',frmColor, ...
'HorizontalAlignment','left', ...
'Position',[Nspacing Nspacing 1-2*Nspacing NbtnHt], ...
'Units','normalized', ...
'Tag','status', ...
'String','');
% The Options frame
left = Nspacing;
bottom = 3*Nspacing+1*NbtnHt;
width = 0.8-Nspacing;
height = 1-bottom-Nspacing;
right = left+width;
top = bottom+height;
% topFrmHndl=uicontrol(h, ...
% 'Style','frame', ...
% 'Units','normalized', ...
% 'Position',[left bottom width height], ...
% 'BackgroundColor',bckfrmColor);
% The Options frame label
% labelStr='Nefcon Options';
% statHndl=uicontrol(h, ...
% 'Style','text', ...
% 'BackgroundColor',bckfrmColor, ...
% 'HorizontalAlignment','center', ...
% 'Position', [left+Nspacing top-Nspacing-NbtnHt width-2*Nspacing NbtnHt], ...
% 'Units', 'normalized', ...
% 'String', labelStr);
% The Options rule learning
NofLines = 9;
left = left + Nspacing;
height = NofLines*(Nspacing+NbtnHt) + Nspacing;
% bottom = top - 2*Nspacing-NbtnHt - height;
bottom = 1 - 2*Nspacing - height;
width = width - 2*Nspacing;
right = left+width;
top = bottom+height;
topFrmHndl=uicontrol(h, ...
'Style','frame', ...
'Units','normalized', ...
'Position',[left bottom width height], ...
'BackgroundColor',frmColor);
statHndl=uicontrol(h, ...
'Style','text', ...
'BackgroundColor',frmColor, ...
'HorizontalAlignment','center', ...
'Position', [left+Nspacing top-Nspacing-NbtnHt width-2*Nspacing NbtnHt], ...
'Units', 'normalized', ...
'String', 'Rule Learning');
rulelistH=uicontrol(h, ...
'Style','popup', ...
'BackgroundColor',editColor, ...
'String', 'Bottom-Up learning|Nefcon|disabled - initial fismatrix|disabled - use actual fismatrix',...
'Position', [left+Nspacing top-2*(Nspacing+NbtnHt) width-3*Nspacing-NbtnHt NbtnHt], ...
'Units', 'normalized', ...
'CallBack', 'nefgui_o (''rulelist'')', ...
'Tag', 'rulelist');
% 'String', 'Bottom-Up learning|Nefcon|Partitionlearning|disabled - initial fismatrix|disabled - use actual fismatrix',...
helpb = uicontrol(h, ...
'Style', 'push', ...
'String', '?', ...
'Units','normalized', ...
'Position', [left+width-Nspacing-NbtnHt top-2*(Nspacing+NbtnHt) NbtnHt NbtnHt], ...
'CallBack', 'hthelp(''nefcon.htm#ruleopt'')');
statHndl=uicontrol(h, ...
'Style','text', ...
'BackgroundColor',frmColor, ...
'HorizontalAlignment','left', ...
'Position', [left+Nspacing top-3*(Nspacing+NbtnHt) width/3-2*Nspacing NbtnHt], ...
'Units', 'normalized', ...
'String', 'fismatrix:');
inifismatH=uicontrol(h, ...
'Style','edit', ...
'BackgroundColor',editColor, ...
'Position', [left+width/3+Nspacing top-3*(Nspacing+NbtnHt) width*2/3-2*Nspacing NbtnHt], ...
'Units', 'normalized', ...
'CallBack', 'nefgui_o (''inifismat'')', ...
'Tag','inifismat');
% Partitioning
topFrmHndl=uicontrol(h, ...
'Style','frame', ...
'Units','normalized', ...
'Position',[left+Nspacing/2 top-5*(Nspacing+NbtnHt)-Nspacing/2 width-Nspacing 2*(Nspacing+NbtnHt)], ...
'BackgroundColor',frmColor);
sH=uicontrol(h, ...
'Style','text', ...
'BackgroundColor',frmColor, ...
'HorizontalAlignment','left', ...
'Position', [left+Nspacing top-4*(Nspacing+NbtnHt) width*0.3-1*Nspacing NbtnHt], ...
'Units', 'normalized', ...
'String', 'Partitioning:');
sH=uicontrol(h, ...
'Style','text', ...
'BackgroundColor',frmColor, ...
'HorizontalAlignment','left', ...
'Position', [left+Nspacing+width*0.3 top-4*(Nspacing+NbtnHt) width*0.2-1*Nspacing NbtnHt], ...
'Units', 'normalized', ...
'String', 'Input:');
partinH=uicontrol(h, ...
'Style','edit', ...
'BackgroundColor',editColor, ...
'Position', [left+Nspacing+width*0.5 top-4*(Nspacing+NbtnHt) width*0.1-1*Nspacing NbtnHt], ...
'Units', 'normalized', ...
'CallBack', 'nefgui_o (''partin'')', ...
'Tag','partin');
mfitH=uicontrol(h, ...
'Style','popup', ...
'BackgroundColor',editColor, ...
'Position', [left+Nspacing+width*0.6 top-4*(Nspacing+NbtnHt) width*0.3-1*Nspacing NbtnHt], ...
'Units', 'normalized', ...
'String', 'trimf/trapmf|gaussmf',...
'CallBack', 'nefgui_o (''mfit'')', ...
'Tag', 'mfit');
sH=uicontrol(h, ...
'Style','text', ...
'BackgroundColor',frmColor, ...
'HorizontalAlignment','left', ...
'Position', [left+Nspacing+width*0.9 top-4*(Nspacing+NbtnHt) width*0.1-2*Nspacing NbtnHt], ...
'Units', 'normalized', ...
'String', 'MFs');
sH=uicontrol(h, ...
'Style','text', ...
'BackgroundColor',frmColor, ...
'HorizontalAlignment','left', ...
'Position', [left+Nspacing+width*0.3 top-5*(Nspacing+NbtnHt) width*0.2-1*Nspacing NbtnHt], ...
'Units', 'normalized', ...
'String', 'Output:');
partoutH=uicontrol(h, ...
'Style','edit', ...
'BackgroundColor',editColor, ...
'Position', [left+Nspacing+width*0.5 top-5*(Nspacing+NbtnHt) width*0.1-1*Nspacing NbtnHt], ...
'Units', 'normalized', ...
'CallBack', 'nefgui_o (''partout'')', ...
'Tag','partout');
mfotH=uicontrol(h, ...
'Style','popup', ...
'BackgroundColor',editColor, ...
'Position', [left+Nspacing+width*0.6 top-5*(Nspacing+NbtnHt) width*0.3-1*Nspacing NbtnHt], ...
'Units', 'normalized', ...
'String', 'trimf|gaussmf',...
'CallBack', 'nefgui_o (''mfot'')', ...
'Tag', 'mfot');
sH=uicontrol(h, ...
'Style','text', ...
'BackgroundColor',frmColor, ...
'HorizontalAlignment','left', ...
'Position', [left+Nspacing+width*0.9 top-5*(Nspacing+NbtnHt) width*0.1-2*Nspacing NbtnHt], ...
'Units', 'normalized', ...
'String', 'MFs');
noiseH=uicontrol(h, ...
'Style','checkbox', ...
'BackgroundColor',frmColor, ...
'Position', [left+Nspacing top-6*(Nspacing+NbtnHt) width*0.4 NbtnHt], ...
'Units', 'normalized', ...
'String', 'generate noise', ...
'CallBack', 'nefgui_o (''noise'')', ...
'Tag','noise');
sH=uicontrol(h, ...
'Style','text', ...
'BackgroundColor',frmColor, ...
'HorizontalAlignment','left', ...
'Position', [left+Nspacing+width*0.45 top-6*(Nspacing+NbtnHt) width*0.25 NbtnHt], ...
'Units', 'normalized', ...
'String', 'learn. rate:', ...
'Tag','rlrt');
rlrH=uicontrol(h, ...
'Style','edit', ...
'BackgroundColor',editColor, ...
'Position', [left+Nspacing+width*0.75 top-6*(Nspacing+NbtnHt) width*0.2 NbtnHt], ...
'Units', 'normalized', ...
'CallBack', 'nefgui_o (''rlr'')', ...
'Tag','rlr');
sH=uicontrol(h, ...
'Style','text', ...
'BackgroundColor',frmColor, ...
'HorizontalAlignment','left', ...
'Position', [left+Nspacing top-7*(Nspacing+NbtnHt) width*0.55 NbtnHt], ...
'Units', 'normalized', ...
'String', 'Delete rules used less than', ...
'Tag','rlrt');
rrmH=uicontrol(h, ...
'Style','edit', ...
'BackgroundColor',editColor, ...
'Position', [left+Nspacing+width*0.56 top-7*(Nspacing+NbtnHt) width*0.1 NbtnHt], ...
'Units', 'normalized', ...
'CallBack', 'nefgui_o (''rrm'')', ...
'Tag','rrm');
sH=uicontrol(h, ...
'Style','text', ...
'BackgroundColor',frmColor, ...
'HorizontalAlignment','left', ...
'Position', [left+Nspacing+width*0.7 top-7*(Nspacing+NbtnHt) width*0.2 NbtnHt], ...
'Units', 'normalized', ...
'String', 'percent', ...
'Tag','rlrt');
topFrmHndl=uicontrol(h, ...
'Style','frame', ...
'Units','normalized', ...
'Position',[left+Nspacing/2 bottom+Nspacing/2 width-Nspacing 2*(Nspacing+NbtnHt)], ...
'BackgroundColor',frmColor);
sH=uicontrol(h, ...
'Style','text', ...
'BackgroundColor',frmColor, ...
'HorizontalAlignment','left', ...
'Position', [left+Nspacing top-8*(Nspacing+NbtnHt) width/5-1*Nspacing NbtnHt], ...
'Units', 'normalized', ...
'String', 'Phase 1: ');
rbndH=uicontrol(h, ...
'Style','edit', ...
'BackgroundColor',editColor, ...
'Position', [left+Nspacing+width/5 top-8*(Nspacing+NbtnHt) width/5-1*Nspacing NbtnHt], ...
'Units', 'normalized', ...
'CallBack', 'nefgui_o (''rbnd'')', ...
'Tag','rbnd');
rbtH=uicontrol(h, ...
'Style','popup', ...
'BackgroundColor',editColor, ...
'Position', [left+width*0.4+Nspacing top-8*(Nspacing+NbtnHt) width*0.6-2*Nspacing NbtnHt], ...
'Units', 'normalized', ...
'String', 'time steps [s]|iteration steps|cycles',...
'CallBack', 'nefgui_o (''rbt'')', ...
'Tag', 'rbt');
s1H=uicontrol(h, ...
'Style','text', ...
'BackgroundColor',frmColor, ...
'HorizontalAlignment','left', ...
'Position', [left+Nspacing top-9*(Nspacing+NbtnHt) width/5-1*Nspacing NbtnHt], ...
'Units', 'normalized', ...
'String', 'Phase 2: ');
rbnd1H=uicontrol(h, ...
'Style','edit', ...
'BackgroundColor',editColor, ...
'Position', [left+Nspacing+width/5 top-9*(Nspacing+NbtnHt) width/5-1*Nspacing NbtnHt], ...
'Units', 'normalized', ...
'CallBack', 'nefgui_o (''rbnd1'')', ...
'Tag','rbnd1');
rbt1H=uicontrol(h, ...
'Style','popup', ...
'BackgroundColor',editColor, ...
'Position', [left+width*0.4+Nspacing top-9*(Nspacing+NbtnHt) width*0.6-2*Nspacing NbtnHt], ...
'Units', 'normalized', ...
'String', 'time steps [s]|iteration steps|cycles',...
'CallBack', 'nefgui_o (''rbt1'')', ...
'Tag', 'rbt1');
% The Options optimization
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -