主要内容GydF4y2Ba

无人机飞行仪表仪表的可视化GydF4y2Ba

使用三维动画和飞行仪表导入并可视化无人机飞行日志。本例使用GydF4y2Ba飞行仪表GydF4y2Ba(航空航天工具箱)GydF4y2Ba航空航天工具箱中的函数™. 然后,为了在Simulink®的自定义界面中查看信号,该示例使用万博1manbetxGydF4y2Ba飞行仪表GydF4y2Ba(航空航天区块集)GydF4y2Ba飞行仪表GydF4y2Ba(航空航天区块集)GydF4y2Ba来自航空航天区块集的区块™GydF4y2Ba

该示例从ULOG文件中提取感兴趣的信号,并在MATLAB中回放无人机的飞行轨迹。然后,使用仪器模块在Simulink模型中回放这些信号。万博1manbetxGydF4y2Ba

导入飞行日志GydF4y2Ba

无人机日志文件记录定期飞行的相关信息。该信息提供了对飞行性能的深入了解。飞行仪表仪表仪表显示导航变量,如无人机的姿态、高度和航向。本例中的ULOG日志文件来自Gazebo模拟器中运行的飞机模型或GydF4y2Ba

使用导入日志文件GydF4y2Ba乌洛格雷德GydF4y2Ba.创建一个GydF4y2BaflightLogSignalMappingGydF4y2Ba对象,用于ULOG文件。GydF4y2Ba

要了解信号、单元及其参考框架的约定,请检查GydF4y2Ba绘图仪GydF4y2Ba对象。当将信号连接到飞行仪表仪表仪表时,日志文件中有关单位的信息变得非常重要。GydF4y2Ba

数据=ulogreader(GydF4y2Ba“flight.ulg”GydF4y2Ba);绘图仪=flightLogSignalMapping(GydF4y2Ba“乌洛格”GydF4y2Ba);信息(绘图仪、,GydF4y2Ba“信号”GydF4y2Ba)GydF4y2Ba
ans=GydF4y2Ba18×4表GydF4y2Ba“信号名称”是一个信号场,信号场场,信号场,信号场,信号场,信号场,信号场,信号场,信号场,信号场,信号场,信号场,信号场,信号场,信号场,信号场,信号场,信号场,信号场,信号场,信号场,信号场,信号场,信号场,信号场场,信号场场场场场,信号场场场,信号场,信号场,信号场,信号场,信号场,信号场,信号场,信号场,信号场,信号场,信号场,信号场,信号场,信号场,信号场,信号场,信号场,信号场,信号场,信号场,信号场场,信号场,信号场,信号场,信号场,信号场,信号场,信号场,信号场,信号场,信号场,信号场,信号场,信号场,信号场,信号场,信号场,信号场,信号场,信号场,信号场,信号场,信号场,信号场,信号场,信号场,场,场,场,研究UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU研究UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU“加速”为真“加速度,加速度,加速度”“m/s^2,m/s^2,m/s^2”“空速”真”按Diff,指示速度,温度”“Pa,m/s,degreeC”“姿态调节器”“真”滚转,俯仰,偏航”“弧度,弧度”“姿态调节器”“真”车身旋转率X,车身旋转率Y,车身旋转率Z”“弧度/秒,弧度/秒”“姿态调节器”“真”滚转目标,俯仰目标,弧度目标”rad,rad,rad“气压表”真值按ABS,按海拔高度,温度“Pa,m,degreeC”电池“真值”电压_1,电压_2,电压_3,电压_4,电压_5,电压_6,电压_7,电压_8,电压_9,电压_10,电压_11,电压_12,电压_13,电压_14,电压_15,电压_16,剩余容量“v、 v,v,v,v,v,v,v,v,v,v,v,v,v,v,%“GPS”真“纬度,经度,高度,地面速度,航向角,卫星可见度,度,度,度,米,米,米,米/秒,度,不适用“陀螺”真“陀螺”,真“陀螺”,真“弧度/秒,弧度/秒”真“X,Y,Z”真“米,米,米”,真“米,米”真“本地”VX,VY,VZ“m/s,m/s,m/s”“LocalNEDTarget”true“VX目标,VY目标,VZTarget”“m/s,m/s,m/s”“LocalNED”true“X,Y,Z”“m,m”“LocalNEDTarget”true“X目标,Y目标,ZTarget”“m,m”“LocalNEDVel”true“VX,VY,m/s”⋮GydF4y2Ba

提取感兴趣的信号GydF4y2Ba

