PX4代码解析:振动分析

2023-05-16

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

前面的文章主要都是一些理论知识为主,很多读者朋友看了之后可能会有点枯燥,里面很多公式看起来也比较晦涩,今天起给大家讲一讲如何用开源飞控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项参数慢慢往上加,直到飞机出现小幅震荡后缩减到一半就可以了。

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

确保所有设备安装牢固;

桨叶动平衡;

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

自驾仪安装减震装置;

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

本篇文章首发于公众号:无人机系统技术。更多无人机技术相关文章请关注此公众号
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PX4代码解析:振动分析 的相关文章

  • PX4+QGC+jmavsim软件在环仿真

    一 环境修改 参考官方手册jMAVSim 仿真模拟 PX4 Developer Guide xff0c 以上环境基于上一篇内容 xff0c 未完成ROS 43 jmavsim 43 QGC环境搭建的请移步Ubuntu18 04下px4 43
  • PX4使用I2C方式添加自定义传感器(1)

    PX4使用I2C方式添加自定义传感器 xff08 1 xff09 前言 毕业设计就是要在PX4上添加一个传感器 xff08 角度传感器 xff09 xff0c 由于板子上的接口数量很少 xff0c 很是宝贵 最后只能选择通过I2C通信方式
  • 【8-12】树莓派部署t265+px4飞控实现无人机视觉定位

    在之前的文章中 xff0c 我们已经成功在树莓派 xff08 ubuntu mate 18 04 xff09 上部署了T265的追踪摄像头 本文将利用MAVROS协议 xff0c 将T265测量的位姿信息发送给px4固件 xff0c 实现室
  • 飞行机器人(七)仿真平台XTDrone + PX4编译

    0 编译PX4固件 参考仿真平台基础配置教程 xff08 中文详细教程 xff09 仿真平台基础配置 语雀 yuque com https www yuque com xtdrone manual cn basic config 按照教程
  • PX4+Offboard模式+代码控制无人机起飞(Gazebo)

    参考PX4自动驾驶用户指南 https docs px4 io main zh ros mavros offboard cpp html 我的另一篇博客写了 键盘控制PX4无人机飞行 PX4无人机 键盘控制飞行代码 可以先借鉴本篇博客 xf
  • PX4飞控之PWM输出控制

    PX4飞控之PWM输出控制 多旋翼电调如好盈XRotor xff0c DJI通用电调等都支持PWM信号来传输控制信号 常用的400Hz电调信号对应周期2500us xff0c 一般使用高电平时间1000us 2000us为有效信号区间 xf
  • PX4 ---- Indoor Flight

    文章目录 室内飞行ROS amp PX4Pose Data 飞机配置MAVROS 基于工训赛 VIO 飞行总结 室内飞行 ROS amp PX4 Pose Data 飞机配置 VIO 参考此处 xff0c 采用 T265 配置 相机与飞控机
  • PX4模块设计之一:SITL & HITL模拟框架

    PX4模块设计之一 xff1a SITL amp HITL模拟框架 1 模拟框架1 1 SITL模拟框架1 2 HITL模拟框架 2 模拟器类型3 MAVLink API4 总结 基于PX4开源软件框架简明简介的框架设计 xff0c 逐步分
  • PX4模块设计之三:自定义uORB消息

    PX4模块设计之三 xff1a 自定义uORB消息 1 新增自定义uORB消息步骤2 应用ext hello world消息示例3 编译执行结果4 参考资料 基于PX4开源软件框架简明简介和PX4模块设计之二 xff1a uORB消息代理
  • PX4模块设计之九:PX4飞行模式简介

    PX4模块设计之九 xff1a PX4飞行模式简介 关于模式的探讨1 需求角度1 1 多旋翼 MC multi copter 1 1 1 RC控制模式1 1 1 1 Position Mode1 1 1 2 Altitude Mode1 1
  • PX4模块设计之二十一:uORB消息管理模块

    PX4模块设计之二十一 xff1a uORB消息管理模块 1 uORB模块构建模式2 uORB消息管理函数2 1 状态查询2 2 资源利用2 3 模块启动2 4 模块停止3 uORB消息接口3 1 消息主题注册3 2 消息主题去注册3 3
  • PX4模块设计之二十三:自定义FlightTask

    PX4模块设计之二十三 xff1a 自定义FlightTask Step1 创建飞行模式文件夹Step2 创建飞行模式源代码和CMakeLists txt文件Step3 更新CMakeLists txt文件Step4 更新FlightTas
  • PX4模块设计之二十六:BatteryStatus模块

    PX4模块设计之二十六 xff1a BatteryStatus模块 1 BatteryStatus模块简介2 模块入口函数2 1 主入口battery status main2 2 自定义子命令custom command 3 Batter
  • PX4模块设计之三十一:ManualControl模块

    PX4模块设计之三十一 xff1a ManualControl模块 1 ManualControl模块简介2 模块入口函数2 1 主入口manual control main2 2 自定义子命令custom command 3 Manual
  • PX4模块设计之三十九:Commander模块

    PX4模块设计之三十九 xff1a Commander模块 1 Commander模块简介2 模块入口函数2 1 主入口commander main2 2 自定义子命令custom command 3 Commander模块重要函数3 1
  • RTKlib PPP代码解析

    文章目录 ppposudstate pppudbias pppcorr measppp res 欢迎关注个人公众号 xff1a 导航员学习札记 我所基于的代码版本是RTKlib 2 4 3的一个拓展版本RTKexplore Demo5 xf
  • PX4项目学习::(五)模块代码启动流程

    54条消息 PX4 模块代码启动流程 zhao23333的博客 CSDN博客
  • PX4:Policy “CMP0097“ is not known to this version of CMake.

    make px4 fmu v3 时报的错 CMake版本的问题 由https blog csdn net zhizhengguan article details 118380965推测 xff0c 删除cmake policy也没事 ma
  • 四、无人机知识笔记(初级:基本运动原理)

    笔记来源于 沈阳无距科技 工业级无人机的中国名片 编程外星人 目录 一 多旋翼直升机 二 基本飞行姿态 三 多旋翼飞行原理 四 反扭力与偏航运动 五 螺旋桨 六 有刷电机和无刷电机 七 电调与PWM信号 八 动力电池 九 遥控器 十 机架设
  • 大神浅谈无人机飞控软件设计 系统性总结

    写在前面 深感自己对飞控软件 算法的知识点过于杂乱 很久没有进行系统的总结了 因此决定写几篇文章记录一些飞控开发过程的知识点 主要是针对一些软件 算法部分进行讨论 如内容有错误 欢迎指出 1 飞控软件的基本模块 无人机能够飞行主要是依靠传感

随机推荐