多弹协同攻击时的无源定位

news2024/11/24 18:25:56

题目

采用被动接收方式的无源探测定位技术具有作用距离远、隐蔽接
收、不易被敌方发觉等优点,能有效提高探测系统在电子战环境下的
生存能力和作战能力。
在无源定位的研究中,测向定位技术(Direction of Arrival,DOA)
是最早出现的定位方法,通过高精度测向设备检测辐射源信号到达方
向,以各个测向线的交点作为目标位置的估计值,该方法简单易行但
定位误差一般比较大;无源时差定位(Time Difference of Arrival,
TDOA)具有定位精度高的优势,通过测量辐射源到各观测点的信号
到达时间差(即辐射源到各观测点的距离差,亦称程差),以此构建
一组关于辐射源位置的双曲线(面)方程组,求解该双曲方程组就可
以得到辐射源的坐标位置。但经典的TDOA 涉及到求解非线性方程组,
一般不易得到解析解,若预先知道目标的大致位置则有可能简化计算。
有时将TDOA 与DOA两种方法融合使用,会得到更好的定位效果。
考虑空舰导弹对水面舰船实施攻击时的无源定位问题。为保证载
机的安全性和发射的隐蔽性,只要满足基本的攻击条件,载机尽量远
距离发射导弹。多枚导弹协同自主地搜索并攻击既定目标。如图1 所
示,3 枚导弹分别位于A、B、C 三点,目标位于T 点。在导弹导引头
雷达开机前,导弹不主动发射电磁波,只被动接收目标发射的电磁波,
实现对目标无源定位。导弹之间有数据链路保障相关信息的实时传输。

在这里插入图片描述

问题1 图1中,3枚导弹与目标不在同一平面,试利用导弹和目标的相
互几何位置关系,基于程差测量值和测向角度信息,构建目标定位方
法并分析哪些参数(包括3 枚导弹的空间几何构型等)对定位精度有
较大的影响?设计合理的仿真实验,验证所构建的方法的有效性。

问题2 当水面舰船目标实施机动时,如何控制3枚导弹的飞行状态(包
括相互间间距、相互连线之间的角度等队形参数,以及导弹编队与舰
船目标的空间几何位置关系等),以实现对水面舰船目标高精度的实
时定位?设计合理的仿真实验,验证所构建的方法的有效性

模型

假设第 i i i枚导弹t时刻的坐标为 ( x i t , y i t , z i t ) \left(x_{it},y_{it},z_{it}\right) (xit,yit,zit),假设第 i i i个基站的接收信号为

u i ( t ) = s ( t − d i ) + v i ( t ) , i = 1 , 2 , ⋯   , M u_i\left(t\right)=s\left(t-d_i\right)+v_i\left(t\right),i=1,2,\cdots,M ui(t)=s(tdi)+vi(t),i=1,2,,M

其中, s ( t ) s(t) s(t)为目标发射的源信号, d i d_i di为源信号传播到达第i枚导弹的时延, v i ( t ) v_i(t) vi(t)为加性高斯白噪声,且假设信号和噪声相互独立。
以第一枚导弹的时延为参考基准,利用广义互相关算法(GCC)估计源信号到达第i枚导弹的时差为

d i 1 = d i − d 1 d_{i1}=d_i-d_1 di1=did1

设信号传输速度为c,r_i为目标到第i枚导弹的距离,信号到第i枚导弹的距离之差为
r_{i1}=cd_{i1}=r_i-r_1,i=2,3,\cdots,M
其中, r i r_i ri为声源到第i枚导弹的距离,满足

r i 2 = ( x i − x ) 2 + ( y i − y ) 2 + ( z i − z ) 2 = K i − 2 x i x − 2 y i y − 2 z i z + x 2 + y 2 + z 2 , i = 1 , 2 , ⋯   , M r_i^2=\left(x_i-x\right)^2+\left(y_i-y\right)^2+\left(z_i-z\right)^2 =K_i-2x_ix-2y_iy-2z_iz+x^2+y^2+z^2,i=1,2,\cdots,M ri2=(xix)2+(yiy)2+(ziz)2=Ki2xix2yiy2ziz+x2+y2+z2,i=1,2,,M

其中, K i = x i 2 + y i 2 + z i 2 K_i=x_i^2+y_i^2+z_i^2 Ki=xi2+yi2+zi2
当导弹数为4时,可得目标点T的唯一解

