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