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

📄 nefgui.m

📁 模糊神经网络采用matlab编程 o install NEFCON follow these steps: 1. Unpack the tar file NEFCON.TAR into your MA
💻 M
📖 第 1 页 / 共 3 页
字号:
function nefgui(action, p1);   
  
%NEFGUI GUI-Tool to manage Nefcon settings.  
%       NEFGUI is the main control window to all NEFCON settings.
%       
%       NEFGUI;
%
% See also NEFGUI_O, 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:  described 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 NEFCON_NUMIN  
global NEFCON_RBT NEFCON_RBND NEFCON_RBT1 NEFCON_RBND1 NEFCON_OBT NEFCON_OBND   
  
global NEFCON_CYC  
global NEFCON_STOP  
global NEFCON_NOISE 
  
%true if forward or backward button is pressed 
global NEFCON_BTN 
 
%actual cycle  
global NEFCON_ACTCYC  
 
global NEFCON_SYSNAME 
  
global NEFCON_SYS  
 
global NEFCON_SHANDLE  
  
%settings of last simulation (for continue) 
global NEFCON_X0 NEFCON_TIME NEFCON_YS 
 
global NEFCON_STATEX 
 
%actual input/output intervall and gain information   
global NEFCON_INT NEFCON_GAIN 

NEFCON_UIH = findobj('Tag', 'NEFCONGUI');  
  
if nargin < 1  
    if NEFCON_UIH == []  
        action = 'initialize';  
    else  
        action = '';  
    end;  
end;  
% Information for all objects  
statdColor=220/255*[1 1 1];  
stateColor=[1 1 1];  
yellow = [1 1 0]; 
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];  
blockColor=[0.7 0.7 1];  
lineColor=[0 0 0];  
 
if strcmp(computer,'PCWIN') 
    % used for buttons (always grey) 
    blockColor = btnColor; 
end 
 
%create controls  
if strcmp(action, 'initialize') & NEFCON_UIH == [],  
    nefdef; 
    border=6;  
    spacing=8;  
  
    %Calculate Windowsize  
    figPos=get(0,'DefaultFigurePosition');  
    figPos(4) = 0.63 * 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','Nefcon Control', ...  
        'NumberTitle','off', ...  
    	'Color',bckColor, ...  
	    'Visible','on', ...  
	    'UserData',localdata, ...  
    	'Units','pixels', ...  
	    'DefaultAxesXColor','black', ...  
    	'DefaultAxesYColor','black', ...  
    	'MenuBar','none', ...  
	    'Resize','on', ...  
	    'Position',figPos, ...  
    	'Nextplot','new', ...  
    	'Tag','NEFCONGUI' ...  
	    );  
    figPos=get(h,'position');  
  
    % create axes for line drawing etc.  
    hax=axes('Position', [0,0,1,1], ...  
        'Units', 'normalized', ...  
        'XLim', [0 1], 'yLim', [0 1], ...  
        'Visible','off');  
  
