目录

  • FMCW波形
  • 目标模型
  • 雷达系统设置
  • 雷达信号模拟
  • 距离和多普勒估计
  • 距离-多普勒耦合效应
  • 三角形扫描
  • 双射线传播
  • 总结
  • 参考

  这个例子展示了如何使用调频连续波(FMCW)技术建立汽车自适应巡航控制系统的模型。该示例执行移动车辆的距离和多普勒估计。与国防工业中常见的脉冲雷达系统不同,汽车雷达系统通常采用FMCW技术。与脉冲雷达相比,FMCW雷达体积小、功耗低、制造成本低。因此,FMCW雷达只能监视更小的距离。

FMCW波形

  考虑用于自适应巡航控制(ACC)的汽车远程雷达(LRR)。这种雷达通常占用77GHz左右的频段,如[1]所示。雷达系统不断地估计它所安装的车辆和它前面的车辆之间的距离,并在两者太近时向驾驶员发出警报。下图显示了ACC的示意图。

  ACC系统中常用的波形是FMCW。使用FMCW技术进行距离测量的原理可用下图说明。

  接收信号是发送信号的延时副本,其中延时Δt\Delta tΔt与范围有关。因为信号总是扫过一个频带,所以在扫频期间的任何时刻,频率差fbf_bfb​是发射信号和接收信号之间的常数。通常称为拍频。因为扫频是线性的,所以我们可以从拍频中导出时延,然后将时延转换为范围。
  在ACC设置中,雷达需要监视的最大距离约为200米,系统需要能够区分相距1米的两个目标。根据这些要求,可以计算波形参数。

fc = 77e9;
c = 3e8;
lambda = c/fc;

  扫描时间可以根据信号在无歧义的最大范围内移动所需的时间来计算。一般来说,对于FMCW雷达系统,扫描时间至少应为往返时间的5到6倍。本例使用系数5.5。

range_max = 200;
tm = 5.5*range2time(range_max,c);

  扫描带宽可根据距离分辨率确定,扫描斜率可同时使用扫描带宽和扫描时间计算。

range_res = 1;
bw = range2bw(range_res,c);
sweep_slope = bw/tm;

  由于FMCW信号往往占用大量带宽,盲目地将采样率设置为带宽的两倍往往会影响A/D转换器硬件的性能。为了解决这个问题,人们通常可以选择较低的采样率。这里可以考虑两件事:
  1.对于复杂的采样信号,采样率可以设置为与带宽相同。
  2.FMCW雷达利用消隐信号中的拍频估计目标距离。雷达需要检测的最大拍频是最大距离对应的拍频和最大多普勒频率之和。因此,采样率只需要是最大拍频的两倍。
  在本例中,对应于最大范围的拍频由下式给出

fr_max = range2beat(range_max,sweep_slope,c);

  此外,行驶车辆的最大速度约为230km/h。因此,最大多普勒频移和最大拍频可计算为

v_max = 230*1000/3600;
fd_max = speed2dop(2*v_max,lambda);fb_max = fr_max+fd_max;

  该示例采用最大拍频和带宽的两倍中的较大者的采样率。

fs = max(2*fb_max,bw);

下表总结了雷达参数。

 系统参数           值


 工作频率(GHz)     77

 最大目标距离(m)    200

 距离分辨率(m)      1

 最大目标速度(km/h)    230

 扫描时间(μs)       7.33

 扫描带宽(MHz)       150

 最大拍频(MHz)      27.30

 采样率(MHz)        150

利用以上信息,可以建立雷达系统中使用的FMCW波形。

waveform = phased.FMCWWaveform('SweepTime',tm,'SweepBandwidth',bw,...'SampleRate',fs);

  这是一个上扫线性调频连续波信号,通常称为锯齿形。可以检查生成信号的时频图。

sig = waveform();
subplot(211); plot(0:1/fs:tm-1/fs,real(sig));
xlabel('Time (s)'); ylabel('Amplitude (v)');
title('FMCW signal'); axis tight;
subplot(212); spectrogram(sig,32,16,32,fs,'yaxis');
title('FMCW signal spectrogram');

目标模型

  ACC雷达的目标通常是它前面的一辆车。本例假设目标车辆在雷达引导下以96 km/h的速度沿x轴向前移动50 m。
  根据文献[1],汽车的雷达截面可以根据雷达和目标汽车之间的距离来计算。

