[实战]飞机为什么飞不好?机架问题分析

做一个能飞的飞机总共分几步

1.组装飞机

2.安装航电

3.起飞

我以为只要飞控好用,飞个飞机还不是轻而易举,当装好机架和航电,飞机起飞后我才发现事情没那么简单。

飞机起飞后,姿态非常不稳定,一直在晃,有点原地画圈的感觉,从电机输出上可以看出,飞控一直试图调节yaw。

于是我让飞手,试试控制偏航,飞手表示偏航控制很奇怪,动 yaw 的时候,roll 和 pitch 也在跟着动。

我又让飞手单独控制 roll 和 pitch ,现象是飞机的姿态动作非常不稳,动作不干净,无论控制哪个轴飞机的其他两个轴都会跟着动,姿态动作非常不干净,飞手的操控感觉也很差不跟手,我从电机输出上也可以看出电机输出一直在非常快速的大幅度变化。

(测试的时候我是希望飞手做大机动,姿态满杆飞行的,但是当时已经12点多了,而且姿态控制的手感不好,飞机一直在晃,飞手不敢做大机动,只能轻微打杆,悬停测试。)

明明才在测试机上飞过的飞控,怎么突然就出问题了呢?

首先猜测的是,参数与机架不适配,毕竟这个飞机比测试机大很多,那就调个参试试呗,毕竟飞控算法工程师嘛,调个参还是没问题的。

但是偏偏遇到个紧急问题,因为是出差合作项目,用的是别人的数据链,对数据量有限制,导致没法在线调参,只能使用有线连接的方式调参,大大降低的调参的效率,所以每一次调参都要分析到位,有理有据。

1.电机高频大幅度变化,极有可能是参数大了,于是第一次调参我选择了把参数调小。试飞后,发现飞机的状态没有任何改善,我隐约感觉到事情没那么简单,并对这次日志进行分析。

首先是姿态环的状态,可以看到实际值振动很大,在期望值附近大幅度波动

yaw 的波动范围能有3~4度,感觉有点控制不住yaw。

继续分析角速度,roll和pitch的角速状态也不是特别好,但是能看出有跟踪的趋势

这个z轴就非常奇怪了,实际值出现高频振荡,震动范围倒是不大,但是频率太高,期望值完全淹没在实际值中,没有任何跟踪趋势。

而且z轴实际角速度不光比z轴期望频率高,也比x,y轴的实际角速度震动频率高。

(z轴这个状态是非常不正常的)

最后想看看电机输出,可有发现根本看不出趋势,波动非常大。

2.根据 roll , pitch 的跟踪状态,实际值在期望值附近大幅度波动,我决定继续把所有参数都调小。

试飞结果,飞手表示稍微有点改善,但依然处于非常不可控的状态。

再次分析飞行日志。

可以看出 roll 虽然跟踪的不算好,但是起码是能看出跟踪趋势了,之前的振荡也消失了。

pitch 的跟踪效果比较差,能看出跟踪趋势,之前的振荡也消失了。

yaw还是一样晃动很大,感觉飞机想要稳定yaw, 但是做不到。

再看角速度,x轴效果很差,只有微弱的跟踪趋势。

y轴 和 x轴一样差,看不出什么效果。

z轴倒是有了些许好转,看出跟踪趋势了。

电机也有好转了,能看出电机转速变化趋势了,变化范围也变小了。

终于通过修改参数,飞机的飞行状态有了些许好转,虽然这时候还有很多疑点,但我觉得应该还是参数原因。

于是做了两个决定,

1)远程改地面站,配合新数据链,方便在线调参 。

2)直接去参加飞行测试,只要有方便的调参工具,现场继续调试肯定能调好。

在我写好新的调参协议后,结束了当天的工作。

在第二天长途跋涉来到测试场地,测试了新的地面站调参协议后,可以在线调参,效率倍增。

于是和飞手配合,在现场进行了更加细致的调参。

虽然又有了点改善,但是飞机奇怪的扭动一直都在,使得飞机在操控的时候,手感一直很差,一直有姿态耦合的感觉。

通过日志分析,roll效果有了提升,机动的时候跟踪不错,但是悬停时,会出现波动。

