汽车和山羊问题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,一经查实,立即删除!

相关文章

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;集结数据治理…

论文笔记: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 …

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

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

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的程序不…

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

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

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

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

react table里跳转页面_react路由配置基础篇:react-router4.0及以上

随着react路由组件的不断升级&#xff0c;react-router4以下的版本和4以上的版本配置还是有一定的区别&#xff0c;这里就不累赘陈述了&#xff0c;笔者分享下使用react-router4.0以上版本的经验。1、安装react-router-domnpm install react-router-dom --save2、基本配置&…

cad怎么向下位移_CAD制图初学入门教程:阵列功能的使用技巧

阵列在浩辰CAD软件中也是比较常用的功能之一&#xff0c;但是有些CAD制图初学入门者对此并不是很了解。那么在浩辰CAD软件中阵列功能怎么用呢&#xff1f;接下来就给大家分享一些关于阵列功能的CAD制图初学入门技巧吧&#xff01;首先在浩辰CAD软件中打开CAD图纸&#xff0c;然…

联想g470笔记本开vt_最“发泄”评测!飞刀铁拳暴力输出,联想本结局竟然大亮?(附视频)...

极果潮玩实验室迎来一块新的硬骨头——联想笔记本。喜欢来点新花样的小伙伴们听说它刚到不行&#xff0c;轻薄身板却很耐造&#xff0c;于是大家都想和它较量一番&#xff0c;看看是什么样的刚猛让这款产品名声在外。本期评测还是本着不走寻常路的风格&#xff0c;看看我们为它…

【leetcode】590. N-ary Tree Postorder Traversal

题目如下&#xff1a; 解题思路&#xff1a;凑数题2&#xff0c;做完先序做后序。凑数博2。 代码如下&#xff1a; class Solution(object):def postorder(self, root):""":type root: Node:rtype: List[int]"""if root None:return []res []s…

dubbo控制台安装

为什么要安装这个控制台&#xff1f; 当我们的服务很多的时候&#xff0c;需要监管&#xff0c;查看&#xff0c;当项目变大的时候&#xff0c;会深深感谢它&#xff01; 管理原理 对注册中心Zookeeper中注册的服务进行管理 安装步骤 1、下载dubbo源码&#xff0c;要与使用的…

dubbo服务的运行方式

1、使用Servlet容器运行&#xff08;Tomcat、Jetty等&#xff09;----不可取 缺点&#xff1a;增加复杂性&#xff08;端口、管理&#xff09; 浪费资源&#xff08;内存&#xff09; 假设1个服务模块时&#xff0c;需要1台tomcat&#xff0c;消耗3个端口&#xff0c;和200M…

插件translator_Zotero Jasminum 插件的更新记录

Jasminum 插件发布后 林知&#xff1a;简单的Zotero CNKI 中文插件​zhuanlan.zhihu.com受到一些同学的关注&#xff0c;同时也收到许多反馈。我写这个插件的初衷就是想让大家在Zotero上能更方便的使用知网&#xff0c;尤其是人文社科相关专业的同学&#xff0c;他们尤其依赖中…

ubuntu18.04 用xhell连接失败

ifconfig命令有用之后&#xff0c;又发现xhell连接不上ubuntu18.04版本的虚拟机&#xff0c;原因是ubuntu18.04默认没有安装ssh服务。 使用以下命令安装 sudo apt-get install openssh-server 安装完成后,启动ssh服务 sudo /etc/init.d/ssh start 查看ssh进程&#xff0c;若出现…

伍德里奇计量经济学第五版第四章计算机操作,伍德里奇计量经济学第四章

伍德里奇计量经济学第四章2016年10⽉25⽇ 星期⼆ 下午10:21 Page 1User: ⺩建英name: log: /Users/wangjianying/Desktop/Chapter 4 Computer exercise.smcllog type: smclopened on: 25 Oct 2016, 22:20:411. do "/var/folders/qt/0wzmrhfd3rb93j2h5hhtcwqr0000gn/T//SD1…

使用maven构建dubbo服务的可执行jar包

maven 项目结构 <build><!-- 使用dubbo推荐的方法&#xff0c;打包成jar&#xff0c;调用main方法启动 --><finalName>admin-service-user</finalName><resources><resource><targetPath>${project.build.directory}/classes</ta…

Linux的标准I/O和管道

标准输入输出与管道 1、标准输入和输出程序&#xff1a;指令数据指令&#xff1a;计算、加减乘除数据&#xff1a;输入数据、输出数据2、在Linux中每一个打开的文件都会分配一个当前进程中唯一的文件描述符&#xff0c;用来标识文件的状态fd:file descripor3、Linux提供给程序…