汽车和山羊问题matlab仿真_Matlab----无人机集群对抗中的关键问题和仿真平台(开发中)案例...

无人机集群对抗,是自动驾驶中路径规划的新问题,并且连续两年出现在最近的中国大学生数学建模竞赛中。可见,这是一个急需解决的数学问题(体现了官方的军事战略意志),同时,还没有成熟解决方案的问题。

本人在自动驾驶无人艇领域也会碰到类似的路径规划的问题。海军装备每年组织的海上竞赛中,多无人艇编队的拦截、追踪、护航、穿插,都是军用无人艇的必考项目。

本文主要根据前期《无人机集群协同对抗仿真案例(2020数学建模MCM试题)》一题的工作研究,总结了一些基本方法。同时,这些方法,将会收录到无人机集群协同对抗工具包中。

若谷:Matlab仿真----无人机集群协同对抗仿真案例(2020数学建模MCM试题)​zhuanlan.zhihu.com
7e556f243f89e5df0dc2a1e9c29ed7f6.png

有兴趣的朋友,可以加微信,继续沟通。

若谷:《自动驾驶行业交流群》及公约​zhuanlan.zhihu.com
83e35172296342547e18374ce6075684.png

零、无人机集群对抗问题的关键问题

无人机集群对抗是未来无人机作战的重要模式,它是一群无人机对另一群无人机进行拦截而形成的空中协作式的缠斗,对抗中无人机具有自组织、自适应特点和拟人思维属性,通过感知环境,对周围态势进行判断,依据一定的行为规则,采取攻击、避让、分散、集中、协作、援助等有利策略,使得在整体上涌现出集群对抗系统的动态特性。

本文及后面一篇文章,将会重点分享无人机集群对抗仿真中的数学建模方法。

  1. 无人机集群协同对抗演化过程机理及其表述

由于集群对抗中信息的多元化和不完全、不确定性,对抗系统是一个复杂的动态随机过程,空战对抗态势随着时空不断演化,每个无人机作为一个智能体必须依据不断变化的态势并依据一定的准则调整自己的策略,进行己方个体之间的合作、与对方的博弈。因此,在充分分析无人机集群对抗演化过程特点及其内涵的基础上,理解无人机集群对抗的非线性动态过程演化机,利用系统动力学和复杂系统理论建立各种因素的相互作用和信息的传递关系的网络拓扑架构,利于对无人机集群对抗过程的定量和定性分析。

6f07ca52931941ee80cc78988ccaff73.png

2. 无人机自适应自主决策对抗行为

集群对抗中,无人机个体是直接动作发出和执行者,无人机个体不断与环境进行交互并相互作用,促使对抗过程不断演化。因此,集群对抗最终是要依赖于无人机的对抗规则,即无人机依据敌方态势、友机态势及自身飞行状态、武器状况、健康情况等因素,采取某种机动和攻击策略,如攻击敌机、威胁回避、支援友机、战术协同,使在最大化对敌杀伤、对敌态势、瓦解敌方意图和最小化自身损失等方面的综合效益取得最大化。

0d055425efffd1d5cde6926532e33657.png

3. 无人机集群智能控制方法

暂时略

4. 无人机集群探测与识别

复杂而多变的集群对抗环境具有极大的状态不确定性和极强的时间约束,对于敌我双方大规模无人机个体和集群进行精确地探测和识别是对抗行为成功与否的先决条件。

cfa71047d8e2e5ffe0b5979538a8f87b.png

5.无人机集群对抗态势评估

态势评估是对抗决策的依据,由于集群对抗威胁可以来自任意方向,数量多,友机与敌方飞机相互缠绕,信息量大,且存在不完全、不确定性,态势评估比单机对抗情况复杂的多。这就需要集群中每个无人机利用其对周围环境的感知信息和接收到的邻近友机传来的信息,根据所获得的综合数据信息进行数据挖掘,分析理解敌方的作战意图、战术战法。

3ad5bb93764ba1449aa201613c053894.png

6.无人机集群通信技术

暂时略

根据海军装备技术的发展纲要,军用低轨通信卫星,是十五规划的重点。

一、基于拐弯半径限制的前进方向角度

function [Angle_Left, Angle_Right] = UAVForwardDirection_TurningRadius(UAV_Motion_Status, UAV_Speed, StepTime, TurningRadius)

