基于毫米波雷达的无人机避障仿真

文章介绍了毫米波雷达在无人机避障中的重要性,采用线性调频信号提高测距精度,并通过脉冲压缩技术增强距离分辨力。通过仿真展示了信号处理流程,包括回波产生、采样解调、滤波抽取和脉冲压缩,证明了毫米波雷达能有效探测障碍物距离,为无人机安全飞行提供支持。
摘要由CSDN通过智能技术生成

一、任务背景

毫米波是频率30Hz至300GHz内的电磁波,对应波长10mm至1mm。毫米波雷达,是工作在毫米波波段探测的雷达,其工作频段处于大气窗口且大气衰减相对较小。
同厘米波雷达相比,毫米波雷达具有体积小、质量轻、空间分辨率高的特点。
同红外、激光等光电雷达相比,毫米波雷达频谱范围宽、距离分辨力高、测速灵敏度高、穿透能力强;具有受天气等因素影响较小,能够在全天整个时段内(大雨天除外)快速探测与感知周边环境物体的距离、速度、角度等信息的特点,帮助无人机在飞行过程中自动规避障碍物、在降落过程中规避危险区域,在安全工作领域提供准确快速的智能预警,尤其在可见度较低的情况下能为无人机操作员提供进一步的安全辅助。另外,毫米波雷达的抗干扰、反隐身能力也优于其他微波雷达。毫米波雷达能分辨识别很小的目标,而且能同时识别多个目标,同时体积小、机动性高和隐蔽性好,在战场上生存能力强。
波段名称 波长范围 频率范围 频段名称
分米波 1m~10cm 0.3~3GHz 超高频(UHF)
厘米波 10cm~1cm 3~30GHz 特高频(SHF)
毫米波 1cm~1mm 30~300GHz 极高频(EHF)
亚毫米波 1mm~0.1mm 300~3000GHz 超极高频
表1 微波波段表
在这里插入图片描述

图 1 性能优劣对比图
在这里插入图片描述

随着智能技术的发展,无人机凭借其低成本、高机动性等优点,大量应用于军事及民用领域。在无人机技术的众多研究方向中,避障技术是保障既定任务顺利完成的关键环节。为实现无人机成功避障,一个有效的解决方案就是搭载传感器对飞行环境进行感知,毫米波雷达凭借其全天候、低成本、体积小、精度高等优点可以为无人机成功避障提供强有力的保障。

二、方案设计

以无人机为参考,我们对毫米波雷达技术进行了深入研究,为了产生信号方便,同时使多普勒频移的时候脉压结果变化小,我们采用线性调频信号。在线性调频连续波的基础上应用了提高雷达测距精度的几种方法:线性调频Z变换(Chirp-Z)、快速傅里叶变换(FFT)/离散时间傅里叶变换结合(FFT-DTFT)、混合信号的滤波和重采样,并对其进行了仿真,实现了测距的功能。根据分辨距离选择适当的躲避时间,进而防止无人机与障碍物相撞。
线性调频信号指持续期间频率连续线性变化的信号,是一种常用的雷达信号。可以采用如下数学表达式表示:
在这里插入图片描述

其中,f为基础频率,B为调频范围,T为脉冲宽度。
FMCW雷达在扫频周期内发射频率变化的连续波,被物体反射后的回波与发射信号有一定的频率差,通过测量频率差可以获得目标与雷达之间的距离信息,差频信号频率较低,一般为KHz级,因此硬件处理相对简单、适合数据采集并进行数字信号处理。FMCW雷达收发同时,理论上不存在脉冲雷达所存在的测距盲区,并且发射信号的平均功率等于峰值功率,因此只需要小功率的器件,从而降低了被截获干扰的概率;其缺点是测距量程较短,距离多普勒耦合和收发隔离难。
整体设计流程图如图2所示:
在这里插入图片描述

图 2 整体设计流程图

三、设计原理

3.1线性调频信号