[ x y z ] = [ x 21 y 21 z 21 x 31 y 31 z 31 x 41 y 41 z 41 ] − 1 [ 1 2 ( K 2 − K 1 − r 21 2 ) − r 21 r 1 1 2 ( K 3 − K 1 − r 31 2 ) − r 31 r 1 1 2 ( K 3 − K 1 − r 41 2 ) − r 41 r 1 ] \left[\begin{matrix}x\\y\\z\end{matrix}\right]=\left[\begin{matrix}x_{21} & y_{21} & z_{21} \\x_{31} & y_{31} & z_{31} \\x_{41} & y_{41} & z_{41}\end{matrix}\right]^{-1} \left[\begin{matrix}\frac{1}{2}(K_2-K_1-r_{21}^{2})-r_{21}r_1\\\frac{1}{2}(K_3-K_1-r_{31}^{2})-r_{31}r_1\\\frac{1}{2}(K_3-K_1-r_{41}^{2})-r_{41}r_1\end{matrix}\right] xyz = x21x31x41y21y31y41z21z31z41 1 21(K2K1r212)r21r121(K3K1r312)r31r121(K3K1r412)r41r1


R = [ x 21 y 21 z 21 x 31 y 31 z 31 x 41 y 41 z 41 ] − 1 R = \left[\begin{matrix}x_{21} & y_{21} & z_{21} \\x_{31} & y_{31} & z_{31} \\x_{41} & y_{41} & z_{41}\end{matrix}\right]^{-1} R= x21x31x41y21y31y41z21z31z41 1

导弹与目标点的相对位置实时变化,本文将导弹A在初始时刻的位置记为 ( x 1 ( 0 ) , y 1 ( 0 ) , z 1 ( 0 ) ) \left(x_1(0),y_1(0),z_1(0)\right) (x1(0),y1(0),z1(0)),在另一时刻导弹A、B、C的位置分别记为 ( x 1 ( 1 ) , y 1 ( 1 ) , z 1 ( 1 ) ) \left(x_1(1),y_1(1),z_1(1)\right) (x1(1),y1(1),z1(1)) ( x 2 ( 1 ) , y 2 ( 1 ) , z 2 ( 1 ) ) \left(x_2(1),y_2(1),z_2(1)\right) (x2(1),y2(1),z2(1)) ( x 3 ( 1 ) , y 3 ( 1 ) , z 3 ( 1 ) ) \left(x_3(1),y_3(1),z_3(1)\right) (x3(1),y3(1),z3(1))

如果R矩阵可逆,则方程有唯一解,此时,不难得出, ( x 1 ( 0 ) , y 1 ( 0 ) , z 1 ( 0 ) ) \left(x_1(0),y_1(0),z_1(0)\right) (x1(0),y1(0),z1(0)) ( x 1 ( 1 ) , y 1 ( 1 ) , z 1 ( 1 ) ) \left(x_1(1),y_1(1),z_1(1)\right) (x1(1),y1(1),z1(1)) ( x 2 ( 1 ) , y 2 ( 1 ) , z 2 ( 1 ) ) \left(x_2(1),y_2(1),z_2(1)\right) (x2(1),y2(1),z2(1)) ( x 3 ( 1 ) , y 3 ( 1 ) , z 3 ( 1 ) ) \left(x_3(1),y_3(1),z_3(1)\right) (x3(1),y3(1),z3(1))与目标点,任意4点不共面,否则方程将有无数个解,这显然无法达到精确定位的目的。所以,如果采用此方法,导弹A飞行方向所在直线与目标点相交,那么将无法得到精确解,此时可考虑采用导弹B或导弹C的初始位置作为 ( x 1 ( 0 ) , y 1 ( 0 ) , z 1 ( 0 ) ) \left(x_1(0),y_1(0),z_1(0)\right) (x1(0),y1(0),z1(0)),然而,当导弹A、B、C的飞行方向所在直线均与目标点相交时,那么就此方法将无法适用,在使用本方法时,最后应予以验证。

仿真代码

python代码

import numpy as np
import math
import matplotlib.pyplot as plt
 
def distance(x1,y1,z1,x2,y2,z2):
    dist =math.sqrt((x1-x2)*(x1-x2) + (y1-y2)*(y1-y2)+(z1-z2)**2)
    return dist

c = 340

t1 = 0.15
t2 = 0.11
t3 = 0.2
t4 = 0.91

x1 = 10
y1 = 10
z1 = 10
x2 = 240
y2 = 20
z2 = 20
x3 = 124
y3 = 250
z3 = 60
x4 = 51
y4 = 53
z4 = 244

r1 = c*t1
r2 = c*t2
r3 = c*t3
r4 = c*t4

print("distance")
print(r1,r2,r3,r4)
 
# r21 = r2 - r1
# r31 = r3 - r1
# r41 = r4 - r1
r21 = c*(t2-t1)
r31 = c*(t3-t1)
r41 = c*(t4-t1)