要使用仪表仪表显示无人机飞行,请提取每个时间步的姿态、位置、速度和空速。在上一步的信息表中指定适当的信号名称。调用GydF4y2Ba摘录GydF4y2Ba具有适当信号名称的函数。调整信号的时间向量元素,使其从0秒开始。GydF4y2Ba

%提取姿态和横摇偏航数据。GydF4y2Barpy=提取(绘图仪、数据、,GydF4y2Ba“装腔作势者”GydF4y2Ba);rpy{1}.Time=rpy{1}.Time-rpy{1}.Time(1);RollData=timeline(rpy{1}.Time,rpy{1}.Roll,GydF4y2Ba...GydF4y2Ba“变化无常”GydF4y2Ba,{GydF4y2Ba“滚”GydF4y2Ba});PitchData=时刻表(rpy{1}.时间,rpy{1}.音高,GydF4y2Ba...GydF4y2Ba“变化无常”GydF4y2Ba,{GydF4y2Ba“投球”GydF4y2Ba});YawData=时间表(rpy{1}.时间,rpy{1}.偏航,GydF4y2Ba...GydF4y2Ba“变化无常”GydF4y2Ba,{GydF4y2Ba“偏航”GydF4y2Ba});GydF4y2Ba%提取位置和xyz数据。GydF4y2Ba位置=提取(绘图仪、数据、,GydF4y2Ba“本地化”GydF4y2Ba); 位置{1}.Time=位置{1}.Time位置{1}.Time(1);X=时间表(位置{1}.Time,位置{1}.X,GydF4y2Ba...GydF4y2Ba“变化无常”GydF4y2Ba,{GydF4y2Ba“X”GydF4y2Ba}); Y=时刻表(位置{1}.Time,位置{1}.Y,GydF4y2Ba...GydF4y2Ba“变化无常”GydF4y2Ba,{GydF4y2Ba“是的”GydF4y2Ba});Z=时间表(位置{1}.时间,位置{1}.Z,GydF4y2Ba...GydF4y2Ba“变化无常”GydF4y2Ba,{GydF4y2Ba“Z”GydF4y2Ba});GydF4y2Ba%提取速度数据。GydF4y2Bavel=提取(绘图仪、数据、,GydF4y2Ba“LocalNedLevel”GydF4y2Ba); vel{1}.Time=vel{1}.Time vel{1}.Time(1);XVel=时间表(vel{1}.Time,vel{1}.VX,GydF4y2Ba...GydF4y2Ba“变化无常”GydF4y2Ba,{GydF4y2Ba“VX”GydF4y2Ba}); YVel=时间表(时间层,时间层,GydF4y2Ba...GydF4y2Ba“变化无常”GydF4y2Ba,{GydF4y2Ba“VY”GydF4y2Ba});ZVel=时间表(时间层,VZ层,GydF4y2Ba...GydF4y2Ba“变化无常”GydF4y2Ba,{GydF4y2Ba“VZ”GydF4y2Ba});GydF4y2Ba%提取空速量级数据。GydF4y2Ba空速=提取(绘图仪、数据、,GydF4y2Ba“空速”GydF4y2Ba);空速=时刻表(空速{1}.时间,空速{1}.表示空速,GydF4y2Ba...GydF4y2Ba“变化无常”GydF4y2Ba,{GydF4y2Ba“空速”GydF4y2Ba});GydF4y2Ba

转换计量器的单位并预处理数据GydF4y2Ba

我们的飞行日志以国际单位制记录数据。飞行仪表仪表仪表需要转换为航空航天标准单位制,用英制表示。此转换在随附的Simulink模型中为用户提供的可视化块中处理。转弯协调器使用指示符号指示飞机的横摆角速度运动(不同于倾斜角度)。为了计算横摆角速度,将车身框架的角速度转换为车辆框架的角速度,如下所示:万博1manbetxGydF4y2Ba

ψGydF4y2Ba ˙GydF4y2Ba =GydF4y2Ba qcosGydF4y2Ba (GydF4y2Ba ϕGydF4y2Ba )GydF4y2Ba +GydF4y2Ba rsinGydF4y2Ba (GydF4y2Ba ϕGydF4y2Ba )GydF4y2Ba 余弦GydF4y2Ba θGydF4y2Ba

转弯协调器内的倾斜仪球指示飞机侧滑。该侧滑角基于机身和计算空速之间的角度。要获得准确的空速,需要对速度和风矢量进行良好的估计。大多数小型无人机没有传感器来估计风矢量数据或空速半空中飞行。无人机可以以侧风的形式面对20-50%的空速。GydF4y2Ba

