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

📄 pidannobj.m

📁 这是一个遗传算法的优化软件
💻 M
字号:
function tobj=pidannobj(twrh,twho,popsize,lchrom,differ,gs)
global  rin yout G time
G=100;
ts=0.01;
tobj=0;
s=0;
%sys=;  
dsys=c2d(gs,ts,'z');
[num,den]=tfdata(dsys,'v');
tu=0;
r=1.0;
e=1.0;
ce=0;se=e;
u_1=0.0;u_2=0.0;u_3=0.0;
y_1=0.0;y_2=0.0;y_3=0.0;
hr=[1,0,0];
hy=[0,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;
    hr(1)=twrh(1,1)*r+twrh(2,1)*y_1;
    hr(2)=twrh(1,2)*r+twrh(2,2)*y_1;
    hr(3)=twrh(1,3)*r+twrh(2,3)*y_1;
        hy(1)=hr(1);
        hy(2)=hy(2)+hr(2);
        hy(3)=hr(3)-hy(3);
        if(hy(2)>8)
            hy(2)=8;
        end
        if(hy(2)<-8)
            hy(2)=-8;
        end
        u_1=hy*twho;
        
        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
        if tt>1   
            erry=yout(tt)-yout(tt-1);
            if erry<0
                tobj=tobj+abs(erry);
            end    
        end
    end
tobj=tobj+1.0000e-006+tu;
tobj=100/tobj;

⌨️ 快捷键说明

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