% ---------------------------------------------  
% create menus  
% ---------------------------------------------  
    labelStr=menulabel('&File ');  
    fileHndl=uimenu(h,'Label',labelStr);  
    [labelStr,accelStr]=menulabel('&New System ^n');  
    uimenu(fileHndl,'Label',labelStr, ...  
            'Separator','off', ...  
	    'Accelerator',accelStr, ...  
        'Interruptible', 'no', ...  
	    'Callback','nefgui (''new'')');  
    [labelStr,accelStr]=menulabel('&Save settings ^s');  
    uimenu(fileHndl,'Label',labelStr, ...  
            'Separator','off', ...  
	    'Accelerator',accelStr, ...  
        'Interruptible', 'no', ...  
	    'Callback','nefgui (''save'')');  
    [labelStr,accelStr]=menulabel('&Load settings ^l');  
    uimenu(fileHndl,'Label',labelStr, ...  
            'Separator','off', ...  
	    'Accelerator',accelStr, ...  
        'Interruptible', 'no', ...  
	    'Callback','nefgui (''load'')');  
    [labelStr,accelStr]=menulabel('Save &fismatrix ^f');  
    uimenu(fileHndl,'Label',labelStr, ...  
            'Separator','on', ...  
	    'Accelerator',accelStr, ...  
        'Interruptible', 'no', ...  
	    'Callback','nefgui (''savef'')');  
    [labelStr,accelStr]=menulabel('Load fis&matrix ^m');  
    uimenu(fileHndl,'Label',labelStr, ...  
            'Separator','off', ...  
	    'Accelerator',accelStr, ...  
        'Interruptible', 'no', ...  
	    'Callback','nefgui (''loadf'')');  
    [labelStr,accelStr]=menulabel('Sho&w Loops ^w');  
    uimenu(fileHndl,'Label',labelStr, ...  
		'Separator','on', ...  
		'Accelerator',accelStr, ...  
	    'Callback','nefgui (''shwlps'')');  
    [labelStr,accelStr]=menulabel('&Close window ^w');  
    uimenu(fileHndl,'Label',labelStr, ...  
            'Separator','on', ...  
	    'Accelerator',accelStr, ...  
        'Interruptible', 'yes', ...  
	    'Callback','nefgui (''close'')');  
  
    labelStr=menulabel('&Edit ');  
    editHndl=uimenu(h, 'Label',labelStr, 'Tag','editmenu');  
    [labelStr,accelStr]=menulabel('&Input ^i');  
    uimenu(editHndl,'Label',labelStr, ...  
            'Separator','off', ...  
	    'Accelerator',accelStr, ...  
	    'Callback','nefgui_i');  
    [labelStr,accelStr]=menulabel('&Error ^e');  
    uimenu(editHndl,'Label',labelStr, ...  
            'Separator','off', ...  
	    'Accelerator',accelStr, ...  
	    'Callback','nefgui_e');  
    [labelStr,accelStr]=menulabel('&Learning System ^l');  
    uimenu(editHndl,'Label',labelStr, ...  
            'Separator','off', ...  
	    'Accelerator',accelStr, ...  
	    'Callback','nefgui_o');  
    [labelStr,accelStr]=menulabel('&Fuzzy Controller ^f');  
    uimenu(editHndl,'Label',labelStr, ...  
		'Separator','off', ...  
		'Accelerator',accelStr, ...  
		'Callback', ['global NEFCON_FIS;',...  
		        'if NEFCON_FIS~=[], fuzzy(NEFCON_FIS);',...  
		        'else, nefgui(''status'', ''ERROR: Fismatrix is empty'');',...  
		        'end;',...  
		        ]);  
    % build window menu 
    labelStr=menulabel('&Window ');  
    uimenu(h, 'Label', labelStr, ... 
              'Callback', winmenu('callback'), 'Tag', 'winmenu'); 
    winmenu(h);  % Initialize the submenu 
 
    % build help menu 
    labelStr=menulabel('&Help ');  
    helpHndl=uimenu(h, 'Label',labelStr, 'Tag','helpmenu');  
    [labelStr,accelStr]=menulabel('&Help ^h');  
    uimenu(helpHndl,'Label',labelStr, ...  
            'Separator','off', ...  
	    'Accelerator',accelStr, ...  
	    'Callback','hthelp(''nefcon.htm#nefcontr'')');  
 
 
% ---------------------------------------------  
% button frame  
% ---------------------------------------------  
    % The button frame  
    topFrmHndl=uicontrol(h, ...  
        'Style','frame', ...  
       	'Units','normalized', ...  
        'Position',[0 2.5*Nspacing+2*NbtnHt 1 NbtnHt+Nspacing], ...  
        'BackgroundColor',frmColor);  
  
    % create close button  
    closeb = uicontrol(h, ...  
        'Style', 'push', ...  
        'String', 'Close', ...  
    	'Units','normalized', ...  
        'Position', [1-Nspacing-NbtnWid 3*Nspacing+2*NbtnHt NbtnWid NbtnHt], ...  
        'CallBack', 'nefgui(''close'')');  
  
    % create help button  
    closeb = uicontrol(h, ...  
        'Style', 'push', ...  
        'String', 'Help', ...  
    	'Units','normalized', ...  
        'Position', [1-2*(Nspacing+NbtnWid) 3*Nspacing+2*NbtnHt NbtnWid NbtnHt], ...  
        'CallBack', 'hthelp(''nefcon.htm#nefcontr'')');  
  
    % create reset button  
    resetb = uicontrol(h, ...  
        'Style', 'push', ...  
        'String', 'Reset', ...  
    	'Units','normalized', ...  
        'Position', [1-3*(Nspacing+NbtnWid) 3*Nspacing+2*NbtnHt NbtnWid NbtnHt], ...  
        'CallBack', 'nefgui(''reset'')');  
  
    % create create button  
    resetb = uicontrol(h, ...  
        'Style', 'push', ...  
        'String', 'Create', ...  
    	'Units','normalized', ...  
        'Position', [0+Nspacing 3*Nspacing+2*NbtnHt NbtnWid NbtnHt], ...  
        'Tag', 'create', ... 
        'CallBack', 'nefgui_c;');  
  
