m基于GA遗传优化算法的陆基制导系统地面站布设策略matlab仿真,并输出GDOP值

本文涉及的产品
全球加速 GA,每月750个小时 15CU
简介: m基于GA遗传优化算法的陆基制导系统地面站布设策略matlab仿真,并输出GDOP值

1.算法描述

   遗传算法的起源可追溯到20世纪60年代初期。1967年,美国密歇根大学J. Holland教授的学生 Bagley在他的博士论文中首次提出了遗传算法这一术语,并讨论了遗传算法在博弈中的应用,但早期研究缺乏带有指导性的理论和计算工具的开拓。1975年, J. Holland等提出了对遗传算法理论研究极为重要的模式理论,出版了专著《自然系统和人工系统的适配》,在书中系统阐述了遗传算法的基本理论和方法,推动了遗传算法的发展。20世纪80年代后,遗传算法进入兴盛发展时期,被广泛应用于自动控制、生产计划、图像处理、机器人等研究领域。   

   遗传算法的基本运算过程如下: 

(1)初始化:设置进化代数计数器t=0,设置最大进化代数T,随机生成M个个体作为初始群体P(0)。
(2)个体评价:计算群体P(t)中各个个体的适应度。
(3)选择运算:将选择算子作用于群体。选择的目的是把优化的个体直接遗传到下一代或通过配对交叉产生新的个体再遗传到下一代。选择操作是建立在群体中个体的适应度评估基础上的。
(4)交叉运算:将交叉算子作用于群体。遗传算法中起核心作用的就是交叉算子。
(5)变异运算:将变异算子作用于群体。即是对群体中的个体串的某些基因座上的基因值作变动。群体P(t)经过选择、交叉、变异运算之后得到下一代群体P(t+1)。
(6)终止条件判断:若t=T,则以进化过程中所得到的具有最大适应度个体作为最优解输出,终止计算。

   遗传操作包括以下三个基本遗传算子(genetic operator):选择(selection);交叉(crossover);变异(mutation)。

1.1选择

   从群体中选择优胜的个体,淘汰劣质个体的操作叫选择。选择算子有时又称为再生算子。选择的目的是把优化的个体(或解)直接遗传到下一代或通过配对交叉产生新的个体再遗传到下一代。选择操作是建立在群体中个体的适应度评估基础上的,常用的选择算子有以下几种:适应度比例方法、随机遍历抽样法、局部选择法。  

1.2交叉

   在自然界生物进化过程中起核心作用的是生物遗传基因的重组(加上变异)。同样,遗传算法中起核心作用的是遗传操作的交叉算子。所谓交叉是指把两个父代个体的部分结构加以替换重组而生成新个体的操作。通过交叉,遗传算法的搜索能力得以飞跃提高。

1.3变异

   变异算子的基本内容是对群体中的个体串的某些基因座上的基因值作变动。依据个体编码表示方法的不同,可以有以下的算法: 

a)实值变异。
b)二进制变异。

