上一篇 | 目录 | 下一篇 |
飞控的加速度计对振动非常敏感。这些加速度计的值与气压计和GPS数据相结合,以估算飞行器的位置。如果振动过大,估算值会被忽略,让依赖精确定位的模式(例如,直升机:定高、定点,RTL,引导,位置和自动飞行模式)下飞行出现非常差的性能。
这些说明说明了如何测量振动水平。如果发现它们超出公差范围,请遵循“减振”页面上的建议。
地面站可以显示振动和削波的实时视图。如果使用Mission Planner,请在HUD上单击“振动”以显示当前的振动水平。
低于30m/s/s的振动水平通常是可以接受的。高于30m/s/s的水平可能会出现问题,而高于60m/s/s的水平几乎总是会出现位置或定高问题。
检查记录的震动水平大部分在30m/s/s以下:
进行至少几分钟的常规飞行(即不只是简单地悬停),然后下载闪存日志。
使用Mission Planner或其他地面站绘制VIBE消息的VibeX,VibeY和VibeZ值。这些显示了主加速度计输出的标准偏差,单位是m/s/s。下图取自3DR IRIS,显示正常水平,低于15m/s/s,但偶尔会达到30m/s/s。最大可接受值似乎低于30m/s/s(请参见下面的第二张图片)。
绘制Clip0,Clip1和Clip2值,每当一个加速度计达到其最大极限(16G)时,这些值就会增加。 理想情况下,对于整个飞行,这些值应为零,但较小的数字(<100)可能还算可以,一般它们在硬着陆期间产生。通过日志有规律地增加的数量表明有严重的振动问题,应该修复。
这是一个飞行器由于高振动而产生位置估算出现问题的例子。
计算振动水平的算法可以在AP_InertialSensor.cpp的calc_vibration_and_clipping()方法中看到,但简而言之,它包括计算加速度计读数的标准偏差,如下所示:
从主IMU获取原始的x、y和z加速度计值。
对5hz处的原始值进行高通滤波,以消除飞行器的运动,并为x,y和z轴创建一个“ accel_vibe_floor”。
计算最新的accel值和accel_vibe_floor之间的差。
对上述差求平方,在2hz处进行滤波,然后计算平方根(为x, y和z)。这最后三个值是在VIBE msg的VibeX,Y和Z字段中显示的值。
当飞行器的姿态计算出现严重错误时候,即使飞行器是被控制在水平飞行,也会发生大幅倾斜。问题的原因通常是加速度计出现错误,可以通过比较每个估算系统(即每个AHRS或EKF)的横滚和俯仰姿态估计来确认。姿态估算值应该在几度之内。
下载闪存日志并在地面站的日志查看器中打开。
比较AHRS2.Roll,NKF1 [0] .Roll和NKF1 [1] .Roll。
下图显示了一个典型的日志,其中姿态非常匹配。
关于如何收集大量的IMU数据并执行FFT分析以确定振动最大的频率,请参阅使用IMU批量采样器测量振动页面的说明。
对于非常老版本的飞控,不包括Vibe消息,可以直接检查IMU值。
确保LOG_BITMASK参数被设置为包含IMU数据,这样加速度计的值就会被记录到闪存日志中。
在自稳飞行模式下,并保持水平悬停(不需要完全稳定或水平)。
下载dataflash日志,下载完成后,使用任务计划器的“查看日志”按钮在日志目录中打开最新文件(最后一位是下载的日志编号,因此在上面的示例中我们下载了Log# 1,因此文件名以1.log结尾)。
当出现日志表格时候,向下滚动,直到找到包含IMU的消息。单击行中的AccX并按下“将此数据绘制图表”按钮。重复执行AccY和AccZ列,生成如下图所示的图表。
检查左侧的刻度,并确保AccX和AccY的振动水平在-3和+3之间。对于AccZ,可接受的范围是-15至-5。如果它们非常接近或超过这些极限,则应返回到“减震”页面以获取可能的解决方案。 完成上述所有操作后,请转到Mission Planner的标准参数页面(你可能需要再次按连接按钮),然后将Log Bitmask(日志位掩码)设置回“ Default”(默认)。这一点很重要,因为特别是在APM上,日志记录需要大量的CPU资源,如果确实不需记录震动日志,会浪费很多CUP资源。