vGydF4y2Ba GGydF4y2Ba -GydF4y2Ba vGydF4y2Ba WGydF4y2Ba =GydF4y2Ba vGydF4y2Ba A.GydF4y2Ba

要计算侧滑和转弯,请直接从日志文件中提取风和姿态率数据。GydF4y2Ba

%提取横摇、俯仰和横摆率以及估计风速。GydF4y2Ba[p,q,r,wn,we]=helperExtractUnmappedData(数据);GydF4y2Ba%合并时间表。GydF4y2BaFlightData=同步(X、Y、Z、RollData、PitchData、YawData、XVel、YVel、ZVel、p、q、r、空速、wn、we、,GydF4y2Ba“联盟”GydF4y2Ba,GydF4y2Ba“线性”GydF4y2Ba);GydF4y2Ba%为数据组装一个数组。GydF4y2BaFlightDataArray=double([seconds(FlightData.Time)FlightData.X FlightData.Y FlightData.Z FlightData.RollGydF4y2Ba...GydF4y2BaFlightData.俯仰FlightData.偏航,FlightData.VX,FlightData.VY,GydF4y2Ba...GydF4y2BaVZ、FlightData.p、FlightData.q、FlightData.r、FlightData.Airspeed、FlightData.wn、FlightData.we]);GydF4y2Ba%确保时间行是唯一的。GydF4y2Ba[~,ind]=unique(FlightDataArray(:,1));FlightDataArray=FlightDataArray(ind,:);GydF4y2Ba%将时间数据预处理到特定时间。GydF4y2Baflightdata=double(FlightDataArray(FlightDataArray(:,1)>=0,1:end));GydF4y2Ba

标准飞行仪表数据的MATLAB可视化GydF4y2Ba

要快速了解航班概况,请使用中介绍的动画界面GydF4y2Ba使用飞行仪表和飞行动画显示飞行轨迹数据GydF4y2Ba(航空航天工具箱)GydF4y2Ba例如,helper函数GydF4y2Ba辅助电子仪器GydF4y2Ba创建乐器动画界面。GydF4y2Ba

辅助电子仪器;GydF4y2Ba

这个GydF4y2Ba空速GydF4y2Ba指示盘指示无人机的速度GydF4y2Ba人工地平线GydF4y2Ba指示器显示无人机的姿态,不包括偏航GydF4y2Ba高度计GydF4y2Ba和GydF4y2Ba爬升率GydF4y2Ba指示器分别显示气压计和爬升率传感器中记录的高度GydF4y2Ba转弯指示器GydF4y2Ba指示飞机的横摆角速度和侧滑。如果倾斜仪向左或向右倾斜,则表示发生了侧滑或打滑情况。在协调转弯时,侧滑应为零。GydF4y2Ba

在Simulink中可视化信号万博1manbetxGydF4y2Ba

在Simulik中,您可以使用仪表块创建信号的自定义可视化,以帮助诊断航班问题。例如,日志文件中的电压和电池数据有助于诊断由于电源不足或电压峰值导致的故障。提取下面的面糊数据,使其可视化。GydF4y2Ba

%提取电池数据。GydF4y2Ba电池=提取(绘图仪、数据、,GydF4y2Ba“电池”GydF4y2Ba);GydF4y2Ba%从主题中提取电压数据。GydF4y2Ba电压=时间表(电池{1}.时间,电池{1}.电压_1,GydF4y2Ba...GydF4y2Ba“变化无常”GydF4y2Ba,{GydF4y2Ba“电压_1”GydF4y2Ba});GydF4y2Ba%从主题中提取剩余电池容量数据。GydF4y2Ba容量=时间表(电池{1}.时间,电池{1}.剩余容量,GydF4y2Ba...GydF4y2Ba“变化无常”GydF4y2Ba,{GydF4y2Ba“剩余容量”GydF4y2Ba});GydF4y2Ba

打开GydF4y2Ba“无人机仪表”GydF4y2Ba模型,它获取加载的数据并将其显示在不同的仪表和UAV动画图形上。GydF4y2Ba

开放式系统(GydF4y2Ba“无人机仪表”GydF4y2Ba);GydF4y2Ba

跑GydF4y2Ba模型。生成的图形实时显示无人机的轨迹,仪表显示飞行的当前状态。GydF4y2Ba

模拟(GydF4y2Ba“无人机仪表”GydF4y2Ba);GydF4y2Ba