基于遗传算法的稀布阵.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于遗传算法的稀布阵

%主函数,位于x轴上的不等间距直线阵列,参考文献《一种有阵元间距约束的稀布阵天线综合方法——陈客松》 clc,clear,clf; format; T1=clock; s1=sprintf(程序正在运行中,请稍等......); disp(s1); N=35; %阵元数 L=50; %阵列孔径 dc=0.5; %最小阵元间距 SP=L-(N-1)*dc; %SP为孔径上剩余布阵区间长度 popsize=200; %设置初始种群规模 pc0=0.7; %设置初始交叉概率 pm0=0.01; %设置初始变异概率 numitera=800; %设置迭代次数 chromlength=N-2; %设置初始决策变量个数 In=1; %设各个阵元激励是等幅同相的 res=1800; %设置采样点数,也就是分辨率 theta=0:pi/res:pi; %theta 是观察方向与阵轴的夹角 theta0=90/180*pi; %theta0 为波束指向,当为 0.5*pi 时为侧射阵 u=cos(theta)-cos(theta0); pop=initpop(popsize,chromlength,SP,L,dc);%运行初始化函数,产生初始化种群 num=1; %初始化循环变量(现在是只有完成所要求的迭代次数,循环才会终止) bestindividual=ones(numitera,N+1); %保存每次迭代的最佳值 while num=numitera %设置程序终止条件 [SLLmax,Elog]=calobjvalue(pop,popsize,N,u,res);%计算目标函数,并求出最大峰值旁瓣 fitvalue=calfitvalue(SLLmax,popsize);%计算适应度值的大小 newpop=select(fitvalue,popsize,pop); %newpop为经过轮盘赌选择之后的新的种群 newpop1=pretreat(newpop,popsize,dc,chromlength);%遗传操作预处理 newpop2=crossover(newpop1,popsize,pc0,N); %进行交叉运算 newpop3=mutation(newpop2,popsize,pm0,N,SP); %进行变异运算 newpop4=posttreat(newpop3,popsize,dc,chromlength);%遗传操作后处理 %遗传操作之后再重新计算适应度函数大小 [newSLLmax,newElog]=calobjvalue(newpop4,popsize,N,u,res); newfitvalue=calfitvalue(newSLLmax,popsize); %求出最佳个体,并保存最小峰值旁瓣和最佳个体 [Minvalue,Index]=min(newfitvalue); bestindividual(num,1)=Minvalue; %每一代中的最小峰值旁瓣保存在第一列 bestindividual(num,2:N+1)=newpop4(Index,:); %每一代最小峰值旁瓣所对应的最优染色体(也即是阵元所在的位置) pop=newpop4; %重新赋值进行循环 num=num+1; %自变量加1 end %求出bestindividual中的最小值及最优染色体 bestindividual1=abs(bestindividual); %取绝对值 [Minfit,I]=max(bestindividual1(:,1)); %求出 bestindividual1 中最大值,也就是 bestindividual 中的最小值及其所在的行 Minfit=-1*Minfit; %求出最低峰值旁瓣电平 chromosome=bestindividual(I,2:N+1); %最优染色体 str1=sprintf(进化到第%d代\n,I); str2=sprintf(对应的染色体:%s\n,num2str(chromosome)); str3=sprintf(最优值为:%.3f\n,Minfit); disp(str1); disp(str2); disp(str3); %画出方向图 S=zeros(1,length(u));

文档评论(0)

kaiss + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档