pitch没什么改善,跟踪的不好,但有跟踪趋势。


yaw的效果依然很差,能有4度左右误差


再看角速度 x轴有跟踪趋势

y轴也有跟踪趋势

z轴没有任何趋势,依然是非常奇怪的高频振荡

这时候我才静下心来仔细思考,这不可能是控制参数的问题,对于z轴来说,控制器即使控制的不好,出现的跟踪时的超调或者振荡,实际yaw的角速度变化也应该频率的,不可能出现这种高频的振荡。

出现这种振荡最有可能就是飞控的减震不够,把机架的震动直接传到了飞控上。

于是我看了一下飞控的减震,觉得没问题,我又去动了一下机臂,发现机臂与机身连接处刚度不够,

于是我得出了一个结论,这应该是飞机机身刚度不够,机身在扭动,导致飞控扭动,产生的高频振荡。

于是我做了个决定,回去重做一个飞机机架。

经过一整天的加工装配,有了个新飞机,加固机架后,明显用手已经扭不动飞机了, 简单飞一下,我就是想看飞控的扭动效果有没有改善,结果z轴角速度噪声不光没有减少,而且幅度还变大了。

而且连x轴角速度 也出现了同样的问题。

只有y轴角速度还能看见跟踪趋势

我当时直觉是,因为飞机加固后,所有的震动都直接传到飞机上才会有这样的结果。

所有还是震动的原因,到底是什么导致了飞控振动如此剧烈?

经过排查,终于找到了导致飞控振动的原因。

处理过后,效果立竿见影,z轴角速度没有了高频振荡,终于看见了趋势。

虽然这时候姿态的跟踪效果也并不好,但是之前奇怪的耦合,飞机异常的扭动已经消失了,飞手给的反馈是现在飞机能操控了。之所以效果还不好是因为之前我把所有参数都调小了(减小噪声对控制的影响)

目前这个状态,我们就可以正式开始调参了。

简单的把参数加大后,姿态的跟踪就好了很多,pitch的跟踪效果明显变好,yaw的波动范围也变小了。

舒服了呀,顺便看一下角速度曲线吧,是不是也能完美的跟随呢?

你可以想象一下,角速度的跟踪效果吗?

是不是跟想象的不一样?几乎没有看到跟踪效果。

这是为什么呢?x,y轴 是因为当时没有做快速的大机动测试,所以飞机的角速度比较小,甚至小于陀螺仪的测量噪声,自然是无法体现出跟踪效果的。

z轴则是因为参数还没调好,导致没有比较好的跟踪效果。

但是已经比之前几乎无法操控的飞行状态好太多了,第一次觉得原来把飞机飞起来也可以如此激动人心。

最后到底是什么引起的飞控振动呢?飞控上有很多线,接电调的,接传感器的,当时为了美观,把线扎在了一起,这样线的就变成了一个整体,机体振动,会导致这个线在振动,线就会拉住飞控一起振动,把这些线都拆开,没根线各自晃动,相互抵消就不会拉着飞控晃动了。

这次出差感触最深的就是,无人机真的是个系统工程,每个环节都很重要,不是说飞控算法好,就能得到一个很好的飞机,大部分的问题往往还轮不到通过调参来解决,如果从上帝视角重新分析这次的过程,其实是可以更早的排查出问题的,看上去是经验不够,时间紧迫的情况下,对问题没有细致的分析。但本质上,是对飞控系统的了解不够深,为什么会出现这样的波形,什么样的问题是飞控造成的,什么问题是飞控解决不了的,其实是可以很快得出答案的。

这次吃了亏,马上就又要出差了,我会做出两点改进

1.增加详细的代码更新日志

2.每次起飞前想好测试项目,按照项目测试,测试完后立刻分析日志,避免盲目调参。

下次我会变的更强。

纪录了一下传感器滤波前的原始数据(之前都没有记录这些数据),之前直接用滤波后的数据分析是效率比较低的,直接看原始数据才是最高效分析振动的方法。

滤波之前原始数据 gyro < 50deg/s 滤波后 gyro <20deg/s

滤波之前原始数据 acc < 5m/s^2 滤波后 acc < 0.5m/s^2

zinghd wechat
期待您的关注
您的赞赏是最大的支持