car_dist = 43;
car_speed = 96*1000/3600;
car_rcs = db2pow(min(10*log10(car_dist)+5,20));cartarget = phased.RadarTarget('MeanRCS',car_rcs,'PropagationSpeed',c,...'OperatingFrequency',fc);
carmotion = phased.Platform('InitialPosition',[car_dist;0;0.5],...'Velocity',[car_speed;0;0]);

  传播模型假定为自由空间。

channel = phased.FreeSpace('PropagationSpeed',c,...'OperatingFrequency',fc,'SampleRate',fs,'TwoWayPropagation',true);

雷达系统设置

  雷达系统的其余部分包括发射机、接收机和天线。本例使用了[1]中给出的参数。请注意,此示例仅对主要组件建模,而忽略了其他组件(如耦合器和混合器)的影响。另外,为了简单起见,假设天线是各向同性的,并且天线的增益包括在发射机和接收机中。

ant_aperture = 6.06e-4;                         % in square meter
ant_gain = aperture2gain(ant_aperture,lambda);  % in dBtx_ppower = db2pow(5)*1e-3;                     % in watts
tx_gain = 9+ant_gain;                           % in dBrx_gain = 15+ant_gain;                          % in dB
rx_nf = 4.5;                                    % in dBtransmitter = phased.Transmitter('PeakPower',tx_ppower,'Gain',tx_gain);
receiver = phased.ReceiverPreamp('Gain',rx_gain,'NoiseFigure',rx_nf,...'SampleRate',fs);

  汽车雷达一般安装在车辆上,因此经常处于运动状态。本例假设雷达以100 km/h的速度沿x轴移动。所以目标车正以4公里/小时的相对速度接近雷达。

radar_speed = 100*1000/3600;
radarmotion = phased.Platform('InitialPosition',[0;0;0.5],...'Velocity',[radar_speed;0;0]);

雷达信号模拟

  如前几节所述,FMCW雷达通过检测去啁啾信号中的拍频来测量距离。为了提取该频率,通过将接收信号与发送信号混合来执行去啁啾操作。混合后,去啁啾信号仅包含与目标范围相对应的单个频率分量。
  此外,即使可以从单个扫描中提取多普勒信息,也常常在多个扫描中提取多普勒频移,因为在一个脉冲内,多普勒频率与拍频是不可区分的。为了测量距离和多普勒,FMCW雷达通常执行以下操作:
 1.波形发生器产生FMCW信号。
 2.发射器和天线将信号放大并将信号辐射到太空中。
 3.信号传播到目标,被目标反射,然后传回雷达。
 4.接收天线收集信号。
 5.接收到的信号被去啁啾并保存在缓冲器中。
 6.一旦一定数量的扫描填满缓冲器,在距离和多普勒中执行傅里叶变换以提取拍频和多普勒频移。利用这些结果可以估计目标的距离和速度。距离和多普勒也可以显示为图像,并给出目标在距离和速度域中的直观指示。
  下一节将模拟上面概述的过程。共模拟了64次扫频,最后产生了距离-多普勒响应。
  在模拟过程中,频谱分析仪被用来显示每个接收到的扫描的频谱以及它的去啁啾对应物。

specanalyzer = dsp.SpectrumAnalyzer('SampleRate',fs,...'PlotAsTwoSidedSpectrum',true,...'Title','Spectrum for received and dechirped signal',...'ShowLegend',true);

  接下来,运行模拟循环。

rng(2012);
Nsweep = 64;
xr = complex(zeros(waveform.SampleRate*waveform.SweepTime,Nsweep));for m = 1:Nsweep% Update radar and target positions[radar_pos,radar_vel] = radarmotion(waveform.SweepTime);[tgt_pos,tgt_vel] = carmotion(waveform.SweepTime);% Transmit FMCW waveformsig = waveform();txsig = transmitter(sig);% Propagate the signal and reflect off the targettxsig = channel(txsig,radar_pos,tgt_pos,radar_vel,tgt_vel);txsig = cartarget(txsig);% Dechirp the received radar returntxsig = receiver(txsig);dechirpsig = dechirp(txsig,sig);% Visualize the spectrumspecanalyzer([txsig dechirpsig]);xr(:,m) = dechirpsig;
end


  从频谱范围可以看出,尽管接收到的信号是宽带(信道1),但是扫过整个带宽,去啁啾信号变为窄带(信道2)。

距离和多普勒估计

  在估计距离和多普勒的值之前,最好先看看所有64次扫描的缩放距离多普勒响应。

