主要内容gydF4y2Ba

一架无人机的飞行仪表显示gydF4y2Ba

导入和可视化无人机飞行日志使用三维动画和飞行仪表仪表。这个例子获得了飞行性能在MATLAB®使用的高水平概述gydF4y2Ba飞行仪表gydF4y2Ba(航天工具箱)gydF4y2Ba函数在Aerospace Toolbox™中。然后,要在Simulink®的自定义接口中查看信号,示例使用金宝appgydF4y2Ba飞行仪表gydF4y2Ba(航空航天区块集)gydF4y2Ba来自Aerospace Blockset™的区块gydF4y2Ba

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

导入飞行日志gydF4y2Ba

无人机日志文件定期记录飞行信息。这些信息可以让我们深入了解飞行性能。飞行仪表仪表显示导航变量,如姿态,高度,和无人机的航向。本示例的ULOG日志文件是从运行在Gazebo模拟器中的飞机模型中获得的。gydF4y2Ba

使用导入日志文件gydF4y2Ba乌洛格雷德gydF4y2Ba.创建一个gydF4y2BaflightLogSignalMappinggydF4y2Ba对象为ULOG文件。gydF4y2Ba

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

数据=ulogreader(gydF4y2Ba“fwflight.ulg”gydF4y2Ba);绘图仪=flightLogSignalMapping(gydF4y2Ba“ulog”gydF4y2Ba);信息(绘图机,gydF4y2Ba“信号”gydF4y2Ba)gydF4y2Ba
ans=gydF4y2Ba14×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,%“GPS”真“纬度、经度、高度、地面速度、航向角、卫星可见度、度、度、度、米、米、米、米、米、米、米、米、米、米、米、米、米、米、米、米、米、米、米、米、米、米、米、米、米、米、米VX,VY,VZ“m/s,m/s,m/s”“LocalNEDVelTarget”真“VXTarget,VYTarget,VZTarget”“m/s,m/s,m/s”“Mag”真“MagX,MagY,MagZ”“Gs,Gs”gydF4y2Ba

提取感兴趣的信号gydF4y2Ba

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

提取姿态和滚斜偏航数据。gydF4y2BaRpy = extract(绘图仪,数据,gydF4y2Ba“AttitudeEuler”gydF4y2Ba);rpy{1}.Time=rpy{1}.Time-rpy{1}.Time(1);RollData=timeline(rpy{1}.Time,rpy{1}.Roll,gydF4y2Ba…gydF4y2Ba“VariableNames”gydF4y2Ba,{gydF4y2Ba“滚”gydF4y2Ba});PitchData=时刻表(rpy{1}.时间,rpy{1}.音高,gydF4y2Ba…gydF4y2Ba“VariableNames”gydF4y2Ba,{gydF4y2Ba“节”gydF4y2Ba});YawData =时间表(rpy {1} .Time, rpy {1} .Yaw,gydF4y2Ba…gydF4y2Ba“VariableNames”gydF4y2Ba,{gydF4y2Ba“偏航”gydF4y2Ba});gydF4y2Ba提取位置和xyz数据。gydF4y2BaPosition = extract(绘图仪,数据,gydF4y2Ba“本地化”gydF4y2Ba); 位置{1}.Time=位置{1}.Time位置{1}.Time(1);X=时间表(位置{1}.Time,位置{1}.X,gydF4y2Ba…gydF4y2Ba“VariableNames”gydF4y2Ba,{gydF4y2Ba“X”gydF4y2Ba});Y=时间表(位置{1}.Time,位置{1}.Y,gydF4y2Ba…gydF4y2Ba“VariableNames”gydF4y2Ba,{gydF4y2Ba“是的”gydF4y2Ba});Z =时间表(位置{1}.Time,{1}还是Z位置,gydF4y2Ba…gydF4y2Ba“VariableNames”gydF4y2Ba,{gydF4y2Ba“Z”gydF4y2Ba});gydF4y2Ba%提取速度数据。gydF4y2BaVel = extract(绘图仪,数据,gydF4y2Ba“LocalNEDVel”gydF4y2Ba);韦尔{1}.Time =韦尔{1}.Time-vel {1} .Time (1);XVel =时间表(韦尔{1}.Time,韦尔{1}.VX,gydF4y2Ba…gydF4y2Ba“VariableNames”gydF4y2Ba,{gydF4y2Ba“VX”gydF4y2Ba}); YVel=时间表(时间层,时间层,gydF4y2Ba…gydF4y2Ba“VariableNames”gydF4y2Ba,{gydF4y2Ba“v”gydF4y2Ba});ZVel =时间表(韦尔{1}.Time,韦尔{1}.VZ,gydF4y2Ba…gydF4y2Ba“VariableNames”gydF4y2Ba,{gydF4y2Ba“登陆”gydF4y2Ba});gydF4y2Ba提取空速星等数据。gydF4y2Ba航速=提取(绘图仪,数据,gydF4y2Ba“空速”gydF4y2Ba);空速=时间表(空速{1}.Time,空速{1}.IndicatedAirSpeed,gydF4y2Ba…gydF4y2Ba“VariableNames”gydF4y2Ba,{gydF4y2Ba“空速”gydF4y2Ba});gydF4y2Ba

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

我们的飞行日志以SI单位记录数据。飞行仪表仪表需要转换为航空标准单位系统代表的英国系统。这个转换是在附带的Simulink模型中为用户提供的可视化块中处理的。金宝app转弯协调器使用指示性倾斜运动(与倾斜角度不同)来指示飞机的偏航率。为了计算偏航率,将车体与车体之间的角速度转换为:gydF4y2Ba

ψgydF4y2Ba ˙gydF4y2Ba =gydF4y2Ba qcosgydF4y2Ba (gydF4y2Ba ϕgydF4y2Ba )gydF4y2Ba +gydF4y2Ba rsingydF4y2Ba (gydF4y2Ba ϕgydF4y2Ba )gydF4y2Ba 余弦gydF4y2Ba θgydF4y2Ba

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

VgydF4y2Ba ggydF4y2Ba -gydF4y2Ba VgydF4y2Ba wgydF4y2Ba =gydF4y2Ba VgydF4y2Ba 一个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.Yaw, FlightData.VX FlightData.VY,gydF4y2Ba…gydF4y2BaVZ、FlightData.p、FlightData.q、FlightData.r、FlightData.Airspeed、FlightData.wn、FlightData.we]);gydF4y2Ba%确保时间行是唯一的。gydF4y2Ba[~,印第安纳州]=独特(FlightDataArray (: 1));: FlightDataArray = FlightDataArray(印第安纳州);gydF4y2Ba%将时间数据预处理到特定的时间。gydF4y2Baflightdata=double(FlightDataArray(FlightDataArray(:,1)>=0,1:end));gydF4y2Ba

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

要快速了解航班概况,请使用中介绍的动画界面gydF4y2Ba使用飞行仪器和飞行动画显示飞行轨迹数据gydF4y2Ba(航天工具箱)gydF4y2Ba例如,helper函数gydF4y2BahelperDroneInstrumentsgydF4y2Ba创建一个仪器动画界面。gydF4y2Ba

helperDroneInstruments;gydF4y2Ba

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

在Simulink中可视化信号金宝appgydF4y2Ba

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

%提取电池数据。gydF4y2Ba电池=提取(绘图仪、数据、,gydF4y2Ba“电池”gydF4y2Ba);gydF4y2Ba%从主题提取电压数据。gydF4y2Ba电池电压=时间表({1}.Time,电池{1}.Voltage_1,gydF4y2Ba…gydF4y2Ba“VariableNames”gydF4y2Ba,{gydF4y2Ba“Voltage_1”gydF4y2Ba});gydF4y2Ba%从主题中提取剩余电池容量数据。gydF4y2Ba容量=时间表(电池{1}.时间,电池{1}.剩余容量,gydF4y2Ba…gydF4y2Ba“VariableNames”gydF4y2Ba,{gydF4y2Ba“RemainingCapacity”gydF4y2Ba});gydF4y2Ba

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

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

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

sim卡(gydF4y2Ba“无人机仪表”gydF4y2Ba);gydF4y2Ba