% ---------------------------------------------  
% the status frame  
% ---------------------------------------------  
    % The STATUS frame  
    topFrmHndl=uicontrol(h, ...  
        'Style','frame', ...  
       	'Units','normalized', ...  
        'Position',[0 0 1 2*NbtnHt+2*Nspacing], ...  
        'BackgroundColor',frmColor);  
  
    % The STATUS text window  
    statTxtH=uicontrol(h, ...  
        'Style','text', ...  
    	'BackgroundColor',frmColor, ...  
	    'HorizontalAlignment','left', ...  
        'Position',[Nspacing Nspacing+NbtnHt 1-2*Nspacing-3*NbtnHt NbtnHt], ...  
    	'Units','normalized', ...  
	'Tag','stattxt', ...  
        'String','Status:');  
    stattext = ['Stopped    '; ... 
                'Init       '; ... 
                'Rule P1    '; ... 
                'Rule P2    '; ... 
                'Optimize   '; ... 
                'Control    ']; 
    stwidth = (1-1*Nspacing)/6; 
    NEFCON_SHANDLE = []; 
    for i=1:6 
        if i == 1 
            statTxtH=uicontrol(h, ...  
                'Style','text', ...  
                'BackgroundColor',statdColor, ...  
                'HorizontalAlignment','center', ...  
                'Position',[Nspacing+(i-1)*stwidth Nspacing stwidth*0.95 NbtnHt*0.8], ...  
                'Units','normalized', ...  
                'Tag','status', ...  
                'String',deblank(stattext(i,:))); 
        else 
            statTxtH=uicontrol(h, ...  
                'Style','checkbox', ...  
                'BackgroundColor',statdColor, ...  
                'HorizontalAlignment','center', ...  
                'Position',[Nspacing+(i-1)*stwidth Nspacing stwidth*0.95 NbtnHt*0.8], ...  
                'Units','normalized', ...  
                'Tag','status', ...  
                'CallBack', ['nefgui(''statl'',', int2str(i), ');'], ... 
                'String',deblank(stattext(i,:))); 
        end 
        NEFCON_SHANDLE = [NEFCON_SHANDLE statTxtH]; 
     end 
 
    % create backward button  
    bckb = uicontrol(h, ...  
        'Style', 'push', ...  
        'String', '<', ...  
    	'Units','normalized', ...  
        'Position', [1-2*Nspacing-2*NbtnHt 1*Nspacing+NbtnHt NbtnHt NbtnHt], ...  
        'CallBack', ['global NEFCON_STAT NEFCON_RSTATE NEFCON_BTN;' ... 
                     'NEFCON_STAT = NEFCON_STAT - 1;'... 
                     'NEFCON_BTN = 1;' ... 
                     'NEFCON_RSTATE = 0;' ... 
                     'nefgui(''status'');'],... 
	'Tag','bckb');  
 
    % create forward button  
    forwb = uicontrol(h, ...  
        'Style', 'push', ...  
        'String', '>', ...  
    	'Units','normalized', ...  
        'Position', [1-1*Nspacing-1*NbtnHt 1*Nspacing+NbtnHt NbtnHt NbtnHt], ...  
        'CallBack', ['global NEFCON_STAT NEFCON_RSTATE NEFCON_BTN;' ... 
                     'NEFCON_STAT = NEFCON_STAT + 1;'... 
                     'NEFCON_BTN = 1;' ... 
                     'NEFCON_RSTATE = 0;' ... 
                     'nefgui(''status'');'],... 
 	'Tag','forwb');  
 
% ---------------------------------------------  
% simulation settings frame  
% ---------------------------------------------  
    left    = Nspacing;  
    bottom  = 5*Nspacing+3*NbtnHt;  
    width   = 1-2*Nspacing;  
    height  = 3*NbtnHt+0*Nspacing;  
    right   = left+width;  
    top     = bottom+height-2*Nspacing;  
  
    % The current settings frame  
    topFrmHndl=uicontrol(h, ...  

⌨️ 快捷键说明

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