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

📄 antsimu.m

📁 蚁群算法优化PID参数..只运行ant.m这个文件就行了
💻 M
字号:
function [y,f]=antsimu(kp,ti,td)
%kp=0.5;ti=2;td=2;
a=[0,1,0;0,0,1;-1,-2,-3];b=[0;0;1];c=[5,0,0];d=0;
t1=-a(3,3);t2=-a(3,2);t3=-a(3,1);t4=0;t5=c(1)*kp*td;t6=c(1)*kp;t7=c(1)*kp/ti;

h=0.01;%T=0.005;
for n=1:2002
u(n)=0;e(n)=0;y(n)=0;
end%ef(i,j)=0;ym(i,j)=0;%e为控制器输入,ef为输出偏差;

%初始状态置零
     x1=0;x2=0;x3=0;f=0;x4=0;

%龙格库塔求控制作用
for m=1:20/h
    %for n=1:1:2
        %if m==1
            %e(m)=1;
            %else
               %e(m)=1-y(m-1);
               %end
    %end
  %u(m+2)=u(m+1)+kp*(e(m+2)-e(m+1))+kp/ti*e(m+2)+kp*td*(e(m+2)-2*e(m+1)+e(m));
  %ut=u(m+2);
  %x1=0;x2=0;x3=0;x4=0;
    %龙格库塔求输出
k11=h*x2;
k21=h*x3;
k31=h*x4;
k41=h*(-t4*x1-t3*x2-t2*x3-t1*x4+e(m));

k12=h*(x2+0.5*k21);
k22=h*(x3+0.5*k31);
k32=h*(x4+0.5*k41);
k42=h*(-t4*(x1+0.5*k11)-t3*(x2+0.5*k21)-t2*(x3+0.5*k31)-t1*(x4+0.5*k41)+e(m));

k13=h*(x2+0.5*k22);
k23=h*(x3+0.5*k32);
k33=h*(x4+0.5*k42);
k43=h*(-t4*(x1+0.5*k12)-t3*(x2+0.5*k22)-t2*(x3+0.5*k32)-t1*(x4+0.5*k42)+e(m));

k14=h*(x2+k23);
k24=h*(x3+k33);
k34=h*(x4+k43);
k44=h*(-t4*(x1+k13)-t3*(x2+k23)-t2*(x3+k33)-t1*(x4+k43)+e(m));

x1=x1+(k11+2*k12+2*k13+k14)/6;
x2=x2+(k21+2*k22+2*k23+k24)/6;
x3=x3+(k31+2*k32+2*k33+k34)/6;
x4=x4+(k41+2*k42+2*k43+k44)/6;
            
                y(m)=t7*x1+t6*x2+t5*x3;
                
                e(m+1)=1-y(m);
                f=f+abs((m)*e(m+1));
                %if y(m)>1.1
                    %break;f=0;
                    %end
                
end

%plot(y(1,:),'r');

⌨️ 快捷键说明

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