主要内容

使用双基地距离检测进行跟踪

这个例子向您展示了如何使用四个传感器-发射器对来模拟双静态距离检测。此外,这个例子演示了如何使用双基地距离测量来定位和跟踪多个目标。

介绍

双基地雷达是双基地发射器或发射器的集合(T_X美元)及双站接收器或传感器(R_X美元).双基地系统的几何结构如下图所示。传感器沿着形成三角形上部的路径接收信号(R_T + R_R)美元双基地检测参考发射极范围。相对双基地距离为:

$R_{Bistatic} = R_T + R_R - L,$$

在哪里R_T美元为辐射源到目标的距离,R_R美元是从目标到传感器的范围,以及1美元$,也称为直接路径或基线,是从发射器到传感器的范围。

双基地雷达得到的发射器到目标到传感器的距离等于:

$$R\u T+R\u R=2a$$

这个和定义了一个恒定范围的椭球。上图所示图像描述了目标、发射机和传感器在同一平面时的椭球面。这就得到了一个二维椭圆。目标位于等距椭球表面某处,焦点为发射体和传感器位置,两者以基线距离L隔开,长轴为2a。

接下来,您将定义一个场景来生成双基地检测,然后使用检测来跟踪目标。

定义场景

您将定义一个跟踪场景,该场景模拟包含多个平台的三维区域。在此场景中,您将定义双基地系统。

%设置可重复结果的随机种子。rng (2050);%创建一个跟踪场景来管理平台的移动。现场= trackingScenario;%设置场景的持续时间为30秒,并设置%场景频率为1 Hz。现场。StopTime = 30;%交会现场。UpdateRate = 1;%赫兹

设置每种类型平台的编号。在本例中,将创建以下类型的平台用于感应目标:

  • 1雷达发射器

  • 4个双基地雷达传感器

%设置球形传感器所需的传感器-发射器对的最小数量%基于交集算法的目标定位%三维空间。numSensors=4;emitteredx=1;%发射器被添加为场景中的第一个平台

创建并安装发射器

在双基地系统中,有三种类型的发射器:

  • 专用:这种类型的发射机被有意地设计和操作以支持双基地处理。金宝app

  • 合作型:这种类型的发射机是为支持其他功能而设计的,但适合双基地使用。金宝app关于发射机的信息,如它的发射波形和位置是已知的。

  • 不合作:这类人是“机会的传播者”。非合作发射机不能被控制,但被认为适合双基地使用。

在本例中,所建模的发射器被认为是专用发射器。使用建立射频发射模型雷达汇款器.这个发射器是一个理想的,各向同性发射器,具有360度的视野。波形类型是一个用户定义的值,用于枚举场景中出现的各种波形类型。对于这个场景,使用值1来指示LFM类型波形。将发射器安装到原点的固定平台上。

定义一个发射器。发射器= radarEmitter (emitterIdx,“没有扫描”,...“FieldOfView”(360 180),...%[az el]deg“CenterFrequency”,300e6,...%赫兹“带宽”,30e6,...%赫兹“WaveformType”1);%使用1表示类lfm波形在平台上安装发射器。thisPlat=平台(场景,“轨迹”kinematicTrajectory (“位置”(0 0 0),...“速度”, 0 0 0));thisPlat。发射器={发射器};

创建和安装双基地雷达传感器

模型双基地雷达传感器使用雷达传感器.雷达传感器是一个理想的,各向同性接收机与360度视野。设置DetectionMode双基地。确保传感器的配置使其中心频率、带宽和预期波形类型与发射器配置相匹配。启用INS在场景坐标中进行跟踪,并将双基地雷达传感器安装到平台上。

为四个双基地雷达传感器定义一些随机轨迹。%以一定的方差循环分布。r = 2000;%的范围内,米θ= linspace(0,π,numSensors);%θ,radxSen=r*cos(θ)+100*randn(1,numSensors);%mySen = r*sin(theta) + 100*randn(1,numSensors);%m要观察目标的z,传感器必须有一定的仰角对彼此和发射器的百分比。zSen=-1000*rand(1,numSensors);%m定义一个双基地雷达传感器。传感器= fusionRadarSensor (1,“没有扫描”,...“FieldOfView”(360 180),...%[az el]deg“DetectionMode”,“双基地”,...%双基地探测模式“CenterFrequency”,300e6,...%赫兹“带宽”,30e6,...%赫兹“WaveformTypes”,1...%使用1表示类lfm波形“之内”,真的,...%具有INS以在场景中启用跟踪“方位角解”,360,...%不测量方位角,只有一个分辨率单元“HasElevation”,真的,...%启用“高程”以设置高程分辨率“提升分辨率”,180);%单仰角分辨率单元%在平台上安装双基地雷达传感器。对于iD=1:numSensors用轨迹创建一个平台。传感平台是%被认为是静止的,但可以提供速度。thisPlat=平台(场景,...“轨迹”kinematicTrajectory (“位置”, (xSen (iD) ySen (iD) zSen (iD)],...“速度”, 0 0 0));克隆双基地雷达传感器并安装到平台上。thisPlat.Sensors={clone(sensor)};%提供正确的传感器索引。thisPlat.Sensors{1}.SensorIndex=iD;终止

