陆基制导系统地面站布设策略

该博客介绍了使用遗传算法优化陆基制导系统地面站的布设策略。通过MATLAB代码实现,仿真过程中考虑了雷达的部署范围限制,并以GDOP(几何 Dilution Of Precision)作为目标函数进行优化。仿真结果显示了遗传算法的迭代过程及最终部署结果,以最小化定位误差为目标,实现了地面站的有效布局。
摘要由CSDN通过智能技术生成

1.问题描述:

陆基制导系统地面站布设策略

2.部分程序:

 

clc;
clear;
close all;
warning off;
addpath 'func\'
addpath 'GA_toolbox\'
global SCALE
SCALE = 10e3;
global STEPS
STEPS = 1e3;
 
 

for tt=1:1%为了仿真速度快点,这里只显示某一个时刻的部署结果
    %输出每一时刻的无人机位置    
    if mod(tt,1000) == 1%每1000s更新一次部署,这个1000可以自己修改
       target_pos= [1e3, 10e3, 0]';
    end

    N      = 3;%机动站个数,自己可以调整,调整后重新运行即可。 
    MAXGEN = 100;
    NIND   = 50;
    Nums   = 3*N; %
    Chrom  = crtbp(NIND,Nums*10);

    %sh
    Areas = [];
    %设置地图的最大范围
    for i = 1:2*N
        Areas = [Areas,[-SCALE;SCALE]];%雷达最大部署范围距离
    end
    for i = 1:N
        Areas = [Areas,[0;100]];%雷达最大部署范围距离
    end
    
    FieldD = [rep([10],[1,Nums]);Areas;rep([0;0;0;0],[1,Nums])];

    gen   = 0;

    %计算对应的目标值
    tmps         = repmat([400],[1,Nums]);
    X            = tmps;%初始值
    [fobj,Vgdop] = func_obj(X,target_pos);
    E            = fobj;
    Js           = E*ones(NIND,1);
    Objv         = (Js+eps);
    gen          = 0; 

    while gen < MAXGEN;   
          gen
          rng(gen);
          Pe0 = 0.995;
          pe1 = 0.005; 

          FitnV=ranking(Objv);    
          Selch=select('sus',Chrom,FitnV);    
          Selch=recombin('xovsp', Selch,Pe0);   
          Selch=mut( Selch,pe1);   
          phen1=bs2rv(Selch,FieldD);   

          for a=1:1:NIND  
              X1          = phen1(a,:);
              %计算对应的目标值
              [fobj,Vgdop]= func_obj(X1,target_pos);
              JJ(a,1)     = fobj;
              XYp{a}      = X1;
              Vp{a}       = Vgdop;
          end 
          Objvsel=(JJ);    
          [Chrom,Objv]=reins(Chrom,Selch,1,1,Objv,Objvsel);   
          gen=gen+1; 
          %保存参数收敛过程和误差收敛过程以及函数值拟合结论
          Error(gen) = mean(JJ);
    end 

    figure;
    plot(Error,'linewidth',2);
    grid on
    xlabel('迭代次数');
    ylabel('遗传算法优化过程');

    %根据优化结果输出部署结果
    figure;    
    [V,I] = min(JJ);
    XY    = XYp{I};
    Gdop  = Vp{a};
    X     = XY(1:length(XY)/3);
    Y     = XY(1+length(XY)/3:2*length(XY)/3);
    Z     = XY(1+2*length(XY)/3:end);
    JZ_pos= [X',Y',Z'];
    x     =-2*SCALE:STEPS:2*SCALE;
    y     =-2*SCALE:STEPS:2*SCALE;
    xx    = [0:0.5:20];
    [c,handle]=contour(x/1e3,y/1e3,Gdop,xx);
    clabel(c,handle);
    hold on;
    plot(JZ_pos(:,1)/1e3,JZ_pos(:,2)/1e3,'r.');
    xlabel('x(km)')
    ylabel('y(km)')
    title('GDOP图')

end

3.仿真结论:

A06-63

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

fpga和matlab

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值