作用距离和距离分辨力是雷达最重要的两个技术指标。作用距离取决于发射信号的能量,发射信号的能量又与发射脉冲的功率和脉冲宽度成正比。因为发射机峰值功率是有限的,所以通过增加脉冲宽度的方法来增加信号能量以增大雷达的作用距离。雷达的距离分辨力取决于发射信号带宽,带宽越大,距离分辨力越好。然而发射窄脉冲必然导致平均功率下降,进而减小雷达的作用距离。为了兼顾雷达的作用距离和距离分辨力,发射信号应同时具备大时宽和大带宽的特点,为此选择复杂波形来替代传统的单频脉冲信号。
在发射端调制信号的频率、相位以增大信号的带宽,并发射大时宽的信号以保证作用距离;在接收端通过匹配滤波器,将接收到的宽脉冲信号进行脉冲压缩得到窄脉冲信号,提高距离分辨率,就兼顾了作用距离和距离分辨力。研究最早且应用最广泛的复杂波形是线性调频信号。
在这里插入图片描述

图3 线性调频信号的频率时间图

3.2 线性调频脉冲雷达原理分析

雷达是利用无线电波来检测目标并测定目标的有无、斜距、角位置、相对速度等的装置。雷达发射机的任务是产生符合要求的雷达波形,然后经馈线和收发开关由发射天线辐射出去,遇到目标后,电磁波一部分反射,经接收天线和收发开关由接收机接收,对雷达回波信号做适当处理就可获知目标的相关信息。如图3所示。
假设目标与雷达的相对距离为R,雷达发射信号s(t) ,传播速度为光速C,则经过时间R/C后电磁波到达目标,照射到目标上的电磁波可写为:s(t-R/C)。电磁波与目标相互作用,一部分电磁波被目标散射,被反射的电磁波为as(t-R/C),其中a为目标的雷达散射截面积(RCS)。再经过时间R/C后,被雷达接收天线接收的信号为as(t-2R/C)。如图5所示,其中①为频综产生的chirp信号;②为发射天线发射的chirp信号;③为遇到目标返回,被接收天线接收的chirp信号;④为接收天线与发射信号混频产生的中频信号。

在这里插入图片描述

图4 线性调频与回波混频图
在这里插入图片描述

图5 中频产生示意图
在这里插入图片描述
从雷达回波信号提取出表征目标特性的(表征相对距离)的常用方法如图6所示。
在这里插入图片描述

图6 雷达回波信号处理

3.3数字下变频原理分析

如果原信号采样率为,则经过点重采样处理后,采样频率变为。

3.4脉冲压缩原理分析

在这里插入图片描述

实现脉冲压缩的方式有两种,一种是直接在时域卷积(滤波)法,另一种是在频域中进行处理。
在这里插入图片描述

图7 频域脉冲压缩处理

四、仿真过程

4.1假设条件

1.雷达可探测的距离为20km;
2.无人机与障碍物最大相对速度不超过10m/s;
3.无人机与障碍物直线相向运动;
4.障碍物距离无人机200m之内会对无人机的行进造成影响;
5.反应时间是2min,无人机在距离障碍物1200m时选择躲避。

4.2线性调频信号回波产生模块

在这里插入图片描述
在这里插入图片描述

图8 LFM信号回波产生模块程序流程图
程序设计时先计算三个距离所对应的传播时间,然后根据时间计算其对应的序列长度,建立三个子信号分别作为三个距离上的回波信号。再设计一个10μs的LFM信号。每个回波信号由传播时间、10μs的LFM信号、补零三部分组成,总时长为PRT。最后将三个回波信号叠加起来。

4.3 回波信号采样解调模块

在这里插入图片描述

4.4 滤波抽取模块

解调后的信号中包含有两信号相乘的和频信号和差频信号,本模块滤除掉和频信号分量,之后对滤波后的信号重采样,以降低采样率达到数字下变频的目的。本模块使用到的主要信号如表5所示。在这里插入图片描述