模拟双基地场景包括:

  • 产生射频排放

  • 传播排放物并反映平台排放物

  • 接收发射,计算干扰损失,并生成检测。

这个过程包含在一个支持函数中,金宝app检测静态目标范围,在本例末尾定义。

目标定位

引言部分中的图说明,在双基地测量中,目标位于由发射器和传感器位置以及测量的双基地范围定义的椭球体上的某个位置。由于目标可以位于椭球体上的任何位置,单个双基地测量无法提供目标状态的完全可观测性.为了定位目标(对目标位置进行三角测量)并实现目标状态的可观测性,需要来自不同传感器的多个测量值。本例中实现的目标定位算法基于参考文献[1]中描述的球面相交法。定位问题的非线性性质导致从3个或多个传感器双基地范围的交叉处产生两个可能的目标位置。使用3个以上的传感器可以方便地从两个可能位置决定目标位置。在本例中,使用四个传感器使用一个发射器生成双基地检测。

接下来,将向场景添加目标以生成双基地检测。

在场景中添加一个目标

没有任何附加发射器或传感器的平台被称为目标.创建跟踪使用的目标平台

%使用场景的平台方法在此处添加一个目标。指定%轨迹使用一个运动学轨迹与随机位置和常数%的速度。月台(现场,,“轨迹”kinematicTrajectory (...“位置”,[2000*兰登100*兰登-1000],...“速度”, (10 * 10 * randn randn 5 * randn]));初始化显示以便显示。theaterDisplay = helperBistaticRangeFusionDisplay(场景,...“XLim”3 [3],“YLim”, [-3 3],“兹利姆”-2.5 [0],...“GIF”,'');如果指定了名称,%记录新的GIF观点(3);

在只有一个目标且无虚警的情况下,可以对多个测量值进行三角化,得到目标的定位位置。这个定位位置可以用作目标位置的估计,也可以传递给跟踪器来估计目标状态。现在,您将从单个目标生成双基地雷达探测,并可视化双基地椭球的几何形状。您将使用支持函数计算三角位置金宝apphelperBistaticRangeFusion,包括在此示例中。这个helperBistaticRangeFusion函数计算目标的三角位置,鉴于目标产生的双基地距离检测。

创建一个融合检测来表示三角形位置和%将该位置可视化为三维融合位置检测。measParam=struct(“帧”,“矩形”,...“方位角”,真的,“HasElevation”,真的,...“哈斯兰奇”,真的,“HasVelocity”假的,...“原始位置”(0, 0, 0),...熔接位置在场景画面中“OriginVelocity”(0, 0, 0),...%场景帧的速度为零“定位”,眼睛(3),...场景帧没有旋转。“IsParentToChild”、假);%指定是否在父帧中指定旋转%表示使用objectDetection的融合检测。它是三维的%位置和协方差。fusedDetection = {objectDetection (0, 0 (3,1),“MeasurementNoise”,眼睛(3),...“测量参数”, measParam)};变化百分比视图视图(-125,9);%运行场景。预演(现场)%获取当前模拟时间。时间= scene.SimulationTime;从一个目标得到双基地距离检测检测= detectBistaticTargetRange(场景、时间emitterIdx,真实);%三角测量探测以估计目标位置。[位置,协方差]=辅助距离范围融合(检测);%更新融合检测。fusedDetection{1}。测量=位置;fusedDetection{1}。MeasurementNoise =协方差;%更新显示。剧院显示器([detections;fusedDetection]);终止%如果需要,请写入新的GIFwriteGIF (theaterDisplay);

在前面的动画中,双基地雷达传感器用指向下的三角形表示。静止发射体用原点处的紫色圆圈标记来表示。目标用白菱形表示,灰线表示目标的轨迹。在每个时间戳时,2d动画在目标的Z位置被切片。

融合检测,用黄色圆圈标记,靠近四个椭球的交点区域,接近场景中目标的真实位置。

多目标场景