% Function: 根据过去一步的运动方向(历史轨迹,x,y,Angle_Motion),基于拐弯半径的限制,以及步长和飞行速度,计算下一步的运动方向范围。

fdaab09283afb2cef9155643b699560e.png
function [Angle_Left, Angle_Right] = UAVForwardDirection_TurningRadius(UAV_Motion_Status, UAV_Speed, StepTime, TurningRadius)
%% Definition
% Input:
% UAV_Motion_Status:[x,y,Direction]*1, UAV的运动轨迹
% UAV_Speed: x m/s, 比如250m/s
% StepTime: x s仿真步长,比如0.2s
% TurningRadius: x km, N个红色UAV运输机,即红色UAV的中心位置
% Output: 
% Angle_Left, Angle_Right: 前行方向的左右边界(指北为零,顺时针为正,范围是[0, 2*pi)  )
% Function: 根据过去一步的运动方向(历史轨迹,x,y,Angle_Motion),基于拐弯半径的限制,以及步长和飞行速度,计算下一步的运动方向范围。
%% Steps:
% 1 获取BlueUAV_Trajectory的维度;
% 2 如果维度为1,直接向右方(默认的飞行方向),出行一个步长;
% 3 如果维度为2,向外延伸一个步长;
% 4 如果维度大于或等于3,向外延伸,取得方向,再延伸一个步长;
% Author: ruogu7(380545156@qq.com)
% Date: Sep, 28th.
% Latest update: Sep, 28th.
% Example:
% UAV_Motion_Status = [0 25 90]  
% UAV_Speed = 0.25   % km/s
% StepTime = 0.4;  % s
% TurningRadius = 0.5  % km
% [Angle_Left, Angle_Right] = UAVForwardDirection_TurningRadius(UAV_Motion_Status, UAV_Speed, StepTime, TurningRadius)
% Arc_length = UAV_Speed * StepTime;
Arc_Angel = Arc_length/(TurningRadius*2*pi); 
TurnningAngle = Arc_Angel/2;% 前行方向的左右边界(指北为零,顺时针为正,范围是[0, 2*pi)
% Angle_Left, Angle_Right  
Temp_Angle_Left = UAV_Motion_Status(1,3)*pi/180 - TurnningAngle + 2*pi;
Angle_Left = Temp_Angle_Left - fix(Temp_Angle_Left/(2*pi))*(2*pi);Temp_Angle_Right = UAV_Motion_Status(1,3)*pi/180 + TurnningAngle + 2*pi;
Angle_Right = Temp_Angle_Right - fix(Temp_Angle_Left/(2*pi))*(2*pi);

二、两个点的相对方位角

function [azimuth, dist ] = GetAzimuth_2points(point1, point2)

功能:求Point1相对与Point2的相对方位和距离
% point的格式:[x,y]
% azimuth: 指北方向为0度,然后顺时针为正,直到360度,保留1位小数

function [azimuth, dist ] = GetAzimuth_2points(point1, point2)
%% 功能:求Point1相对与Point2的相对方位和距离
% point的格式:[x,y]
% azimuth: 指北方向为0度,然后顺时针为正,直到360度,保留1位小数
% point1 = [-1 1];
% point2 = [1 -1];
% [azimuth, dist ] = GetAzimuth_2points(point1, point2)P_local = [point1(1)-point2(1) point1(2)-point2(2)];dist = sqrt(P_local(1)^2+P_local(2)^2);sin_value = P_local(2)/dist;
cos_value = P_local(1)/dist;if (P_local(1)>=0) && (P_local(2)>=0)  % 第一象限azimuth = 90-asin(P_local(2)/dist) * 180/pi;return;
end
if (P_local(1)<=0) && (P_local(2)>=0)   % 第二象限azimuth = asin(P_local(2)/dist)*180/pi+270 return;
end
if (P_local(1)<=0) && (P_local(2)<=0)   % 第三象限azimuth = 180 + asin(-P_local(1)/dist) * 180 / pi;return;
end
if (P_local(1)>=0) && (P_local(2)<=0)   % 第四象限azimuth = 180 - asin(P_local(1)/dist) * 180 / pi;return;
end

三、根据历史轨迹,预测其轨迹

function BlueUAV_Location_next =Forecast_BlueUAV_Location(BlueUAV_Trajectory,BlueUAV_speed,N)

(预防后面求多个位置的根据要求,计算% Output: BlueUAV_Location_next(x,y)% function: 基于BlueUAV的轨迹,预测其下一时刻的位置

function BlueUAV_Location_next = Forecast_BlueUAV_Location(BlueUAV_Trajectory,BlueUAV_speed,N)
% BlueUAV_Trajectory:[x,y] * N
% BlueUAV_speed: 0.3km/s
% N: N个步长。(预防后面求多个位置的根据要求,计算
% Output: BlueUAV_Location_next(x,y)
% function: 基于BlueUAV的轨迹,预测其下一时刻的位置
% Steps:
% 1 获取BlueUAV_Trajectory的维度;
% 2 如果维度为1,直接向右方(默认的飞行方向),出行一个步长;
% 3 如果维度为2,向外延伸一个步长;
% 4 如果维度大于或等于3,向外延伸,取得方向,再延伸一个步长;
% Author: ruogu7(380545156)
% Date: sep, 21th.
% Latest update: sep, 21th.
% Example:
% BlueUAV_Trajectory = [ 2  3 ; 3  4 ; 4  5; 5  6;]  
% BlueUAV_speed = 0.25
% N  = 1;
% BlueUAV_Location_next = Forecast_BlueUAV_Location(BlueUAV_Trajectory,BlueUAV_speed,N)
% 
% import math.*Num_Points_BlueUAV_Trajectory = size(BlueUAV_Trajectory,1)
BlueUAV_Trajectory
if Num_Points_BlueUAV_Trajectory == 1% xBlueUAV_Location_next(1,1) =  BlueUAV_Trajectory(1,1) + BlueUAV_speed * N;% yBlueUAV_Location_next(1,2) =  BlueUAV_Trajectory(1,2);return;
end 
if Num_Points_BlueUAV_Trajectory == 2% 确定方向[azimuth_BlueUAV, dist ] = GetAzimuth_2points(BlueUAV_Trajectory(2,:), BlueUAV_Trajectory(1,:))% xBlueUAV_Location_next(1,1) =  BlueUAV_Trajectory(end,1) + BlueUAV_speed * N * cos((360-(azimuth_BlueUAV-90))*pi/180);% yBlueUAV_Location_next(1,2) =  BlueUAV_Trajectory(end,2) + BlueUAV_speed * N * sin((360-(azimuth_BlueUAV-90))*pi/180);return;
end % 当轨迹点的数量等于3
if Num_Points_BlueUAV_Trajectory == 3% 确定方向% 连续两个中点的相对方位,作为整体方位。Front_centor = [(BlueUAV_Trajectory(1,1) + BlueUAV_Trajectory(2,1))/2 (BlueUAV_Trajectory(1,2) + BlueUAV_Trajectory(2,2))/2]Back_centor = [(BlueUAV_Trajectory(2,1) + BlueUAV_Trajectory(3,1))/2 (BlueUAV_Trajectory(2,2) + BlueUAV_Trajectory(3,2))/2][azimuth_Red, dist ] = GetAzimuth_2points(Back_centor, Front_centor)% import math.*% x = 1:100;% y = -0.3*x + 2*randn(1,100);% [p,S] = polyfit(x,y,1);% azimuth_BlueUAV = math.atan(p(1))% xBlueUAV_Location_next(1,1) =  BlueUAV_Trajectory(end,1) + BlueUAV_speed * N * cos((360-(azimuth_Red-90))*pi/180);% yBlueUAV_Location_next(1,2) =  BlueUAV_Trajectory(end,2) + BlueUAV_speed * N * sin((360-(azimuth_Red-90))*pi/180);return;
end % 当轨迹点的数量多于3,则基于最后4个轨迹点,进行线性回归
if Num_Points_BlueUAV_Trajectory > 3% 确定方向% 连续两个中点的相对方位,作为整体方位。Front_centor = [(BlueUAV_Trajectory(1,1) + BlueUAV_Trajectory(2,1))/2 (BlueUAV_Trajectory(1,2) + BlueUAV_Trajectory(2,2))/2]Back_centor = [(BlueUAV_Trajectory(3,1) + BlueUAV_Trajectory(4,1))/2 (BlueUAV_Trajectory(3,2) + BlueUAV_Trajectory(4,2))/2][azimuth_Red, dist ] = GetAzimuth_2points(Back_centor, Front_centor)% import math.*% x = 1:100;% y = -0.3*x + 2*randn(1,100);% [p,S] = polyfit(x,y,1);% azimuth_BlueUAV = math.atan(p(1))% xBlueUAV_Location_next(1,1) =  BlueUAV_Trajectory(end,1) + BlueUAV_speed * N * cos((360-(azimuth_Red-90))*pi/180);% yBlueUAV_Location_next(1,2) =  BlueUAV_Trajectory(end,2) + BlueUAV_speed * N * sin((360-(azimuth_Red-90))*pi/180);return;
end 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/538149.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用durid的ConfigFilter对数据库密码加密

原文连接&#xff1a;http://blog.csdn.net/aixiaoyang168/article/details/49930513 ----------------------------------------------------------------------- 对于大部分程序员来说&#xff0c;数据库的信息&#xff0c;如用户名&#xff0c;密码等信息一般都写到配置文件…

序(不知道是什么时候的模拟题)

序 【问题背景】 zhx 给他的妹子们排序。 【问题描述】 \(zhx\) 有 \(N\) 个妹子&#xff0c; 他对第 \(i\) 个妹子的好感度为\(a_i\), 且所有\(a_i\),两两不相等。 现在 \(N\) 个妹子随意站成一排&#xff0c; 他要将她们根据好感度从小到大排序。 他使用的是冒泡排序算法&…

html写用户导入,用户基本信息录入.html

&#xfeff;用户基本信息录入$axure.utils.getTransparentGifPath function() { return resources/images/transparent.gif; };$axure.utils.getOtherPath function() { return resources/Other.html; };$axure.utils.getReloadPath function() { return resources/reload.…

adg oracle 架构_技术栈数据中心有了ADG架构就高枕无忧了?你还需要做这一步!...

技术栈数据中心有了ADG架构&#xff0c;就高枕无忧了&#xff1f;你还需要做这一步&#xff01;如果把数据中心建设比喻成西天取经&#xff0c;那旅途上的九九八十一难就是我们不得不躲闪、跨越、攻坚的堡垒。即日起&#xff0c;希嘉推出“技术栈”板块&#xff0c;集结数据治理…

String length must be a multiple of four.

今天在整理2013年的工作时的一个项目&#xff0c;修改了数据库连接&#xff0c;初始化数据库&#xff0c;部署运行报错&#xff0c;主要原因是阿里巴巴druid报错&#xff0c;导致DataSource初始化失败。 druid报错日志&#xff1a; Caused by: java.lang.IllegalArgumentExce…

论文笔记:Person Re-identification with Deep Similarity-Guided Graph Neural Network

Person Re-identification with Deep Similarity-Guided Graph Neural Network 2018-07-27 17:41:45 Paper&#xff1a; https://128.84.21.199/pdf/1807.09975.pdf 本文将 Graph Neural Network (GNN) 应用到 person re-ID 的任务中&#xff0c;用于 model 不同 prob-gallery …

CGLib动态代理原理及实现

原文连接&#xff1a;http://songbo-mail-126-com.iteye.com/blog/968792 ------------------------------------------------------------------------ JDK实现动态代理需要实现类通过接口定义业务方法&#xff0c;对于没有接口的类&#xff0c;如何实现动态代理呢&#xff…

微型计算机的硬件组成中ssd硬盘通常是指,2015年计算机一级msoffice选择题121道及答案...

31、通常&#xff0c;在微机中标明的P4或奔腾4是指( D )A、产品型号B、主频C、微机名称D、微处理器型号32、以平均无故障时间(MTBF)&#xff0c;用于描述计算机的( A )A、可靠性B、可维护性C、性能价格比D、以上答案都不对33、以平均修复时间(MTTR)&#xff0c;用于描述计算机的…

双曲函数奇偶性_基本初等函数之奇偶性(强基系列42)

基本初等函数之奇偶性(强基系列4-2)开卷有益初等函数是由幂函数(power function)、指数函数(exponential function)、对数函数(logarithmic function)、三角函数(trigonometric function)、反三角函数(inverse trigonometric function)与常数经过有限次的有理运算(加、减、乘、…

Caused by: Parent package is not defined: json-default - [unknown location]

原文连接&#xff1a;http://blog.csdn.net/bebested/article/details/52627890 ------------------------------------------------------------------------------------------- Unable to load configuration. - [unknown location] at com.opensymphony.xwork2.config.Co…

【window】git安装教程

相关链接&#xff1a;https://blog.csdn.net/nly19900820/article/details/73379854 作者&#xff1a;smile.轉角 QQ&#xff1a;493177502转载于:https://www.cnblogs.com/websmile/p/9384060.html

html文件打开系统错误,win7打开word提示“无法打开文件Normal因为内容有错误”的两种解决方法...

win7系统打开Word的时候&#xff0c;弹出提示“无法打开文件Normal.dotm,因为内容有错误”&#xff0c;为什么会出现错误提示呢&#xff1f;小编就按照错误提示寻找文件&#xff0c;最后发现是Word自动生成的模板Normal出错了&#xff0c;知道故障原因后&#xff0c;接下去教程…

超链接跳转到action使用哪个方法_管道疏通剂哪个牌子好 管道疏通机使用方法有哪些...

平时大家不用的水或者一些物品&#xff0c;在处理的时候应该都会倒到下水道之中&#xff0c;而下水道确实具备着这一种效果&#xff0c;但很多时候&#xff0c;下水道往往会因为口比较小&#xff0c;而被一些物品所堵塞&#xff0c;这样一来&#xff0c;影响上其实会非常大&…

linux学习-将seafile启动脚本设置为开机启动服务

有时候&#xff0c;我们安装的linux软件和程序不是通过yum安装&#xff0c;而是通过编译或者其他方式安装。有时需要将程序设置为服务&#xff0c;达到开机启动的目的。我在公有云的与服务器上搭建了seafile网盘&#xff0c;当我重启云服务器的时候&#xff0c;seafile的程序不…

物理借助传感器用计算机测速度,用打点计时器测速度教案_物理_教学设计_人教版...

第四节、实验&#xff1a;用打点计时器测速度西安中学&#xff1a;张卫岗邮编&#xff1a;710021【教材版本】人民教育出版社【设计理念】实验是物理学习的基础&#xff0c;通过自主探究、问题研究&#xff0c;结合速度概念的科学认识&#xff0c;体验科学研究与生活实际的联系…

Failed to load or instantiate TagLibraryValidator class: org.apache.taglibs.standard.tlv.JstlFmtTLV

原因&#xff1a; 1、缺包。如缺 standard-1.1.2.jar servlet-api-2.4.jar jstl-1.1.2.jar 2、包重复。最可能是 servlet-api-2.4.jar jsp-api-2.0.jar 与Tomcat lib 下的冲突。删掉 web-inf/lib下的

中文整合包_案例 | 美研市场营销和整合营销专业1620Fall 580+申请实例(含MS+PHD)...

关注“留学壹周刊”&#xff0c;回复专业名称&#xff0c;如“金融”&#xff0c;可以自由查询相关资料介绍本篇微信主要包括如下内容&#xff1a;580美研市场营销和整合营销专业16-20Fall申请实例&#xff0c;包括6个文件&#xff1a;1、MS项目申请实例2、PHD项目申请实例3、成…

关于HttpClient上传中文乱码的解决办法

使用过HttpClient的人都知道可以通过addTextBody方法来添加要上传的文本信息&#xff0c;但是&#xff0c;如果要上传中文的话&#xff0c;或还有中文名称的文件会出现乱码的问题&#xff0c;解决办法其实很简单&#xff1a; 第一步&#xff1a;设置MultipartEntityBuilder的编…

写在开头

今年项目组任务超量完成&#xff0c;到过年都可以轻松了。 今年开发了一个基于dubbo的分布式系统&#xff0c;高并发&#xff0c;大数据&#xff0c;数据分析建模。目前热门的都用上了。 近期决定把我2013年时一个单体应用架构的项目改造成基于dubbo的分布式系统。 该项目是…

学计算机的让修电脑搞笑段子精选,搞笑段子:阿姨,我是真的就来给他们修电脑的!...

搞笑段子&#xff1a;阿姨&#xff0c;我是真的就来给他们修电脑的修电脑在上大学的时间&#xff0c;经常用修电脑的名号进入到女生宿舍之中&#xff0c;当时的宿管阿姨人特别好&#xff0c;稍微的问一下就让我进去了。有一天&#xff0c;我刚要进去的时间&#xff0c;她拉着我…