主要内容

分阶段阵列系统仿真的场景可视化

此示例显示如何使用方案查看器可视化系统级模拟。

介绍

相控阵系统模拟通常包括许多移动物体。例如,阵列和目标都可以是运动。此外,每个移动对象可能具有自己的方向,因此当在模拟中存在的更多玩家时,簿记变得越来越具有挑战性。

相控阵系统工具箱™提供了一个方案查看器,以帮助可视化雷达和目标如何在空间中移动。通过方案查看器,可以遵循每个移动平台的轨迹,并检查雷达和目标之间的相对运动。

可视化轨迹

在第一示例中,方案查看器用于可视化雷达和目标的轨迹。假设雷达距离距离在3公里外的原产地区围绕。雷达的平面在250米/秒(约560英里/小时)下飞,并使大约每60秒圆。

v = 250;deltaphi = 360/60;SensorMotion = phased.platform(......'初始位置',[0; -3000; 500],......'velocitysource''输入端口'......'初始速度',[0; v; 0]);

目标是沿着沿X轴线的直线道路行进,速度为30m / s。这约为67英里/小时。

tgtmotion = phased.platform('初始位置',[0; 0; 0],......'速度',[30; 0; 0]);

查看器设置为每0.1秒更新。对于最简单的情况,光束未在观看者中示出。

tau = 0.5;sceneview = phased.scenarioviewer('showbeam''没有任何');

此代码模拟并显示雷达和目标的轨迹。

为了M = 1:Tau:60 [SensorPos,SensorVel] =敏感(TAU,......v * [cosd(m * deltaphi); sind(m * deltaphi); 0]);[tgtpos,tgtvel] = tgtmotion(tau);场景(SensorPos,SensorVel,TGTPOS,TGTVel);粗暴;结尾

可视化轨迹和雷达梁

下一个自然步骤是将天线阵列梁与观看者中的轨迹一起可视化。以下示例显示了如何可视化两个在空间中移动的雷达和三个目标。特别是。第一雷达具有跟踪第一目标的光束。

首先,设置雷达和目标。注意第一个雷达和第一个目标符合上一节中使用的匹配。

SensorMotion = phased.platform(......'初始位置',[0 0; -3000 500; 500 1],......'velocitysource''输入端口'......'初始速度',[0 100; v 0; 0 0],......'Orientationaxesoutputport', 真的);tgtmotion = phased.platform(......'初始位置',[0 2000.66 3532.63; 0 0 500; 0 500 500],......'速度',[30 120-120;0 0-20;0 0 60],......'Orientationaxesoutputport', 真的);

要正确指向光束,方案查看器需要了解雷达和目标的方向信息。可以通过在每个模拟步骤中将RioreationAdeOutputPort属性设置为True来从这些移动平台获得这样的信息,如上面的代码所示。要将此信息传递给查看器,请将方案查看器的RosentationInputPort属性设置为True。

