📄 cmannobj.m
字号:
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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -