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

📄 fruleobj.m

📁 这是一个遗传算法的优化软件
💻 M
字号:
function tobj=fruleobj(rule,inmf,outmf,park,popsize,differ,gs)
%模糊规则优化适值函数
global yout rin time
G=100;
ts=0.01;
tobj=0;
s=0;
  
dsys=c2d(gs,ts,'z');
[num,den]=tfdata(dsys,'v');
tu=0;
e=1.0;
ce=0;
u_1=0.0;u_2=0.0;u_3=0.0;
y_1=0.0;y_2=0.0;y_3=0.0;
r=12.0;
for tt=1:1:G
    rin(tt)=12;
    time(tt)=tt;
        u_2=u_1;
        u_3=u_2;
        %1
        d_e=fa2d(e,park(1),7);
        d_ce=fa2d(ce,park(2),7);
        %2
        f_e=fd2f(d_e,7,inmf,-7,7);
        f_ce=fd2f(d_ce,7,inmf,-7,7);
        %3
        f_u=zeros(1,7);
        for i=1:1:7
            for j=1:1:7
                ind=rule(i,j);
                if(ind~=0)
                    f_u(ind)=f_u(ind)+min(f_e(i),f_ce(j));
                end
            end
        end
        %4
        f_x=0;
        f_y=0;
        for i=-7:1:7
            f_k=0;
            for j=1:1:7
                f_k=f_k+min(outmf(i+8,j),f_u(j));
            end
            f_x=f_x+i*f_k;
            f_y=f_y+f_k;
        end
        if f_y~=0
            u_1=park(3)*f_x/f_y;
        end
        if u_1>=20
            u_1=20;
        end
        if u_1<=-10
            u_1=-10;
        end   
        eval(differ);
        y_2=y_1;
        y_3=y_2;
        y_1=yout(tt);
        ce=r-yout(tt)-e;
        e=r-yout(tt);
        tobj=tobj+0.999*abs(e)+0.01*u_1^2*0.1;
        if s==0
            if yout(tt)>0.95&yout(tt)<1.05
                tu=tt;
                s=1;
            end 
        end
        if tt>1   
            erry=yout(tt)-yout(tt-1);
            if erry<0
                tobj=tobj+10*abs(erry);
            end    
        end
    end
tobj=tobj+1.0000e-006+2*tu;
tobj=100/tobj;

⌨️ 快捷键说明

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