由于回波信号频率分别为f1-f2与f+f2,f1-f2为0-10MHz,为了滤除高频段信号,我们使用MATLAB中的fdatool工具设计一个低通滤波器。滤波器通带频率15MHz,阻带频率18MHz,通带衰减1dB,阻带衰减1dB,将系数导出到工作空间供滤波处理调用。
对滤波后的信号使用downsample函数进行4位的抽取,则抽取后的信号采样频率变为100Mhz/4=25MHz。

4.5 脉冲压缩模块

脉冲压缩模块让下变频后的回波信号通过发射信号的匹配滤波器,提取出每个目标回波的距离信息。
本模块使用的主要信号如表6所示。在这里插入图片描述匹配滤波信号中的f0为0Hz。时域法进行脉冲压缩使用hdt与xrtdown直接进行卷积即可。频域法进行脉冲压缩按照图7中的原理框图处理。

五、仿真结果与分析

5.1 回波产生模块仿真分析

绘制出雷达回波信号的时域图与频域图,结果如图10所示。
在这里插入图片描述

图10雷达回波信号时域与频域
时域中可以在2km、5km、8km处看到三个脉冲波形,但距离检测还不够精确。

5.2 采样解调模块仿真分析

在这里插入图片描述

图11 解调后信号时域图和频域图
绘制出解调,即相乘后的信号时域和频域图。

5.3 滤波抽取模块仿真分析

绘制对解调信号滤波后的信号频域如图12所示。
在这里插入图片描述

图12 解调信号滤波后频域图
经低通滤波后,解调信号中的高频段信号被滤除,只留下0-10MHz频段信号。对该信号抽取后绘制频域如图13所示。
在这里插入图片描述

图13 抽取后信号频域图
抽取后信号仍保留了0-10MHz的信号信息,采样频率由100MHz降至25MHz,图12中最大频率为100MHz/2=50MHz,图13中最大频率为25MHz/2=12.5MHz,表明该模块设计符合预期设定。

5.4 脉冲压缩模块仿真分析

脉冲压缩处理后绘制信号的时域图如图14所示。
在这里插入图片描述

图14 脉冲压缩后信号时域图
原来每个距离的回波信号脉宽为10μs,经过脉冲压缩后,每个脉冲变为10μs/100=0.1μs。从图14中可以清楚的看到在2km、5km、8km处各有一个很窄的脉冲。脉冲压缩处理的能力也决定了雷达距离分辨力大小,经过压缩后脉冲变窄,距离分辨力变大。
经过上述仿真,我们可求出障碍物相对发射端的距离。
六、结论
本实验利用微波中毫米波波段,比较精确地检测了障碍物距离发射端的距离,根据距离我们可以选择躲避的时间,能较好地发现躲避障碍物。因为假设过于理想化,忽略了实际存在的一些干扰,例如紫外线、温度、大气衰减等等因素,并且没能准确识别出障碍物的具体方位,此测距方案有待进一步优化。

附-代码

clc;
clear;
close all;
 
f = 30e9;         %30GHz
fs = 100e6;
ts = 1 / fs;
B = 10^7;
T = 10^(-5);
u = B / T;
c = 3e8;
PRT = 500e-6;
 
 
r1 = 2000;   
tao1 = 2*r1/c  
n1 = round(tao1 / ts);
r2 = 5000;  
tao2 = 2*r2/c 
n2 = round(tao2 / ts);
r3 = 8000;  
tao3 = 2*r3/c  
n3 = round(tao3 / ts);
NN = PRT / ts;
f1=f+B./T*tao1
f2=f+B./T*tao2
f3=f+B./T*tao3
t1 = 0 : ts : T-ts;
y = sin(2*pi*(f*t1+0.5*u*t1.^2));
N = length(y);
 
 
y1 = [zeros(1, n1), y, zeros(1, NN-n1-N)];
y2 = [zeros(1, n2), y, zeros(1, NN-n2-N)];
y3 = [zeros(1, n3), y, zeros(1, NN-n3-N)];
xt = y1+y2+y3;
figure;
subplot(2, 1, 1);
plot((0:length(xt)-1)*ts*c/2/1000, xt);
xlabel('距离/km');
xtfft = abs(fft(xt, 50000));
subplot(2, 1, 2);
fx=(0:length(xt)/2-1)*fs/length(xt);
plot(fx/1e6, xtfft(1:length(xt)/2));
xlabel('频率/MHz');
 