单目标场景假设检测已知由同一目标生成。因此,您可以对其进行三角测量以定位目标。但是,在多目标场景中,在存在假警报和漏检的情况下,此信息通常不可用。这导致d之间存在未知的数据关联检测和目标。要解决此问题,请使用staticDetectionFuser.的staticDetectionFuser评估检测和目标之间的未知数据关联,并使用多维分配公式找到最佳解决方案。的staticDetectionFuser输出融合检测。融合检测的个数表示可能存在的目标数,每次检测表示目标的笛卡儿位置。

接下来,您将向场景添加新目标,并使用staticDetectionFuser在存在虚假警报的情况下,从多个目标创建融合检测。这些检测由GNN跟踪器进一步处理,跟踪器,以追踪目标。

%重新启动场景并添加剩余的目标。重启(现场);%的几何rng(2021年);%此处添加的目标数。numTargets = 4;%随机分布的目标。r=abs(2000*randn(1,numTargets));%随机范围(m)θ=linspace(0,numTargets*pi/4,numTargets);角位置(rad)xTgt=r*cos(θ)+100*randn(1,numTargets);% x位置(m)yTgt=-r*sin(θ)+100*randn(1,numTargets);%y位置(米)%地面目标。numTargets zTgt = -1000 * 1 (1);%z位置(m)对于iD = 1:numTargets thisPlat = platform(scene,...“轨迹”kinematicTrajectory (“位置”,[xTgt(iD)yTgt(iD)zTgt(iD)],...“速度”, (10 * 10 * randn randn 5 * randn]));终止%更新平台变量。平台= scene.Platforms;%重置显示。发布(剧院展示);%关闭所有目标的双基地椭圆标绘。theaterDisplay.PlotBistaticEllipse=假;%没有记录theaterDisplay.GIF='';调用一次,绘制新的轨迹。theaterDisplay ();带有轨迹的场景显示。showScenario(剧院显示器);snapnow;showGrabs(剧院显示器,[]);

设置定影器和跟踪器

本节创建一个静态检测fuser,它使用前面讨论的球面相交定位算法。此外,还定义了一个全局最近邻(GNN)跟踪器来处理融合检测。

%定义一个静态检测定影器。熔化炉= staticDetectionFuser (...“MeasurementFusionFcn”,“helperBistaticRangeFusion”,...“使用并行”,真的,...%并行处理“MaxNumSensors”numSensors,...%双基地雷达传感器数量“体积”、传感器。RangeResolution,...%传感器检测箱的体积“测量格式”,“自定义”,...%将自定义熔断测量定义为cvmeas无法报告的双基地“MeasurementFcn”,“helperBistaticMeas”,...%设置用于报告双基地测量的测量功能“DetectionProbability”, 0.99...侦测目标的机率);定义GNN跟踪器。追踪= trackerGNN (“AssignmentThreshold”, 100);

基于静态融合的目标跟踪

模拟的双基地探测融合了staticDetectionFuser采用球面求交算法。融合后的检测随后被传递到GNN跟踪器。

预演(现场)%获取当前模拟时间。时间= scene.SimulationTime;获得双静态距离检测检测= detectBistaticTargetRange(场景、时间emitterIdx);将双静态检测融合到一个结构中。[superDets, info] = fuser(检测);%使用GNN跟踪器跟踪融合双基地探测。confTracks =追踪(superDets scene.SimulationTime);%用当前平台位置和轨道更新显示。剧院显示器([superDets(:);detections(:)],confTracks);终止

后果

在存在多个目标和可能的假警报的情况下,重影交点有时可能比实际解决方案更有利。由于这些重影交叉点随机出现在场景中,因此集中式跟踪器将其有效地视为“假警报”。您可以在下图中注意到,静态fusion在不正确的位置输出检测。由于幽灵交叉口与真实交叉口竞争,此时会错过两个真实目标。

在“当前估计的轨迹”图中,注意跟踪器能够对所有5个目标保持轨迹,而不会产生任何幽灵或虚假轨迹。

展品展览(剧院展览,1);

下图显示了轨迹1和轨迹2的俯视图以及模拟结束时的历史。历史由连接轨迹的橙色线表示。请注意,轨迹历史接近目标的真实轨迹。

展示抓取(剧场展示,2,假);

总结

在本例中,您学习了如何模拟使用双基地传感器的场景。您了解了使用双基地测量跟踪目标所面临的挑战。你使用了staticDetectionFuser融合来自多个目标的双基地距离探测跟踪器用融合的位置测量值跟踪目标。

金宝app支持功能

helperBistaticRangeFusion引信距离探测以三角定位目标位置

