📄 nefdef.m
字号:
function nefdef();
%NEFDEF Set Nefcon defaults (checks if already set)
%
% NEFDEF;
%
% See also NEFCON, NEFGUI.
% 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_SYSNO NEFCON_PROT NEFCON_STAT NEFCON_UIH
global 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_GEN NEFCON_CONTR
global NEFCON_GENN NEFCON_ADDR NEFCON_MFIN NEFCON_MFOUT NEFCON_MFIT NEFCON_MFOT
global NEFCON_RRATE NEFCON_RPER
global NEFCON_STOP
global NEFCON_STAT
%nof cycles /actual cycle
global NEFCON_CYC NEFCON_ACTCYC
%actual input/output intervall and gain information
global NEFCON_INT NEFCON_GAIN
% systemname (set on start of any tool by nefdef)
global NEFCON_SYSNAME
global NEFCON_BTN
global NEFCON_STATEX
if NEFCON_SYSNAME == [],
NEFCON_SYSNAME = get_param;
end
if NEFCON_SYSNO == [],
NEFCON_SYSNO = 0;
end
if NEFCON_STAT == [],
NEFCON_STAT = 0;
end
if NEFCON_RULE == [],
NEFCON_RULE = 1; % bottom_up learning
end
if NEFCON_OPT == [],
NEFCON_OPT = 1; % nefcon modified
end
if NEFCON_RATE == [],
NEFCON_RATE = 0.01;
end
if NEFCON_FERR == [],
NEFCON_FERR = 1; % error calculation
end
if NEFCON_IFM == [],
NEFCON_IFM = ''; % fismatrix
end
if NEFCON_EFMN == [],
NEFCON_EFMN = ''; % fismatrix
end
if NEFCON_NUMIN == [],
NEFCON_NUMIN = 3; % nof inputs
end
if NEFCON_RBT == [],
NEFCON_RBT = 3; % cycles
end
if NEFCON_RBND == [],
NEFCON_RBND = 1; % nof units
end
if NEFCON_RBT1 == [],
NEFCON_RBT1 = 3; % cycles
end
if NEFCON_RBND1 == [],
NEFCON_RBND1 = 2; % nof units
end
if NEFCON_OBT == [],
NEFCON_OBT = 3; % cycles
end
if NEFCON_OBND == [],
NEFCON_OBND = 4; % nof units
end
if NEFCON_CYC == [],
if NEFCON_RBT == 3 & NEFCON_OBT == 3,
NEFCON_CYC = NEFCON_RBND + NEFCON_OBND; % nof cycles
else
NEFCON_CYC = 1; % nof cycles
end
end
if NEFCON_ACTCYC == [],
NEFCON_ACTCYC = 0; % act cycles
end
if NEFCON_GEN == [],
NEFCON_GEN = 1; % generator
sys = get_param;
if sys ~= []
if get_param([sys,'/Bounded SigGen'], 'position') ~= []
NEFCON_GEN = 2;
end
end
end
if NEFCON_CONTR == [],
NEFCON_CONTR = 1; % system
end
if NEFCON_GENN == [],
NEFCON_GENN = 1; % enable noise generation
end
if NEFCON_MFIN == [],
NEFCON_MFIN = 3; % nof mf's in input
end
if NEFCON_MFOUT == [],
NEFCON_MFOUT = 5; % nof mf's in output
end
if NEFCON_MFIT == [],
NEFCON_MFIT = 1; % trimf mf's in input
end
if NEFCON_MFOT == [],
NEFCON_MFOT = 1; % trimf mf's in output
end
if NEFCON_ADDR == [],
NEFCON_ADDR = 1; % enable rule adding during optimization
end
if NEFCON_STATEX == []; % one if status is to execute; 0 if skip
NEFCON_STATEX = ones(1, 7);
end
if NEFCON_RRATE == [],
NEFCON_RRATE = 1.0;
end
if NEFCON_RPER == [],
NEFCON_RPER = 0;
end
if NEFCON_STOP == [],
NEFCON_STOP = 0;
end
if NEFCON_BTN == [],
NEFCON_BTN = 0;
end
if NEFCON_GAIN == [] | NEFCON_INT == []
% get input/output intervall and gain information
gain = get_param([NEFCON_SYSNAME,'/Fuzzi/GainOut'],'Gain');
if gain == []
gain = 1;
else
gain = str2num(gain);
end
NEFCON_GAIN = gain; % output gain
NEFCON_INT = [-1 1]; % output intervall
for i = 1:NEFCON_NUMIN
nof = num2str(i);
ll = get_param([NEFCON_SYSNAME,'/Fuzzi/Saturation', nof],'Lower Limit');
ul = get_param([NEFCON_SYSNAME,'/Fuzzi/Saturation', nof],'Upper Limit');
gain = get_param([NEFCON_SYSNAME,'/Fuzzi/GainIn', nof],'Gain');
if ll == [] | ul == []
ll = -1;
ul = 1;
else
ll = str2num(ll);
ul = str2num(ul);
end
if gain == []
gain = 1;
else
gain = str2num(gain);
end
NEFCON_GAIN = [NEFCON_GAIN;gain];
NEFCON_INT = [NEFCON_INT;[ll ul]];
end
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -