cmannobj.m

来自「这是一个遗传算法的优化软件」· M 代码 · 共 55 行

M
55
字号
function tobj=cmannobj(tw,popsize,lchrom,differ,gs)
global  rin yout G time cm_c cm_ino cm_ono
%小脑神经网络适应度函数
G=100;
ts=0.01;
tobj=0;
s=0;
dsys=c2d(gs,ts,'z');
[num,den]=tfdata(dsys,'v');
tu=0;
r=1.0;
cmr=1;
cmy=1;
u_1=0.0;u_2=0.0;u_3=0.0;
y_1=0.0;y_2=0.0;y_3=0.0;
for tt=1:1:G
    rin(tt)=r;
    time(tt)=tt;
    u_2=u_1;u_3=u_2;
    y_2=y_1;y_3=y_2;
    if r<-10
        cmr=1;
    elseif r>10
        cmr=cm_ino;
    else cmr=round((r+10)*(cm_ino-1)/20)+1;
    end
    if y_1<-10
        cmy=1;
    elseif y_1>10
        cmy=cm_ono;
    else cmy=round((y_1+10)*(cm_ono-1)/20)+1;
    end
    
    u_1=r*sum(tw(cmr:cmr+cm_c-1))+y_1*sum(tw(cmy+9:cmy+9+cm_c-1));
        
 %   if u_1>=10
  %      u_1=10;
  %  end
 %   if u_1<=-10
  %      u_1=-10;
  %  end   
    eval(differ);
    y_1=yout(tt);
    e=rin(tt)-yout(tt);
    tobj=tobj+0.999*abs(e)+0.001*u_1^2;
    if s==0
        if yout(tt)>0.95&yout(tt)<1.05
           tu=tt;
           s=1;
        end 
    end
   
end
tobj=tobj+1.0000e-006+tu;
tobj=100/tobj;

⌨️ 快捷键说明

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