print(r21,r31,r41)
  
x21 = x2 - x1
x31 = x3 - x1
x41 = x4 - x1
y21 = y2 - y1
y31 = y3 - y1
y41 = y4 - y1
z21 = z2 - z1
z31 = z3 - z1
z41 = z4 - z1
 
 
# print([x21, x31, y21, y31])
 
P1_tmp  = np.array([[x21,y21,z21],[x31,y31,z31],[x41,y41,z41]])
print("P1_tmp:")
print(P1_tmp)
 
P1 = (-1)*np.linalg.inv(P1_tmp)
print(P1)
 
P2=  np.array([[r21], [r31],[r41]])
print("P2")
print(P2)
 
K1 = x1*x1 + y1*y1 + z1*z1;
K2 = x2*x2 + y2*y2 + z2*z2;
K3 = x3*x3 + y3*y3 + z3*z3;
K4 = x4*x4 + y4*y4 + z4*z4;
print(K1,K2,K3,K4)
 
P3 = np.array([ [ (-K2 + K1 + r21*r21)/2],  [(-K3 + K1 + r31*r31)/2 ],[(-K4 + K1 + r41*r41)/2]])
print("P3:")
print(P3)
 
xy_esti = (np.dot(P1 , P2)) * r1 +np.dot( P1 , P3)
 
print("xy_esti")
#print(type(xy_esti[0]))
print(int(xy_esti[0]),int(xy_esti[1]),int(xy_esti[2])) 

在实际仿真中,可加入验证环节,用以验证仿真的有效性。

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

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

相关文章

SpringBoot操作Mongo

文章目录引入依赖yaml实体类集合操作创建删除相关注解文档操作添加实验 数据查询添加更新删除引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId> </dependency><de…

Jmeter配置不同业务请求比例,应对综合场景压测

背景 在进行综合场景压测时&#xff0c;遇到了如何实现不同的请求所占比例不同的问题。 有人说将这些请求分别放到单独的线程组下&#xff0c;然后将线程组的线程数按照比例进行配置。 这种方法不是很好&#xff0c;因为服务器对不同的请求处理能力不同&#xff0c;有的处理快…

C规范编辑笔记(八)

往期文章&#xff1a; C规范编辑笔记(一) C规范编辑笔记(二) C规范编辑笔记(三) C规范编辑笔记(四) C规范编辑笔记(五) C规范编辑笔记(六) C规范编辑笔记(七) 正文&#xff1a; 今天来给大家分享我们的第八篇C规范编辑笔记&#xff0c;话不多说&#xff0c;我们直接来看&…

计算机毕设Python+Vue新闻类网站(程序+LW+部署)

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

基于微信小程序的灯具商城系统-计算机毕业设计

项目介绍 开发语言&#xff1a;Java 框架&#xff1a;ssm JDK版本&#xff1a;JDK1.8 服务器&#xff1a;tomcat7 数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09; 数据库工具&#xff1a;Navicat11 开发软件&#xff1a;eclipse/myeclipse/idea Maven包&a…

Java中IO体系

File File类 File类 : 表示计算机中所有的文件和文件夹; [计算机硬盘上除了文件就是文件夹]如何创建File对象 :File(String pathname) : 传入文件路径[String],创建File对象并指向这个路径的文件/文件夹File(String parent, String child) :传入文件路径[String],创建File对象…

【机器学习---02】机器学习相关名词解释

文章目录1. 损失函数、期望风险、经验风险2. 经验风险最小化和结构风险最小化2.1 结构风险&#xff08;正则化&#xff09;2.2 两者的定义3. 训练误差 与 测试误差4. 过拟合 与 欠拟合4.1 过拟合及解决方法4.2 交叉验证4.3 欠拟合5. 泛化误差 与 泛化误差上界5.1 泛化误差5.2 泛…

Filter Listener Ajax学习笔记

1 Filter Filter用于请求的过滤&#xff0c;如请求时&#xff0c;做登录的全局性校验 1.1 示例 在创建Filter前&#xff0c;可以通过启动Tomcat访问index.jsp http://localhost:8080/Mvc-Demo/index.jsp添加Filter后&#xff0c;重新启动Tomcat&#xff0c;并再次访问index…

8、java常见名词总结

一、JMM 1.1、JMM简介 JMM 是Java内存模型&#xff08; Java Memory Model&#xff09;&#xff0c;简称JMM。它本身只是一个抽象的概念&#xff0c;并不真实存在&#xff0c;它描述的是一种规则或规范&#xff0c;是和多线程相关的一组规范。通过这组规范&#xff0c;定义了…

babel-plugin-transform-remove-console 项目打包去除console