sceneview = phased.scenarioviewer('beamrange',[3e3 3e3],......'beamwidth',[5 5],......'showbeam''全部'......'Cameraperseplive''风俗'......'cameraposition',[-15453.85 -19716.96 13539],......'camericooination',[-47 -27 0]',......'cameraviewangle',11.28,......'OrientationInputport', 真的,......“UpdateRate”,1 / tau);

注意显示的光束具有5度的波束宽度,长度为3公里。还调整相机透视图以更清晰地显示所有轨迹。

为了m = 1:60 [SensorPos,SensorVel,Sensoraxis] = SensorMotion(Tau,......[v * [cosd(m * deltaphi); sind(m * deltaphi); 0] [100;0;0]]);[TGTPOS,TGTVEL,TGTAXIS] = TGTMOTION(TAU);%雷达1轨道目标1[LCLRNG,LCLANG] = rangeangle(tgtpos(:,1),sensorpos(:,1),......传感器(:,:1));%更新波束方向sceneview.beamstering = [lclang [0; 0]];场景(SensorPos,SensorVel,Sensoraxis,TGTPOS,TGTVEL,TGTAXIS);粗暴;结尾

系统模拟可视化

方案查看器也可以与其他可视化组合在一起,以提供在模拟下系统的更多信息。下一个示例使用方案查看器与范围时间强度(RTI)范围和多普勒时间强度(DTI)范围一起使用,因此工程师可以检查目标的估计范围和范围率是否与地面真理匹配。

该示例使用创建的雷达系统模拟雷达接收器的测试信号例子。

加载BasicMonostaticRadareXampledata.mat

考虑有三个目标的场景。

fc = radiator.OperatingFrequency;fs = waveform.SampleRate;c = radiator.PropagationSpeed;SensorMotion = phased.platform(......'初始位置',[0;0;10],......'速度',[0;0;0]);target = phased.radartarget(......'veslrcs',[1.6 2.2 1.05],......“OperatingFrequency”,FC);tgtmotion = phased.platform(......'初始位置',[2000.66 3532.63 3845.04;0 0 0; 10 10 10],......'速度',[120 -120 0;0 0 0;0 0 0]);channel = phased.freespace(......'采样率',fs,......'twowaypropagation',真的,......“OperatingFrequency”,FC);

回波到达接收端后,使用匹配滤波器和脉冲积分器进行距离估计。

matchingcoeff = getMatchedFilter(波形);matchingdelay =尺寸(匹配coeff,1)-1;matchedfilter = phased.matchedfilter(......'系数',匹配的可接定的东西,......'gainoutputport',真正的);脉冲重复频率= waveform.PRF;fast_time_grid = unigrid (0,1 / fs, 1 /脉冲重复频率,'[)');RANGEGATES = C * FAST_TIME_GRID / 2;lambda = c / fc;max_range = 5000;TVG = Phased.TimevanyingGain(......'rangeloss',2 * fspl(衡量,lambda),......'referenceloss',2 * fspl(max_range,lambda));num_pulse_int = 10;

因为不必以脉冲重复率监视轨迹,所以该示例假定系统以20Hz的速率读取雷达测量。该示例使用场景查看器来监视场景和范围时间强度(RTI)绘图以及多普勒时间强度(DTI)图来检查估计的范围和范围率值。

r_update = 20;sceneview = phased.scenarioviewer(“UpdateRate”,r_update,......'标题'“具有三个目标的单身雷达”);RTISCOPE = PHASED.INTENSICSSCOPE('名称''范围 - 时间强度范围'......'xlabel''范围(m)'......'xresolution',c /(2 * fs),......'xoffset', - (matchingdelay-1)* c /(2 * fs),......'timeresolution',1 / r_update,'时间跨度',5,'浓度''D b');nfft = 128;df = prf / nfft;dtiscope = phased.Intssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssscope(......'名称''多普勒 - 时间强度范围'......'xlabel''速度(m / sec)'......'xresolution',dop2speed(df,lambda)/ 2,......'xoffset',dop2speed(-prf / 2,lambda)/ 2,......'timeresolution',1 / r_update,'时间跨度',5,'浓度''D b');

下一节执行系统仿真并生成可视化。

%预先分配阵列,用于改进的处理速度rxpulses = zeros(numel(ramegates),num_pulse_int);为了k = 1:10 0为了m = 1:num_pulse_int%更新传感器和目标位置[sensorpos, sensorvel] = sensormotion(1 /脉冲重复频率);[tgtpos, tgtvel] = tgtmotion(1 /脉冲重复频率);%计算传感器所示的目标角度[〜,tgtang] = rangeangle(tgtpos,sensorpos);%模拟脉冲在目标方向上的传播pulse = waveform();[txsig,txstatus] =发射器(脉冲);TXSIG =散热器(TXSIG,TGTANG);TXSIG =通道(TXSIG,SENSORPOS,TGTPOS,SENSERVEL,TGTVEL);%反映目标脉冲tgtsig =目标(txsig);%接收传感器的目标返回rxsig =收集器(tgtsig,tgtang);rxpuarses(:,m)=接收器(rxsig,〜(txstatus> 0));结尾rxpulses = matchedfilter(rxpuarses);正确匹配的过滤器延迟RxPulses =缓冲液(......rxpuarses(matchingdelay + 1:结束),......尺寸(rxpulses,1));rxpulses = tvg(rxpuarses);rx_int = pulsint(rxpurses,'无组织');%显示RTIRTISCOPE(RX_INT);%显示DTI.rx_dop =均值(fftshift(......ABS(FFT(Rxpulses,NFFT,2)),2));dtiscope(rx_dop。');%显示场景场景(SensorPos,SensorVel,TGTPOS,TGTVel);当需要下次更新时,%执行下一次检测敏感(1 / R_Update);tgtmotion(1 / r_update);结尾隐藏(dtiscope);隐藏(rtiscope);

隐藏(演讲);显示(RTISCOPE);

在仿真期间更新方案查看器和RTI都是可以轻松验证模拟是否正常运行,并且在模拟运行时,范围估计是否与地面真实匹配。

隐藏(rtiscope);显示(dtiscope);

类似地,DTI提供每个目标的范围率估计。

结论

此示例描述了可视化雷达和目标轨迹的不同方式。这种可视化有助于提供系统动态的整体图像。