函数(pos机,x) = helperBistaticRangeFusion(检测)%此功能仅用于示例目的,将来可能会删除%释放。这个函数返回目标的估计位置和协方差%考虑到由此产生的双基地探测。版权所有2019 The MathWorks, Inc.%做一个粗糙的浇注,因为至少需要3个测量值找到解决办法。如果numel(检测)<3个位置=1个10*个(3,1);cov=2*眼(3);其他的从测量中获取信息范围=零(numel(检测),1);接收器位置=零(3,numel(检测));发射器位置=检测{1}。测量参数。发射器位置;对于rLoc = detection{i}.MeasurementParameters(2).OriginPosition;receiverLocations (:, i) = rLoc;%球面相交法假设测量是%Remit+Rrecv。双基地测量定义为Remit+Rrecv-Rb。%将Rb添加到实际测量值中L=标准(发射极位置(:)-rLoc(:);范围(i)=检测{i}。测量+L;终止pos = helperSphericalIntersection(范围、receiverLocations、emitterLocation);%协方差只在需要时计算。这有助于节省%静态融合成本计算期间的计算,其中%职位要求。如果nargout>1 cov=线性使用FCN(位置、检测);终止终止终止%%测量噪声的线性融合函数函数thisDetections measCov = linearFusionFcn (pos)线性噪声融合函数。它需要可测量的雅可比矩阵来使用线性%转变。用匀速状态来计算雅可比矩阵。estState=零(6,1);estState(1:2:end)=位置;n=努美尔(此检测);总雅可比矩阵=零(n,3);总协方差=零(n,n);对于i=1:numel(thisDetections)H=cvmeasjac(estState,thisDetections{i}.MeasurementParameters);totalJacobian(i,:)=H(1,1:2:end);Total协方差(i,i)=thisDetections{i}.MeasurementNoise;终止toInvertJacobian=总体Jacobian'/(总体协方差)*总体Jacobian;I=眼睛(3);%具有0雅可比wrt z的二维到三维转换。如果toInvertJacobian(3,3) == 0终止measCov = I / toInvertJacobian;%返回真正定值。measCov = (measCov + measCov')/2;measCov (~ isfinite (measCov)) = 1000;%inf和nan的一些大数字终止

检测双站目标范围从场景中的目标生成双基地仅距离检测。

函数检测= detectBistaticTargetRange(场景、时间emitterIdx removeFalseAlarms)从场景中获取平台。平台= scene.Platforms;%表示是否应该从检测中删除错误警报的标志。如果nargin == 3 removefalse告警= false;终止区分接收器和目标,以消除从%接受者。假设这些检测可以从中删除%使用先前信息的批处理。isReceiver = cellfun (@ (x) ~ isempty (x.Sensors) scene.Platforms);allIDs = cellfun (@ (x) x.PlatformID scene.Platforms);receiverIDs = allIDs (isReceiver);产生射频辐射emitPlatform=platforms{emitteredx};txEmiss=emit(emitPlatform,time);%传播排放并反映平台的这些排放。reflSigs=雷达通道(txEmiss、平台、,“HasOcclusion”、假);%从双基地雷达传感器产生检测。检测={};numPlat=numel(平台);对于iPlat=1:numPlat thisPlatform=platforms{iPlat};%接收发射,计算干扰损失,以及%生成双基地检测。thisDet =检测(thisPlatform, refsig, time);%移除双基站接收器的检测。只有来自目标平台的检测将被融合和跟踪。DetectedTargetId=cellfun(@(x)x.ObjectAttributes{1}.TargetIndex,thisDet);toRemove=ismember(DetectedTargetId,ReceiverId)| RemoveFalseArms*(DetectedTargetId<=0);thisDet=thisDet(~toRemove);%将此平台的检测添加到检测阵列。检测=[检测;thisDet];% #好< AGROW >终止%确定此模拟时间的发射器位置和速度。emitterPosition = emitPlatform.Trajectory.Position (:);%更新检测结构,以表明只保留双基地距离测量。对于iD = 1:numel(detections) detections{iD}。测量=检测{iD} .Measurement(结束);%#ok %范围测量检测{iD}。MeasurementNoise =检测{iD} .MeasurementNoise(结束,结束);%#正常%范围的测量噪声检测{iD}.MeasurementParameters(1).hasarizontation=false;%#ok %更新测量参数以表明方位角不再存在检测{iD} .MeasurementParameters(1)。HasElevation = false;%#ok %更新测量参数以表明海拔不再存在检测{iD} .MeasurementParameters(1)。EmitterPosition = EmitterPosition;%#ok %添加发射器位置终止终止

参考文献

  1. Malanowski, M.和K. Kulpa。多基地无源雷达目标定位的两种方法。IEEE Transactions on Aerospace and Electronic Systems,第48卷,第1期,2012年1月,第572-578页。

  2. 威利斯,新泽西州双基地雷达。罗利:科技出版公司,2005。