% 对回波信号采样
fs1 = 100e6;
ts1 = 1/fs1;
t2 = 0 : ts1 : (length(xt)-1)*ts1;
xrt = xt .* sin(2*pi*f*t2);
 
fx1=(0:length(xt)/2-1)*fs1/length(xt);
figure;
subplot(2, 1, 1);
plot((0:length(xt)-1)*ts*c/2/1000, xrt);
xlabel('距离/km');
xrtfft = abs(fft(xrt, 50000));
subplot(2, 1, 2);
fx1=(0:length(xrt)/2-1)*fs1/length(xrt);
plot(fx1/1e6, xrtfft(1:length(xrt)/2));
xlabel('频率/MHz');
 
load fir.mat;
firxrt = filter(Num, 1,  xrt);
firfft = abs(fft(firxrt, 50000));
figure;
plot(fx1/1e6, firfft(1:length(firxrt)/2));
xlabel('频率/MHz');
xrtdown = downsample(firxrt, 4);
 value0=abs(fft(xrtdown));%FFT分析
figure;
fx1=(0:length(xrtdown)/2-1)*(fs1/4)/length(xrtdown);
%plot((fx1(1:length(value0)))/1e6, value0);
plot( fx1/1e6, value0(1:length(fx1)));
xlabel('频率/MHz');
 
T = 10^(-5);
u = B / T;
c = 3e8;
fs = 25e6;
ts = 1 / fs;
t1 = 0 : ts : T-ts;
hdt = sin(2*pi*(0*t1+0.5*u*t1.^2));
figure;
plot(hdt);
 
replica = xrtdown;
y = fliplr(hdt);
 out = conv(replica, y);
replica1= [replica,zeros(1,16384-length(replica))];
y1 = [hdt,zeros(1,16384-length(hdt))];
 
rfft = fft(replica1);
yfft = fft(y1);
out = abs(ifft((rfft.*conj(yfft))));
figure;
t = (0:length(xrtdown)-1)*ts*c/2/1000;
plot(t, out(1:length(t)));
xlabel('距离/km');
MATLAB中实现无人机避障仿真代码可以分为以下几个步骤: 首先,需要建立仿真环境,包括无人机模型、障碍物模型和场景设置。可以使用MATLAB中的图形界面工具箱或者编程方式创建一个三维环境,添加无人机和障碍物的模型,设置地形和其他参数。 其次,需要编写无人机运动控制算法。常用的无人机避障算法有人工势场法、路径规划算法等。可以根据具体需求选择合适的算法,在代码中实现无人机在环境中的移动和避障行为。 接着,需要在代码中定义传感器模型和障碍物检测算法。无人机通常会配备各种传感器,比如激光雷达或视觉传感器,用于感知周围环境和障碍物。根据传感器的测量结果进行障碍物检测,并根据检测结果调整无人机的运动控制策略。 最后,需要调用仿真引擎,运行无人机避障仿真MATLAB提供了Simulink仿真环境,可以将上述步骤中的代码整合成一个模型,并在仿真环境中进行运行和观察。 在仿真过程中,可以通过可视化界面查看无人机的运动轨迹、传感器测量结果和障碍物的位置,评估无人机避障算法的效果,并进行参数调整和优化。 总之,MATLAB提供了强大的工具和函数库,可以方便地实现无人机避障仿真代码。通过合理设计模型和算法,并结合仿真环境进行测试和验证,可以有效提高无人机的自主避障能力。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值