snefsign.m

来自「模糊神经网络采用matlab编程 o install NEFCON follow」· M 代码 · 共 80 行

M
80
字号
function [sys, x0] = snefsign(t, x, u, flag); %SNEFCON SIMULINK s-function Nefcon Bounded Signal Generator %        This funtion interpolates bounds an signal at timestep t.%% See also NEFCON and NEFOPTF.     %	Author(s): Andreas Nuernberger, 08/1996  % NCD Globals: global NCD_LB NCD_UB NEFCON_SIGNAL 
%NEFCON globals
global NEFCON_BOUNDS
outp = 3; inp = 2;  if flag == 0     if NCD_LB == [] | NCD_UB == []         error('Bounds undefined.');     end     if NEFCON_SIGNAL == []         error('Signal undefined.');     end      sys = [0, 1, outp, inp, 0, 1];     ub = NCD_UB(3,1);     lb = NCD_LB(3,1);     sign = NEFCON_SIGNAL(2,1); 
    NEFCON_BOUNDS = [sign, ub, lb, u']; elseif flag == 3      % find bounds      t_max = NCD_UB(2, size(NCD_UB,2));     if t >= t_max         ub = NCD_UB(3,size(NCD_UB,2));         lb = NCD_LB(3,size(NCD_LB,2));         sign = NEFCON_SIGNAL(2, size(NEFCON_SIGNAL, 2));     elseif t <= NCD_UB(2,1)         ub = NCD_UB(3,1);         lb = NCD_LB(3,1);         sign = NEFCON_SIGNAL(2,1);     else         % interpolate         row = 2;         while NCD_UB(2,row) < t             row = row + 2;         end;         ub = NCD_UB(3,row-1) ...                 + (NCD_UB(3,row)-NCD_UB(3,row-1))/(NCD_UB(2,row)-NCD_UB(2,row-1)) ...                 * (t - NCD_UB(2,row-1));         row = 2;         while NCD_LB(2,row) < t             row = row + 2;         end;         lb = NCD_LB(3,row-1) ...                 + (NCD_LB(3,row)-NCD_LB(3,row-1))/(NCD_LB(2,row)-NCD_LB(2,row-1)) ...                 * (t - NCD_LB(2,row-1));         row = 2;         while NEFCON_SIGNAL(1,row) < t             row = row + 1;         end;         sign = NEFCON_SIGNAL(2,row-1) ...                 + (NEFCON_SIGNAL(2,row)-NEFCON_SIGNAL(2,row-1))/(NEFCON_SIGNAL(1,row)-NEFCON_SIGNAL(1,row-1)) ...                 * (t - NEFCON_SIGNAL(1,row-1));     end  
    sys = [sign, ub, lb];     NEFCON_BOUNDS = [sys, u']; else      sys = [];  end 

⌨️ 快捷键说明

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