安装babel-plugin-transform-remove-console 项目打包去除console npm install babel-plugin-transform-remove-console --save-dev 在vue项目中babel.config.js中&#xff1a; module.exports {plugins: ["transform-remove-console",], }; 如果只想在生产环境…

Java+SSM影院订票系统|电影院购票系统(含源码+论文+答辩PPT等)

项目功能简介: 该项目采用的技术实现如下 后台框架&#xff1a;Spring、SpringMVC、MyBatis UI界面&#xff1a;BootStrap、jQuery 、JSP 数据库&#xff1a;MySQL 系统分为前台订票和后台管理&#xff1a; 1.前台订票 用户注册、用户登录、查看电影列表、分类查看 电影搜索、查…

C语言基础篇 —— 5.0 详解C语言变量的四大属性

文章目录概述C语言变量四大属性存储类概念解析Linux 内存映像并解析作用域概念解析局部变量的代码块作用域函数名和全局变量的文件作用域同名变量的掩蔽规则生命周期概念解析栈变量的生命周期堆变量的生命周期数据段、bss段变量的生命周期代码段、只读段的生命周期链接属性概念…

Linux——虚拟机安装Linux系统

实验1-2 虚拟机安装Linux系统 VMware 9.0 虚拟机Linux镜像ISO文件相关工具可以在这里边找到 http://pan.baidu.com/s/1ntA18FJ 或者请自行下载使用 创建新的虚拟机&#xff0c;如下图&#xff1a; 下一步&#xff1a;选择安装配置类型为“典型”如下图&#xff1a; 下一步&…

k8s之Ingress

Ingress和Ingress控制器介绍 Ingress官方文档&#xff1a;https://kubernetes.io/zh-cn/docs/concepts/services-networking/ingress/ Ingress控制器官方文档&#xff1a;https://kubernetes.io/zh-cn/docs/concepts/services-networking/ingress-controllers/ 在k8s中将一个…

Multipartfile判断文件类型的简单处理办法。

通过浏览器上传的文件在后台需要验证文件类型。如果单纯匹配后缀名的方式是有风险的&#xff0c;容易被换了后缀的病毒文件给破坏掉。 比如&#xff1a; 如果我上传已修改的文件。&#xff08;把xlsx改成了jpg&#xff09; 这样&#xff0c;无法识别出来真实的内容。 所以为了…

java基础巩固-宇宙第一AiYWM:为了维持生计,架构知识+分布式微服务+高并发高可用高性能知识序幕就此拉开(六:Hystrix之熔断、降级、限流)~整起

Hystrix 中文文档&#xff1a;https://www.apiref.com/spring-cloud-zh/dalston/#_circuit_breaker_hystrix_clients服务雪崩&#xff1a;服务 A 调用了服务 B&#xff0c;服务 B 再调用了服务 C&#xff0c;但是因为某些原因&#xff0c;服务 C 顶不住了&#xff0c;这个时候大…

Strimzi Kafka Bridge(桥接)实战之三:自制sdk(golang版本)

欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码)&#xff1a;https://github.com/zq2599/blog_demos 本篇概览 本文是《Strimzi Kafka Bridge(桥接)实战》的第三篇&#xff0c;前文咱们掌握了Strimzi Kafka Bridge的基本功能&#xff1a;基于http提供各种kafk…

特海国际通过港交所上市聆讯:翻台率下滑明显,张勇夫妇为实控人

撰稿|汤汤 来源|贝多财经 近日&#xff0c;海底捞&#xff08;HK:06862&#xff09;海外业务分拆公司特海国际控股有限公司&#xff08;下称“特海国际”&#xff09;通过港交所上市聆讯。据贝多财经了解&#xff0c;特海国际将以介绍形式于港交所主板上市。所谓介绍形式&…

数据挖掘Java——Apriori算法的实现

一、Apriori算法的前置知识 Apriori算法是一种挖掘关联规则的频繁项集算法&#xff0c;其核心思想是通过候选集生成和向下封闭检测两个阶段来挖掘频繁项集。 关联规则挖掘是数据挖掘中最活跃的研究方法之一&#xff0c;最初的动机是针对购物篮分析问题提出的&#xff0c;其目…

[附源码]Node.js计算机毕业设计工会会员管理系统Express

项目运行 环境配置&#xff1a; Node.js最新版 Vscode Mysql5.7 HBuilderXNavicat11Vue。 项目技术&#xff1a; Express框架 Node.js Vue 等等组成&#xff0c;B/S模式 Vscode管理前后端分离等等。 环境需要 1.运行环境&#xff1a;最好是Nodejs最新版&#xff0c;我…