rngdopresp = phased.RangeDopplerResponse('PropagationSpeed',c,...'DopplerOutput','Speed','OperatingFrequency',fc,'SampleRate',fs,...'RangeMethod','FFT','SweepSlope',sweep_slope,...'RangeFFTLengthSource','Property','RangeFFTLength',2048,...'DopplerFFTLengthSource','Property','DopplerFFTLength',256);clf;
plotResponse(rngdopresp,xr);                     % Plot range Doppler map
axis([-v_max v_max 0 range_max])
clim = caxis;


  从距离多普勒响应可以看出,前面的车有40多米远,几乎是静止的。这是意料之中的,因为汽车相对于雷达的径向速度只有4公里/小时,也就是说只有1.11米/秒。
  有很多方法可以估计目标车的射程和速度。例如,可以选择几乎任何频谱分析方法来提取拍频和多普勒频移。本例使用根MUSIC算法来提取拍频和多普勒频移。
  作为旁注,虽然接收到的信号是在150mhz下采样的,因此系统可以达到所需的距离分辨率,但是在去chirp之后,人们只需要以对应于最大拍频的速率对其进行采样。由于最大拍频通常小于所需的扫频带宽,因此可以对信号进行抽取以降低硬件成本。下面的代码片段显示了抽取过程。

Dn = fix(fs/(2*fb_max));
for m = size(xr,2):-1:1xr_d(:,m) = decimate(xr(:,m),Dn,'FIR');
end
fs_d = fs/Dn;

  为了估计距离,首先利用相干积分扫描估计拍频,然后将其转换为距离。

fb_rng = rootmusic(pulsint(xr_d,'coherent'),1,fs_d);
rng_est = beat2range(fb_rng,sweep_slope,c)

rng_est =
  42.9976

  其次,在目标存在的范围内估计扫频的多普勒频移。

peak_loc = val2ind(rng_est,c/(fs_d*2));
fd = -rootmusic(xr_d(peak_loc,:),1,1/tm);
v_est = dop2speed(fd,lambda)/2

v_est =
  1.0830

  请注意,距离和多普勒估计都非常精确。

距离-多普勒耦合效应

  与线性调频信号(如FMCW信号)相关的一个问题是距离-多普勒耦合效应。如前所述,目标范围对应于拍频。因此,精确的距离估计依赖于拍频的精确估计。然而,多普勒频移的存在改变了拍频,导致了有偏的距离估计。
  对于本例中概述的情况,由目标和雷达之间的相对速度引起的距离误差是

deltaR = rdcoupling(fd,sweep_slope,c)

deltaR =
   -0.0041

  这个误差很小,我们可以放心地忽略它。
  尽管目前的设计达到了预期的性能,但有一个参数值得进一步关注。在当前配置中,扫描时间约为7微秒。因此,系统需要在很短的时间内扫过150mhz频段。这种汽车雷达可能无法满足成本要求。此外,考虑到汽车的速度,没有必要每7微秒进行一次测量。因此,汽车雷达通常使用较长的扫描时间。例如,在[2]中使用的波形具有与本示例中设计的波形相同的参数,只是扫描时间为2ms。
  扫描时间越长,距离-多普勒耦合越明显。要看到这种效果,首先重新配置波形,使用2ms作为扫描时间。

waveform_tr = clone(waveform);
release(waveform_tr);
tm = 2e-3;
waveform_tr.SweepTime = tm;
sweep_slope = bw/tm;

  现在计算距离多普勒耦合。

deltaR = rdcoupling(fd,sweep_slope,c)

deltaR =
  -1.1118

  1.14米的距离误差不能再被忽略,需要补偿。当然,我们可以考虑按照前面章节中概述的相同步骤进行,同时估计距离和多普勒,从多普勒频移计算出距离-多普勒耦合,然后从估计中消除误差。
  不幸的是,这个过程不能很好地工作与长扫描时间。扫频时间越长,整个扫频的采样率越低,因此降低了雷达明确检测高速车辆的能力。例如,使用2ms的扫描时间,雷达系统可以使用传统的多普勒处理检测到的最大无模糊速度是

v_unambiguous = dop2speed(1/(2*tm),lambda)/2

v_unambiguous =
  0.4870

  无模糊速度仅为0.48m/s,这意味着相对速度1.11m/s不能被无模糊检测。这意味着不仅目标车在多普勒处理中会显得较慢,而且距离-多普勒耦合也无法得到正确补偿。
  一种不用多普勒处理的方法是采用三角形扫描模式。下一节将展示三角形扫描如何解决这个问题。

