多旋翼无人机振动分析与减振方法

2023-10-18 10:10

本文主要是介绍多旋翼无人机振动分析与减振方法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

多旋翼无人机振动分析与减振方法

  • 振动分析
  • 无人机减振设计
    • 机械减振
    • 数字滤波减振

振动分析

振动机制包括:

  • 激励(振动源)
  • 系统
  • 响应

无人机振动机制:

  • 激励 —— 动力系统(旋翼+电机)
  • 系统 —— 机架
  • 响应 —— 传感器(惯导)

无人机振动来源:

  • 动不平衡,振动频率等于旋转频率
  • 单个旋翼产生的周期性气动力(升力波),引起的振动二次谐波
  • 多个旋翼流场相互耦合产生的二次以上的谐波

振动影响方向:

  • 动不平衡 —— 水平方向
  • 气动力 —— 垂直方向
    在这里插入图片描述
    上图电机旋转频率为95Hz,可以看出振动信号的基频为电机旋转频率,另外存在2、4、8次谐波分量

振动对无人机的危害:
对于多旋翼飞行器而言,振动最大的危害是使惯性测量单元的测量失真,进而导致状态估计误差增大,影响控制性能,严重可使控制发散。

机架振动分析结论:

  • 机臂中间段形变大于外段和内段,机臂中间段平均振幅最强
  • 机架中部,形变最小,布置飞行控制器所需惯性测量单元的理想位置

无人机减振设计

减振的目标是降低高频和中频振动,同时仍然允许低频来反应实际运动与机身同步进行。
减振的手段大体可以分为两种:

  • 机械减振
  • 数值滤波减振

机械减振

机械减振可以作为一种有效的噪声消除手段。它通过阻挡无效信号进入传感器,从源头上滤去噪音,很多时候能实现数字滤波达不到的效果。从减振降噪的角度看,阻尼是指耗损振动的能量的能力,将振动的机械能转化为内能或其他形式的能量,从而达到减振的目的。

机械减振有几种方法

1、3M泡沫
在这里插入图片描述
3M 泡沫两面都有粘性,预先切割好,分别贴在飞控的四个角上

2、凝胶垫
将凝胶切成 1 厘米 ~ 2 厘米的方块,并贴在飞控的每个角落。

3、防震平台
在这里插入图片描述
在这里插入图片描述
安装时可使用双面胶,或间隔 45mm x 45mm 的 M3 螺丝

5、O型圈悬架安装
在这里插入图片描述

数字滤波减振

尽管机械减振的效果显著,但它需要在机械设计和材料选择上进行大量的改动和尝试,这在很多情况下并不方便。相比之下,数字滤波减振就显得更为简单和高效。它通过软件算法,将不必要的高频信号滤除。

可以通过频谱分析,使用一阶低通滤波或者带阻滤波,来滤除不必要的高频信号。

常用的一阶低通滤波器如下:
在这里插入图片描述

这篇关于多旋翼无人机振动分析与减振方法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/231896

相关文章

Linux换行符的使用方法详解

《Linux换行符的使用方法详解》本文介绍了Linux中常用的换行符LF及其在文件中的表示,展示了如何使用sed命令替换换行符,并列举了与换行符处理相关的Linux命令,通过代码讲解的非常详细,需要的... 目录简介检测文件中的换行符使用 cat -A 查看换行符使用 od -c 检查字符换行符格式转换将

Go标准库常见错误分析和解决办法

《Go标准库常见错误分析和解决办法》Go语言的标准库为开发者提供了丰富且高效的工具,涵盖了从网络编程到文件操作等各个方面,然而,标准库虽好,使用不当却可能适得其反,正所谓工欲善其事,必先利其器,本文将... 目录1. 使用了错误的time.Duration2. time.After导致的内存泄漏3. jsO

SpringBoot实现数据库读写分离的3种方法小结

《SpringBoot实现数据库读写分离的3种方法小结》为了提高系统的读写性能和可用性,读写分离是一种经典的数据库架构模式,在SpringBoot应用中,有多种方式可以实现数据库读写分离,本文将介绍三... 目录一、数据库读写分离概述二、方案一:基于AbstractRoutingDataSource实现动态

Java中的String.valueOf()和toString()方法区别小结

《Java中的String.valueOf()和toString()方法区别小结》字符串操作是开发者日常编程任务中不可或缺的一部分,转换为字符串是一种常见需求,其中最常见的就是String.value... 目录String.valueOf()方法方法定义方法实现使用示例使用场景toString()方法方法

Java中List的contains()方法的使用小结

《Java中List的contains()方法的使用小结》List的contains()方法用于检查列表中是否包含指定的元素,借助equals()方法进行判断,下面就来介绍Java中List的c... 目录详细展开1. 方法签名2. 工作原理3. 使用示例4. 注意事项总结结论:List 的 contain

macOS无效Launchpad图标轻松删除的4 种实用方法

《macOS无效Launchpad图标轻松删除的4种实用方法》mac中不在appstore上下载的应用经常在删除后它的图标还残留在launchpad中,并且长按图标也不会出现删除符号,下面解决这个问... 在 MACOS 上,Launchpad(也就是「启动台」)是一个便捷的 App 启动工具。但有时候,应

SpringBoot日志配置SLF4J和Logback的方法实现

《SpringBoot日志配置SLF4J和Logback的方法实现》日志记录是不可或缺的一部分,本文主要介绍了SpringBoot日志配置SLF4J和Logback的方法实现,文中通过示例代码介绍的非... 目录一、前言二、案例一:初识日志三、案例二:使用Lombok输出日志四、案例三:配置Logback一

Python实现无痛修改第三方库源码的方法详解

《Python实现无痛修改第三方库源码的方法详解》很多时候,我们下载的第三方库是不会有需求不满足的情况,但也有极少的情况,第三方库没有兼顾到需求,本文将介绍几个修改源码的操作,大家可以根据需求进行选择... 目录需求不符合模拟示例 1. 修改源文件2. 继承修改3. 猴子补丁4. 追踪局部变量需求不符合很

Spring事务中@Transactional注解不生效的原因分析与解决

《Spring事务中@Transactional注解不生效的原因分析与解决》在Spring框架中,@Transactional注解是管理数据库事务的核心方式,本文将深入分析事务自调用的底层原理,解释为... 目录1. 引言2. 事务自调用问题重现2.1 示例代码2.2 问题现象3. 为什么事务自调用会失效3

mysql出现ERROR 2003 (HY000): Can‘t connect to MySQL server on ‘localhost‘ (10061)的解决方法

《mysql出现ERROR2003(HY000):Can‘tconnecttoMySQLserveron‘localhost‘(10061)的解决方法》本文主要介绍了mysql出现... 目录前言:第一步:第二步:第三步:总结:前言:当你想通过命令窗口想打开mysql时候发现提http://www.cpp