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

📄 example5_19.m

📁 MATLAB7辅助控制系统设计与仿真 第5章
💻 M
字号:
%维数n=5
%车间尺寸
H=5;
G=5;
%x方向尺寸向量
S=[3 1 1.5 1.5 0.8];
smin=min(S)/2;
%y方向尺寸向量
L=[3 0.8 0.8 0.8 0.7];
lmin=min(L)/2;
%设备x,y在x方向上的最小间距
dxijmin=0.8;
%设备x,y在y方向上的最小间距
dyijmin=0.5;
%设置参数边界
bounds =[smin H;smin H;smin H;smin H;smin H;
lmin G;lmin G;lmin G;lmin G;lmin G];
% 生成初始种群,大小为10,且满足约束条件
flag=0;
while flag<11
  init=initializega(1,bounds,'f554');
  x(1:5)=init(1:5);
  y(1:5)=init(6:10);
  
  for i=1:5
      for j=1:5
        delta1(i,j)=abs(x(i)-x(j))-(S(i)+S(j))/2-dxijmin;
        delta2(i,j)=abs(y(i)-y(j))-(L(i)+L(j))/2-dyijmin;    
      end
  end
  
  %约束1
  delta11=min(min(delta1));
  %约束2
  delta22=min(min(delta2));
  
  summ1=0;
  for i=1:4
    summ1=summ1+abs(x(i)-x(i+1))+(S(i)+S(i+1))/2;
  end
  %约束3
  summ11=H-summ1;
  
  summ2=0;
  for i=1:4
    summ2=summ2+abs(y(i)-y(i+1))+(L(i)+L(i+1))/2;
  end
  %约束4
  summ22=G-summ2;
  
  if ((delta11>=0)&(delta22>=0)&(summ11>=0)&(summ22>=0))
    flag=flag+1;
    initPop(flag,:)=init;
  else
    continue;
  end
end
% 调用遗传函数
[p endPop bpop trace] = ga(bounds,'f554',[],initPop,[1e-5 1 1],'maxGenTerm',100,…
'normGeomSelect',[0.08],['arithXover'], [20], 'nonUnifMutation',[2 1 3]);

⌨️ 快捷键说明

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