三角形扫描

  在三角形扫描中,有一个向上扫描和一个向下扫描形成一个周期,如下图所示。

  两个扫掠的坡度相同,只是标志不同。从图中可以看出,多普勒频率的存在对上下扫频中的拍频(fbuf{bu}fbu和fbdf{bd}fbd)有不同的影响。因此,通过组合上下扫的拍频,可以平均多普勒的耦合效应,并且可以得到距离估计而不产生模糊。
  首先,将波形设置为使用三角形扫描。

waveform_tr.SweepDirection = 'Triangle';

  现在模拟信号返回。由于扫描时间较长,在处理之前收集的扫描次数较少(16次对64次)。

Nsweep = 16;
xr = helperFMCWSimulate(Nsweep,waveform_tr,radarmotion,carmotion,...transmitter,channel,cartarget,receiver);

  分别处理上扫和下扫以获得与上扫和下扫对应的拍频。

fbu_rng = rootmusic(pulsint(xr(:,1:2:end),'coherent'),1,fs);
fbd_rng = rootmusic(pulsint(xr(:,2:2:end),'coherent'),1,fs);

  同时利用上扫和下扫拍频,得到了正确的距离估计。

rng_est = beat2range([fbu_rng fbd_rng],sweep_slope,c)

rng_est =
   42.9658

  此外,多普勒频移和速度也可以以类似的方式恢复。

fd = -(fbu_rng+fbd_rng)/2;
v_est = dop2speed(fd,lambda)/2

v_est =
   1.1114

  估计的射程和速度与实际值吻合,分别为43m和1.11m/s。

双射线传播

  为了完成讨论,在现实中,雷达与目标飞行器之间的实际信号传播比目前的模型更为复杂。例如,无线电波也可以通过反射到达目标车辆。描述这种多路径情况的一个简单但广泛使用的模型是双射线模型,其中信号通过两条路径从雷达传播到目标车辆,一条是直接路径,另一条是道路外的反射路径,如下图所示。

  道路外的反射影响信号的相位,目标车辆上的接收信号是通过两条路径的信号的相干组合。同样的情况也会发生在返程时,目标车辆反射的信号会传回雷达。因此,根据车辆之间的距离,来自不同路径的信号可能以建设性或破坏性方式增加,使得信号强度随时间波动。这种波动在连续检测阶段会带来一些挑战。
  为了展示多径效应,下一节使用双射线通道模型在雷达和目标车辆之间传播信号。

txchannel = phased.TwoRayChannel('PropagationSpeed',c,...'OperatingFrequency',fc,'SampleRate',fs);
rxchannel = phased.TwoRayChannel('PropagationSpeed',c,...'OperatingFrequency',fc,'SampleRate',fs);
Nsweep = 64;
xr = helperFMCWTwoRaySimulate(Nsweep,waveform,radarmotion,carmotion,...transmitter,txchannel,rxchannel,cartarget,receiver);
plotResponse(rngdopresp,xr);                     % Plot range Doppler map
axis([-v_max v_max 0 range_max]);
caxis(clim);


  在所有设置保持不变的情况下,将得到的具有两条射线传播的距离多普勒图与之前获得的具有视线(LOS)传播信道的距离多普勒图进行比较,表明信号强度下降了近40db,这是显著的。因此,在设计时必须考虑这种影响。一个可能的选择是在垂直方向上形成一个非常尖锐的光束来消除反射。

总结

  这个例子展示了如何使用FMCW信号在汽车自动巡航控制应用中进行距离和多普勒估计。文中还举例说明了如何从接收信号中产生距离多普勒图,并讨论了如何利用三角扫描补偿FMCW信号的距离多普勒耦合效应。最后讨论了多径传播对信号电平的影响。

参考

[1] Karnfelt, C. et al… 77 GHz ACC Radar Simulation Platform, IEEE International Conferences on Intelligent Transport Systems Telecommunications (ITST), 2009.
[2] Rohling, H. and M. Meinecke. Waveform Design Principle for Automotive Radar Systems, Proceedings of CIE International Conference on Radar, 2001.
[3] References

