🔥 内容介绍
在当今科技飞速发展的时代,低空经济作为一片新兴的经济蓝海,正以蓬勃的态势在全球范围内崛起。它如同一个充满活力的生态系统,涵盖了物流、旅游、农业、测绘等众多行业领域,为经济增长注入了新的活力。而无人机,作为低空经济舞台上的明星,凭借其灵活、高效的特点,在各个应用场景中发挥着不可或缺的作用。无人机制导与自动驾驶系统则是无人机的 “智慧大脑” 和 “灵巧双手”,是保障其安全、高效飞行的核心技术,直接决定了无人机在低空经济各领域的应用成效。接下来,让我们一同深入探索这一关键系统的奥秘。
无人机制导系统:无人机的精准定位 “指南针”
- 多元导航原理
- 卫星导航:星际间的定位灯塔全球卫星导航系统,如广为人知的 GPS(全球定位系统)以及我国自主研发的北斗卫星导航系统,如同分布在星际间的定位灯塔,为无人机指引方向。这些系统通过接收多颗卫星发射的信号,利用三角定位原理,精确计算出无人机的位置、速度和时间信息。卫星导航以其高精度的定位能力,成为无人机导航的重要方式,广泛应用于各类飞行任务。然而,卫星信号在传播过程中可能受到建筑物、山脉等遮挡,以及电磁干扰的影响,导致信号减弱或丢失,从而影响定位精度。例如,在高楼林立的城市峡谷中或茂密森林区域,卫星导航信号可能会出现中断,给无人机的导航带来挑战。
- 惯性导航:自主航行的 “内功心法”惯性导航系统宛如无人机自主航行的 “内功心法”,依靠加速度计和陀螺仪这两大核心部件。加速度计测量无人机在三个轴向的加速度,陀螺仪则感知其角速度变化。通过对这些数据进行积分运算,惯性导航系统能够推算出无人机的位置和姿态随时间的变化。这种导航方式最大的优势在于其自主性强,不受外界信号干扰,即使在卫星信号无法覆盖的区域,如地下矿井、隧道等,仍能为无人机提供导航支持。然而,由于积分运算会使误差随时间不断积累,长时间飞行后,惯性导航的定位误差会逐渐增大,需要与其他导航方式结合使用来提高精度。
- 视觉导航:用 “眼睛” 探索世界视觉导航赋予了无人机一双 “智慧的眼睛”,借助摄像头捕捉周围环境的图像信息。通过图像处理和计算机视觉技术,无人机能够识别地标、障碍物等关键元素,从而实现定位和导航。例如,无人机可以通过识别地面上的特定标志或建筑物轮廓来确定自身位置,或者通过检测前方障碍物的形状和距离来规划安全飞行路径。视觉导航对复杂环境具有较强的适应性,能够在没有卫星信号或其他导航辅助的情况下,依靠自身的视觉感知能力进行导航。但视觉导航也面临着一些挑战,如光照条件变化、图像识别的复杂性等,可能导致识别错误或计算量过大,影响导航的实时性和准确性。
- 导航系统 “拼图”
- 传感器:信息采集的触角传感器如同无人机导航系统的触角,负责收集各种关键信息。卫星接收机接收卫星信号,为无人机提供全球范围内的高精度定位信息;惯性测量单元(IMU)整合加速度计和陀螺仪,实时监测无人机的加速度和角速度,反馈其姿态变化;摄像头捕捉环境图像,用于视觉导航和目标识别;激光雷达则通过发射激光束并测量反射光的时间,获取周围物体的距离信息,为避障和环境感知提供数据支持。这些传感器各司其职,又相互协作,共同为无人机提供全面的位置、姿态和环境信息。
- 数据处理单元:信息整合的 “大脑中枢”数据处理单元是导航系统的 “大脑中枢”,它对传感器采集到的海量数据进行融合、分析和处理。由于传感器数据不可避免地存在噪声和误差,数据处理单元需要运用先进的算法对这些数据进行去噪、校准和融合,以提高数据的准确性和可靠性。例如,通过卡尔曼滤波算法对卫星导航和惯性导航的数据进行融合,能够有效抑制噪声,减少误差积累,提供更精确的导航信息。数据处理单元还负责对处理后的数据进行分析,提取有用的特征和信息,为导航决策提供依据。
- 导航算法:规划飞行路径的 “智慧锦囊”导航算法是无人机规划飞行路径的 “智慧锦囊”,它决定了无人机如何从当前位置安全、高效地到达目标地点。卡尔曼滤波算法在数据融合中发挥着关键作用,通过对系统状态的最优估计,提高导航精度。路径规划算法则根据任务目标、环境信息和无人机自身性能,为其规划最优飞行路径。例如,A * 算法和 Dijkstra 算法常用于在地图上搜索从起点到终点的最短路径,考虑到障碍物、禁飞区域等约束条件,确保无人机飞行路径的安全性和可行性。这些算法的不断优化和创新,为无人机实现精准导航提供了有力支持。
无人机自动驾驶系统:无人机的智能飞行 “掌舵手”
- 自动驾驶的智慧逻辑无人机自动驾驶系统宛如一位智能的飞行 “掌舵手”,它基于导航系统提供的准确信息,运用先进的控制算法自动调整无人机的飞行姿态、速度和航向,使其能够按照预定的任务或目标飞行,模拟人类飞行员在飞行过程中的操作决策过程。自动驾驶系统通过实时感知无人机的位置、姿态和周围环境变化,快速做出反应,确保无人机稳定、高效地飞行。无论是在复杂的城市环境中穿梭,还是在广阔的农田上方作业,自动驾驶系统都能精准地控制无人机,完成各种飞行任务。
- 系统架构剖析
- 感知层:信息收集的前沿阵地感知层是自动驾驶系统的前沿阵地,其中的各类传感器与导航系统部分传感器重合,负责收集无人机自身状态和周围环境的详细信息。除了前面提到的卫星接收机、IMU、摄像头和激光雷达外,还可能包括气压传感器测量高度信息,超声波传感器检测近距离障碍物等。这些传感器如同无人机的 “五官”,全方位感知周围环境的变化,为决策层提供丰富的数据支持。例如,摄像头实时捕捉的图像信息可以帮助无人机识别前方的障碍物或目标物体,气压传感器提供的高度数据对于保持无人机飞行高度稳定至关重要。
- 决策层:飞行决策的 “智慧核心”决策层是自动驾驶系统的 “智慧核心”,它依据感知层传来的数据,结合任务目标和飞行规则,做出科学合理的飞行决策。决策层通常采用人工智能算法,如机器学习和深度学习模型,对复杂的环境信息进行分析和理解。例如,通过深度学习算法对摄像头拍摄的图像进行分析,识别出不同类型的障碍物,并根据其位置和大小决定是否改变航线、调整高度或速度。决策层还会考虑无人机的电量、任务优先级等因素,综合做出最优决策,确保无人机安全、高效地完成任务。
- 执行层:指令执行的 “行动先锋”执行层是自动驾驶系统的 “行动先锋”,它接收决策层发出的指令,通过电机、舵机等执行机构精确控制无人机的飞行姿态和动作,实现飞行意图。对于固定翼无人机,执行层通过控制升降舵、副翼和方向舵的角度,改变飞机的俯仰、滚转和偏航姿态;对于多旋翼无人机,则通过调整各个电机的转速,实现姿态控制和飞行方向改变。执行层的精确执行能力是确保无人机按照预定路径飞行的关键,任何执行误差都可能导致飞行偏差,影响任务完成效果。
- 关键技术解密
- 姿态控制:飞行稳定的 “定海神针”姿态控制是保障无人机飞行稳定的 “定海神针”,它通过巧妙地调整无人机的控制面或电机转速,实现对其俯仰、滚转和偏航姿态的精确控制。对于固定翼无人机,当需要改变俯仰姿态时,飞行员通过操纵升降舵,改变机翼的攻角,从而产生向上或向下的升力变化,使飞机抬头或低头;滚转姿态的调整则通过控制副翼,使一侧机翼升力增加,另一侧减小,实现飞机的倾斜;偏航姿态的改变依靠方向舵,产生侧向力,使飞机转向。在多旋翼无人机中,姿态控制更加直接,通过增加或减小某个电机的转速,改变旋翼产生的升力,实现姿态调整。例如,当需要向左倾斜时,左侧电机转速降低,右侧电机转速升高,无人机便会向左滚转。精确的姿态控制是无人机稳定飞行的基础,无论是在强风环境下还是进行复杂的机动动作时,都能确保无人机保持平稳。
- 避障技术:安全飞行的 “防护盾”避障技术是无人机安全飞行的 “防护盾”,它利用激光雷达、超声波传感器、摄像头等多种传感器感知周围环境中的障碍物。激光雷达通过发射激光束并接收反射光,能够精确测量障碍物的距离和位置;超声波传感器则适用于近距离障碍物检测,通过发射和接收超声波信号来判断障碍物的距离;摄像头利用计算机视觉技术识别障碍物的形状、大小和位置。当检测到障碍物时,无人机采用避障算法实时规划安全飞行路径。例如,基于距离传感器的直接避障算法,当检测到前方障碍物距离过近时,无人机立即改变飞行方向,绕过障碍物;基于视觉的路径重规划避障算法则更加智能,它会根据摄像头拍摄的图像信息,分析障碍物的分布情况,重新规划一条绕过障碍物的最优路径,确保无人机在复杂环境中安全飞行。
无人机制导与自动驾驶系统的卓越优势
- 安全保障的坚固壁垒无人机制导与自动驾驶系统为无人机飞行安全筑起了坚固壁垒。该系统凭借先进的传感器和智能算法,能够实时感知周围环境的细微变化,并迅速做出反应。相比人类飞行员,它不受疲劳、情绪等因素影响,避免了因人为操作失误而导致的事故。在复杂的气象条件下,如暴雨、浓雾、强风等,系统可以通过精确的导航和稳定的自动驾驶,确保无人机安全飞行。例如,在森林防火监测任务中,无人机可能需要在恶劣的天气条件下进入火灾现场附近进行侦察,无人机制导与自动驾驶系统能够根据实时气象数据和环境信息,自动调整飞行姿态和路径,避开危险区域,完成监测任务,保障飞行安全。
- 效率提升的强大引擎自动驾驶系统使无人机成为高效作业的 “利器”。它能够根据任务目标和环境信息,规划最优飞行路径,减少不必要的飞行距离和时间,降低能耗。同时,无人机可以实现 24 小时不间断作业,不受人类作息时间限制。在物流配送领域,无人机通过导航与自动驾驶系统规划的最优配送路线,能够快速、精准地将货物送达目的地,大大提高了配送效率,尤其是在偏远地区或交通拥堵的城市,这种优势更加明显。在测绘和地理信息采集任务中,无人机按照预定航线自动飞行,高效地获取地理数据,相比传统的人工测绘方式,大大缩短了数据采集周期,提高了工作效率。
- 成本降低的有效途径无人机制导与自动驾驶系统显著降低了无人机运营成本。一方面,它减少了对专业飞行员的依赖,降低了人力成本。培养一名合格的无人机飞行员需要投入大量的时间和资金,而自动驾驶系统可以让普通操作人员通过简单培训即可控制无人机完成任务。另一方面,系统的自动化运行能够优化资源利用,提高无人机的使用效率,减少因人为操作不当导致的设备损耗和维修成本。例如,在农业植保领域,使用自动驾驶的无人机进行农药喷洒作业,
⛳️ 运行结果
📣 部分代码
clc; clear all;
close all
%% Business Jet : Jetstar linearized equation of motion
% 4조 201901392 조성연
%% Conversion Factor
kt2ft = 1.689;
rad2deg = 180/3.141592;
deg2rad = 3.141592/180;
g = 9.81; % 중력가속도
%% Aircraft configurations
Sw = 50.4; % m^2 wing area
Mac = 3.33146; % m wing mean aerodynamic chord
b = 16.383; % m wing span
Weight = 38200; % lbs
Mass = Weight*0.453592; % kg
Ix = 161040.6257; % kgm^2
Iy = 184151.0212; % kgm^2
Iz = 330151.7548; % kgm^2
Ixz = 6861.4521; % kgm^2
Izx = Ixz;
%% Flight condition
Mach = 0.2; % 순항 마하수
rho = 1.225; % 공기밀도
Uo = 340*Mach; % Trim speed
qbar = 0.5*rho*Uo*Uo; % dynamic pressure
cl_trim = Weight/(qbar*Sw); % trimmed lift coefficient
theta = 0; % trimmed pitch angle Theta_0
ctheta = cos(theta);
stheta = sin(theta);
%% Nondimensional Stability and Control Derivatives
% longitudinal directional
cxu = -0.19; czu = -1.474; cmu = 0;
cxa = -0.013; cza = -5.095; cma = -0.8;
cxadot = 0; czadot = 0; cmadot = -3;
cxq = 0; czq = 0; cmq = -8;
cxde = 0; czde = -0.4; cmde = -0.81;
cxdp = 0.2; czdp = 0; cmdp = 0;
% lateral directional
cyb = -0.72; clb = -0.103; cnb = 0.137;
cyp = 0; clp = -0.37; cnp = -0.14;
cyr = 0; clr = 0.11; cnr = -0.16;
cyda = 0; clda = 0.054; cnda = 0.0075;
cydr = 0.175; cldr = 0.029; cndr = -0.063;
%% Define Dimensional Derivatives for Longitudinal
% State : u, w, q, theta
Xu = qbar*Sw*cxu/(Mass*Uo);
Xa = qbar*Sw*cxa/Mass;
Xq = qbar*Sw*Mac*cxq/(2*Mass*Uo);
Xad = qbar*Sw*Mac*cxadot/(2*Mass*Uo);
Xde = qbar*Sw*(cxde/Mass);
Xdp = qbar*Sw*(cxdp/Mass);
Zu = qbar*Sw*(czu-2*cl_trim)/(Mass*Uo);
Za = qbar*Sw*cza/Mass;
Zq = qbar*Sw*Mac*czq/(2*Mass*Uo);
Zad = qbar*Sw*Mac*czadot/(2*Mass*Uo);
Zde = qbar*Sw*czde/Mass;
Zdp = qbar*Sw*czdp/Mass;
Mu = qbar*Sw*Mac*cmu/(Iy*Uo);
Ma = qbar*Sw*Mac*cma/Iy;
Mq = qbar*Sw*Mac^2*cmq/(2*Iy*Uo);
Mad = qbar*Sw*Mac^2*cmadot/(2*Iy*Uo);
Mde = qbar*Sw*Mac*cmde/Iy;
Mdp = qbar*Sw*Mac*cmdp/Iy;
%% Define Dimensional Derivatives for Lateral
% State : side vel, roll rate, yaw rate, phi, psi
Yb = qbar*Sw*cyb/Mass;
Yp = qbar*Sw*b*cyp/(2*Mass*Uo);
Yr = qbar*Sw*b*cyr/(2*Mass*Uo);
Yda = qbar*Sw*cyda/Mass;
Ydr = qbar*Sw*cydr/Mass;
Lb = qbar*Sw*b*clb/Ix;
Lp = qbar*Sw*b^2*clp/(2*Ix*Uo);
Lr = qbar*Sw*b^2*clr/(2*Ix*Uo);
Lda = qbar*Sw*b*clda/Ix;
Ldr = qbar*Sw*b*cldr/Ix;
Nb = qbar*Sw*b*cnb/Iz;
Np = qbar*Sw*b^2*cnp/(2*Iz*Uo);
Nr = qbar*Sw*b^2*cnr/(2*Iz*Uo);
Nda = qbar*Sw*b*cnda/Iz;
Ndr = qbar*Sw*b*cndr/Iz;
Ic = 1/(1-Ixz^2/(Ix*Iz));
lb = (Lb+Ixz*Nb/Ix)*Ic;
lp = (Lp+Ixz*Np/Ix)*Ic;
lr = (Lr+Ixz*Nr/Ix)*Ic;
ldr = (Ldr+Ixz*Ndr/Ix)*Ic;
lda = (Lda+Ixz*Nda/Ix)*Ic;
nb = (Nb+Ixz*Lb/Iz)*Ic;
np = (Np+Ixz*Lp/Iz)*Ic;
nr = (Nr+Ixz*Lr/Iz)*Ic;
ndr = (Ndr+Ixz*Ldr/Iz)*Ic;
nda = (Nda+Ixz*Lda/Iz)*Ic;
Yv = Yb/Uo;
nv = nb/Uo;
lv = lb/Uo;
%% Converting
Xw = Xa/Uo; Xwd = Xad/Uo;
Zw = Za/Uo; Zwd = Zad/Uo;
Mw = Ma/Uo; Mwd = Mad/Uo;
mu = Mu+Mwd*Zu/(1-Zwd);
mw = Mw+Mwd*Zw/(1-Zwd);
mq = Mq+Mwd*(Zq+Uo)/(1-Zwd);
mde = Mde+Mwd*Zde/(1-Zwd);
mdp = Mdp+Mwd*Zdp/(1-Zwd);
%% Boeing 747 Longitudinal Linear Dynamics
% State u, w, q, theta
A = [Xu Xw 0.0 -g*ctheta;
Zu/(1-Zwd) Zw/(1-Zwd) (Zq+Uo)/(1-Zwd) -g*stheta/(1-Zwd);
mu mw mq -Mwd*g*stheta/(1-Zwd);
0. 0. 1. 0. ];
B = [Xde Xdp;
Zde/(1-Zwd) Zdp/(1-Zwd);
mde mdp;
0.0 0.0 ];
C = eye(4);
D = zeros(4,2);
[lon_num1,lon_den1] = ss2tf(A, B, C, D, 1); % elevator
[lon_num2,lon_den2] = ss2tf(A, B, C, D, 2); % thrust
lontf1_u = tf(lon_num1(1,:),lon_den1); % elevator_u
lontf1_w = tf(lon_num1(2,:),lon_den1); % elevator_w
lontf1_q = tf(lon_num1(3,:),lon_den1); % elevator_q
lontf1_a = tf(lon_num1(4,:),lon_den1); % elevator_theta
lontf2_u = tf(lon_num2(1,:),lon_den2); % thrust_u
lontf2_w = tf(lon_num2(2,:),lon_den2); % thrust_w
lontf2_q = tf(lon_num2(3,:),lon_den2); % thrust_q
lontf2_a = tf(lon_num2(4,:),lon_den2); % thrust_theta
%% problem_a,d q theta throttle altitude
t=0:0.1:500;
s = zpk('s');
figure(1) %q
rlocus(-lontf1_q);
title('q rlocus');
qgain = -0.1;
figure(2)
fq = feedback(qgain*lontf1_q,1);
g_theta = fq/s;
rlocus(g_theta);
title('theta rlocus');
thetagain = 2;
figure(3)
rlocus(lontf2_u);
title('throttle rlocus');
throttlegain = -5;
figure(4)
fa = feedback(thetagain*g_theta,1);
g_h = fa/s;
rlocus(g_h);
title('altitude rlocus');
altitudegain = 0.05;
%% Boeing 747 Lateral Linear Dynamics
% State : side vel, roll rate, yaw rate, phi, psi
A1 = [Yv Yp Yr-Uo g*ctheta 0.
lv lp lr 0. 0.
nv np nr 0. 0.
0. 1. tan(theta) 0. 0.
0. 0. 1/ctheta 0. 0. ];
B1 = [Yda Ydr
lda ldr
nda ndr
0.0 0.0
0.0 0.0 ];
C1 = eye(5);
D1 = zeros(5,2);
[lat_num1,lat_den1] = ss2tf(A1, B1, C1, D1, 1); % aileron
[lat_num2,lat_den2] = ss2tf(A1, B1, C1, D1, 2); % rudder
lattf1_v = tf(lat_num1(1,:),lat_den1); % aileron_v
lattf1_r = tf(lat_num1(2,:),lat_den1); % aileron_roll
lattf1_y = tf(lat_num1(3,:),lat_den1); % aileron_yaw
lattf1_p = tf(lat_num1(4,:),lat_den1); % aileron_phi
lattf1_ps = tf(lat_num1(5,:),lat_den1); % aileron_psi
lattf2_v = tf(lat_num2(1,:),lat_den2); % rudder_v
lattf2_r = tf(lat_num2(2,:),lat_den2); % rudder_roll
lattf2_y = tf(lat_num2(3,:),lat_den2); % rudder_yaw
lattf2_p = tf(lat_num2(4,:),lat_den2); % rudder_phi
lattf2_ps = tf(lat_num2(5,:),lat_den2); % rudder_psi
%% p phi r psi
figure(5) %p
rlocus(lattf1_r);
title('p rlocus');
pgain = 1.5;
figure(6) %phi
fp = feedback(pgain*lattf1_r,1);
g_phi = fp/s;
rlocus(g_phi);
title('phi rlocus');
phigain = 3;
figure(7) %r
rlocus(-lattf2_y);
title('r rlocus');
rgain = 4;
figure(8) %psi
fphi = feedback(phigain*g_phi,1);
g_psi = fphi/s;
rlocus(g_psi);
title('psi rlocus');
psigain = 0.1;
🔗 参考文献
🍅往期回顾扫扫下方二维码