前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >PX震荡波_常用的黑客代码大全

PX震荡波_常用的黑客代码大全

作者头像
全栈程序员站长
发布2022-11-04 10:25:33
6570
发布2022-11-04 10:25:33
举报
文章被收录于专栏:全栈程序员必看

本篇文章首发于公众号:无人机系统技术。更多无人机技术相关文章请关注此公众号 一、前言

前面的文章主要都是一些理论知识为主,很多读者朋友看了之后可能会有点枯燥,里面很多公式看起来也比较晦涩,今天起给大家讲一讲如何用开源飞控PX4飞好一架飞机,飞机主要以多旋翼和垂起固定翼为主。

使用开源飞控PX4来调试一套无人机是一个较为复杂的过程,不过前期的电机电调选型、桨叶的配套,电池的设计这些内容都不是我擅长的内容,如果有需求的话以后有机会请我专业的朋友给大家来写一写这方面的内容。我要写的内容主要是如何对飞控的参数进行调试以及如何根据数据分析来评价飞行器是否调试得当。

二、振动分析准备

在组装好飞机、飞控、电机电调、电池、桨叶等设备后,我们开始进行系统调试的第一件事当然不是测试振动情况了,而是确定飞行器的传感器、电机(舵机)极性、电压电流等工作正常,而第二件事情就是来测试飞行器的振动情况,而要测试飞行器的振动情况一般都需要将飞机飞起来。这里,大家可能会奇怪,飞控的参数都没调试,怎么能飞起来呢?其实是可以飞起来的,开源飞控的很多默认参数是可以让飞机平稳起飞的。不过为了保险起见,在起飞之前我们要对飞控参数做一定的修改,确保起飞后不会因为姿态发散而坠机,在初期测试振动时我们都是采用姿态增稳模式(Stablized)来飞行的。

第一步、将角速率环的所有D项参数都调成0,即MC_ROLLRATE_D、MC_PITCHRATE_D、MC_YAWRATE_D。

因为震动影响最明显的就是角速率和加速度信息,角速率的信号如果噪声过大,那作为D项的角加速度信号一定是不能再用做姿态反馈了,调成0可以避免飞机因为震动过大引起高频震荡而坠机。

第二步、等比例缩小角度环和角速率环的所有参数。

这是因为参数过大造成飞机震荡坠机是很正常的现象,而参数略小的情况下一般不会震荡发散,尤其是起飞后不做大动作的情况下,而我们初期试飞时可通过系留或者缓慢离地观察飞机的姿态是否震荡来判断参数是否过大。

第三步、更改参数SDLOG_PROFILE,将其中的highrate勾上。

在这里插入图片描述
在这里插入图片描述

在程序中,我们可以看到把highrate勾上之后会增加下图中的记录,而且是以最大频率来记录这些数据,这就方便我们之后对角速率、加速度以及控制输出信号进行傅里叶分析。

在这里插入图片描述
在这里插入图片描述

三、振动分析方法

所以,今天我们要讲的是如何分析一架飞机的振动情况,以及如何根据振动情况来调整飞控中相关的参数。飞行器的振动一向是非常令人头疼的事情,针对机型来讲的话,一般情况下直升机的振动最大,多旋翼次之,而固定翼飞机往往比较少存在这方面的问题。而针对动力系统分类的话,油动飞机比电动飞机的振动往往要大上几倍。而飞控中的陀螺仪和加速度计对噪声尤为敏感,恶劣的振动环境下它们无法正常工作,极易造成飞控的导航数据失效,带来严重的后果。

接下来,我们针对px4来着重阐述一下如何分析飞行器的振动特性,以及如何调试参数来减少振动带来的影响。首先,我们使用增稳模式飞行3-5分钟,然后使用flightreview分析工具导入数据,生成数据图表,有关振动问题我们主要分析以下四个图表:

控制输出FFT分析图:

在这里插入图片描述
在这里插入图片描述

三轴加计FFT分析图:

在这里插入图片描述
在这里插入图片描述

三轴陀螺仪FFT分析图:

在这里插入图片描述
在这里插入图片描述

加计功率谱密度:

在这里插入图片描述
在这里插入图片描述

上面这四张图是表现比较好的时候的图形,可以看到除了80hz附近由于桨叶转速频率引起的噪声之外,还有一个20hz的低幅振动。而通过控制输出FFT图可以看到80hz的频率基本上被滤除了。

那什么样的图形才算好的呢?一般情况下振动频率比较单一,振动幅值低,控制输出中没有高频信息,这就算比较好的振动特性了。

而比较差的振动特性就比如下图这样的:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

甚至是这样的:

在这里插入图片描述
在这里插入图片描述

当然也可以结合加速度计的原始数据来分析,不过以上这几个图基本就可以反应一架飞机的振动好坏了。一般好的振动特性时,三轴加速度的原始数据值都会在很小的范围内波动,在±3范围内就是非常好的振动环境了:

在这里插入图片描述
在这里插入图片描述

四、调试策略

而通过分析飞行器的幅频特性有什么意义呢,一方面除了查看飞行器的振动特性好坏,另一方面也是为了对飞控中的滤波参数进行调试。飞控中跟振动有关的参数有两个:一个是IMU_GYRO_CUTOFF,这个参数是用于陀螺仪原始数据输出滤波的,滤波器是一个巴特沃斯二阶低通滤波,这个参数当然是要设置成小于振动主频率,但最好不好小于40hz,避免引入过大的延时。另外一个参数是MC_DTERM_CUTOFF,这就是角速率环D项的滤波参数,这个噪声更大,所以滤波参数选得较小,30hz基本满足大部分的飞机。这两个参数调试完成后再把角速率环的D项参数慢慢往上加,直到飞机出现小幅震荡后缩减到一半就可以了。

这里有一些应对振动的小方法,大家在遇到振动问题时可以参考:

确保所有设备安装牢固;

桨叶动平衡;

使用高质量的电机电调、桨叶;

自驾仪安装减震装置;

设计滤波器,调节滤波器参数。但这不是最好的方法,最好的方法是解决振动源的振动问题。

本篇文章首发于公众号:无人机系统技术。更多无人机技术相关文章请关注此公众号

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/182250.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年10月13日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档