基于FMCW技术的汽车自适应巡航控制相关推荐

  1. FMCW雷达在汽车自适应巡航中的应用(学习摘自MathWorks笔记)

    FMCW雷达更小,功耗更低,通常用于汽车自适应巡航系统(ACC),这种雷达通常占据77 GHz左右的频段.雷达系统不断估计安装在其上的车辆与其前方车辆之间的距离,并在两者变得太近时向驾驶员发出警报.下 ...

  2. 汽车自适应巡航控制策略【CarSim/Simulink 仿真】

    一.主要内容 主要围绕自主决策带换道功能的横纵向一体的 ACC 控制策略展开研究,旨在实现城市快速干道及高速公路工况下 ACC 车辆的自主换道功能. 1通过阅读大量文献中对国内外智能汽车技术的发展及研 ...

  3. Simulink/Carsim联合仿真,基于pid,mpc自适应巡航控制,定速巡航,紧急避撞等

    Simulink/Carsim联合仿真,基于pid,mpc自适应巡航控制,定速巡航,紧急避撞等. 包括以下: (1)Carsim参数设置cpar文件 (2)matlab代码s函数 (3)Simulin ...

  4. 基于mpc(最优控制)的车辆自适应巡航控制(acc),模型预测控制,通过carsim与matlab联防实现速度与间距控制

    基于mpc(最优控制)的车辆自适应巡航控制(acc),模型预测控制,通过carsim与matlab联防实现速度与间距控制. ID:4529677970280675一無所有`

  5. 5辆车组成的编队实现ACC自适应协同控制,通过考虑前车的加速度和距离,实现自适应巡航控制,仿真平台基于carsim/Simulink实现

    5辆车组成的编队实现ACC自适应协同控制,通过考虑前车的加速度和距离,实现自适应巡航控制,仿真平台基于carsim/Simulink实现. 算法结构分为两层,上层滑膜控制器差生期望的加速度,下层通过控 ...

  6. 网联车辆队列生态式协同自适应巡航控制策略研究-杨昱

    车队行驶方式划分为基于被动跟车和主动规划的 ECACC 策 略,分别对队列行驶的两个主要性能即跟车和节能进行了建模与验证.在底层 跟车控制方面对队列行驶的技术基石即 CACC 跟车控制器进行了建模.分 ...

  7. 全球与中国盲点检测(BSD)系统和自适应巡航控制(ACC)系统市场深度研究分析报告

    [报告篇幅]:91 [报告图表数]:137 [报告出版时间]:2021年12月 报告摘要 2021年全球盲点检测(BSD)系统和自适应巡航控制(ACC)系统市场销售额达到了38亿美元,预计2028年将 ...

  8. ACC自适应巡航控制模型simulink模型+carsim设置 购模型说明文件和操作说明

    ACC自适应巡航控制模型simulink模型+carsim设置 购模型说明文件和操作说明 现有:6980642513652384用户_661928657

  9. 基于RFID技术的汽车总装制造执行系统应用架构

    基于RFID技术的汽车总装制造执行系统应用架构 4.1系统应用结构 系统通过RFID处理模块向原有MES系统提供实时可靠的数据支持,并根据新的业务流程对MES系统进行再造,形成"基于RFID ...

最新文章

  1. 网管软件——Net Meter V3.3中文版
  2. 2013 2016 年期末考试
  3. 再见安卓 鸿蒙,安卓系统:鸿蒙系统,正式再见
  4. 使用ueditor实现多图片上传案例——DaoImpl层(ShoppingDaoImpl)
  5. 一个基于JRTPLIB的轻量级RTSP客户端(myRTSPClient)——收流篇:(四)example代码解析...
  6. JSP-BUG-The type java.xx.xx cannot be resolved
  7. 导购效果跟踪: SPM
  8. 随想录(开源代码的学习方法)
  9. HDFS Erasure Coding介绍
  10. 噪声和振动分析软件,它代表了统计能量分析(SEA)领域的最高水平AutoSEA2 V2.8
  11. html如何自动获取屏幕高度,css如何获取屏幕高度?
  12. 二叉树的先序、中序、后续遍历(递归)
  13. 搭建Springboot单体项目
  14. oracle 表字段拆分,oracle 字段拆分
  15. 防止PCB会过期,以及过期后的处理办法
  16. 公司网站制作需要多少钱?先了解这三个要点!
  17. “猪”事大吉 | 为什么猪是最后一个生肖?
  18. 使用JDK自带的工具keytool生成证书
  19. 01-初始化Vite项目
  20. python离线安装selenium_UI自动化:Python+Selenium3安装

热门文章

  1. 我收集的几个威客网站
  2. UEFI开发探索32 – 有趣的图像特效
  3. 【软切换】WCDMA软切换技术的仿真
  4. html5class命名规范,开发过程中应该遵守哪些编码规范和class命名规范?
  5. android studio自定义app图标
  6. 如何在PC桌面上添加便笺
  7. C#中文件转换为byte[]及Base64String
  8. 受限玻尔兹曼机(RBM)在Tensorflow的实现
  9. Markdown如何画时序图,一篇就够了
  10. WPF 设置纯软件渲染