GDOP((Geometric Dilution of Precision)几何精度因子,是衡量GNSS(Global Navigation Satellite System)全球导航卫星系统定位精度的指标。其分量包括:

PDOP( position dilution of precision ) 三维精度因子;

HDOP(horizontal dilution of precision) 水平精度因子;

VDOP(vertical dilution of precision)垂直几何精度因子;

TDOP(time dilution of precision)时间精度因子;

   对于经常要使用RTK的测量人来说,掌握一些使用过程中经常用到的专业术语是很有必要的,比如GDOP、差分测量、静态定位等等,了解这些有助于更加熟练地使用RTK,从而高效地进行测量作业。GDOP(Geometric dilution of precision)几何精度因子:包括经度,纬度,高程和时间等因子,称为几何精度因子。
  本算法的主要目的是通过优化布局策略,使得GDOP达到最小值。

2.仿真效果预览
matlab2022a仿真结果如下:

1.png
2.png

3.MATLAB核心程序

    %输出每一时刻的无人机位置    
    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
02_063m
相关文章
|
1天前
|
机器学习/深度学习 算法
基于心电信号时空特征的QRS波检测算法matlab仿真
本课题旨在通过提取ECG信号的时空特征并应用QRS波检测算法识别心电信号中的峰值。使用MATLAB 2022a版本实现系统仿真,涵盖信号预处理、特征提取、特征选择、阈值设定及QRS波检测等关键步骤,以提高心脏疾病诊断准确性。预处理阶段采用滤波技术去除噪声,检测算法则结合了一阶导数和二阶导数计算确定QRS波峰值。
|
1天前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于PSO粒子群优化的GroupCNN分组卷积网络时间序列预测算法matlab仿真
本项目展示了一种结合粒子群优化(PSO)与分组卷积神经网络(GroupCNN)的时间序列预测算法。该算法通过PSO寻找最优网络结构和超参数,提高预测准确性与效率。软件基于MATLAB 2022a,提供完整代码及详细中文注释,并附带操作步骤视频。分组卷积有效降低了计算成本,而PSO则智能调整网络参数。此方法特别适用于金融市场预测和天气预报等场景。
|
2天前
|
机器学习/深度学习 人工智能 自然语言处理
深度学习中的优化算法
本文将探讨深度学习中的几种常见优化算法,包括梯度下降、动量方法、AdaGrad、RMSProp和Adam。这些算法在训练神经网络时发挥着重要作用,通过调整学习率和更新策略,能够显著提高模型的训练效率和性能。了解这些优化算法有助于更好地应用深度学习技术解决实际问题。
|
1月前
|
安全
【2023高教社杯】D题 圈养湖羊的空间利用率 问题分析、数学模型及MATLAB代码
本文介绍了2023年高教社杯数学建模竞赛D题的圈养湖羊空间利用率问题,包括问题分析、数学模型建立和MATLAB代码实现,旨在优化养殖场的生产计划和空间利用效率。
106 6
【2023高教社杯】D题 圈养湖羊的空间利用率 问题分析、数学模型及MATLAB代码
|
1月前
|
存储 算法 搜索推荐
【2022年华为杯数学建模】B题 方形件组批优化问题 方案及MATLAB代码实现
本文提供了2022年华为杯数学建模竞赛B题的详细方案和MATLAB代码实现,包括方形件组批优化问题和排样优化问题,以及相关数学模型的建立和求解方法。
79 3
【2022年华为杯数学建模】B题 方形件组批优化问题 方案及MATLAB代码实现
|
1月前
|
数据采集 存储 移动开发
【2023五一杯数学建模】 B题 快递需求分析问题 建模方案及MATLAB实现代码
本文介绍了2023年五一杯数学建模竞赛B题的解题方法,详细阐述了如何通过数学建模和MATLAB编程来分析快递需求、预测运输数量、优化运输成本,并估计固定和非固定需求,提供了完整的建模方案和代码实现。
62 0
【2023五一杯数学建模】 B题 快递需求分析问题 建模方案及MATLAB实现代码
|
4月前
|
数据安全/隐私保护
耐震时程曲线,matlab代码,自定义反应谱与地震波,优化源代码,地震波耐震时程曲线
地震波格式转换、时程转换、峰值调整、规范反应谱、计算反应谱、计算持时、生成人工波、时频域转换、数据滤波、基线校正、Arias截波、傅里叶变换、耐震时程曲线、脉冲波合成与提取、三联反应谱、地震动参数、延性反应谱、地震波缩尺、功率谱密度
基于混合整数规划的微网储能电池容量规划(matlab代码)
基于混合整数规划的微网储能电池容量规划(matlab代码)
|
4月前
|
算法 调度
含多微网租赁共享储能的配电网博弈优化调度(含matlab代码)
含多微网租赁共享储能的配电网博弈优化调度(含matlab代码)
|
4月前
|
Serverless
基于Logistic函数的负荷需求响应(matlab代码)
基于Logistic函数的负荷需求响应(matlab代码)