PX4无人机调参

news2024/12/23 15:02:21

文章目录

  • 前言
  • 一、滤波参数
  • 二、PID参数
    • 自动调参
    • 手动调参
      • 角速率环
      • 姿态环

前言

PX4 1.13.2
日志分析软件:flight review
https://logs.px4.io/

一、滤波参数

调参时可以用自稳模式飞行
在调滤波器参数之前,可以先大致调一下PID的参数,角度率环的P和D不要设置的太高,能飞并且没有明显超调和振荡就可以
通常默认PID参数就可以

建议先调完滤波参数再精调PID,因为如果传感器噪声较大且没有被滤掉的话,会导致电机输出噪声大,导致下面的现象

1电机和电调可能会变热,甚至损坏。
2续航时间变少,因为电机不断改变速度。
3可见的随机小抽搐。
此时只调PID很难达到理想的控制效果。

PX4里面可以调整低通滤波器的截止频率参数来过滤掉高频噪声。截止频率越小,过滤的越彻底,但是带来的控制延时越大。截止频率越大,延时越小,但是会使噪声变大。

延时会影响控制效果。如果控制延时较大,则相应的PID的P项就不能设置的太大。同样的PID参数,低延时的飞机可能飞行很好,延时大的飞机可能直接发散,只能调小PID才能飞起来,相应的控制效果也会变差。影响延时的因素如下:

1.机身较软,或者安装有减震板(这相当于硬件滤波)
2.软件上的低通滤波
3.PX4固件从数据读取到控制输出的计算延时
4.陀螺仪的最大输出频率,(使用参数IMU_GYRO_RATEMAX配置)。较高的速率减少了延迟,但可能会占用其他进程计算资源。仅建议使用STM32H7处理器或更新处理器的控制器使用4 kHz或更高频率(2 kHz值接近功能较差处理器的极限)。
5.与使用AUX引脚相比,IO芯片(MAIN引脚)增加了约5.4毫秒的延迟。为避免IO延迟,请禁用SYS_USE_IO并将电机连接到AUX引脚。
6.PWM输出信号:启用Dshot或One Shot以减少延迟。
7.执行器的控制延时,一般小轴距飞机的电机相应快,大轴距飞机的电机KV低,响应慢。因此大轴距的飞机PID不能太大。

滤波器参数
陀螺仪数据的陷波滤波器,用于滤除窄带噪声,例如桨叶频率处的谐波。可以使用IMU_GYRO_NF0_BW和IMU_GYROC_NF0_FRQ配置此滤波器。

陀螺仪传感器数据的低通滤波器。可以使用IMU_GYRO_CUTOFF参数进行配置。

陀螺仪D项上的一个单独的低通滤波器。D项最容易受到噪声的影响,而稍微增加的延迟不会对性能产生负面影响。因此,D项具有可单独配置的低通滤波器IMU_DGYRO_CUTOFF。

电机输出(MOT_SLEW_MAX)上的滑动滤波器。一般不使用。

调参前需要配置日志记录参数:SDLOG_PROFILE ,勾选High rate。
调参数IMU_GYRO_CUTOFF。
看陀螺仪数据的FFT频谱图
以下图为例,在40HZ以后的噪声比较多,可以设置IMU_GYRO_CUTOFF为35。
请添加图片描述调参数IMU_DGYRO_CUTOFF。
看角加速度的FFT图
以下图为例,在40Hz以后有一个噪声高峰,可以设置IMU_DGYRO_CUTOFF为35
请添加图片描述
调参数IMU_ACCEL_CUTOFF。
看加速度数据的FFT图。
以下图为例,在35Hz以后的振动比较大,可以设置IMU_ACCEL_CUTOFF为30
请添加图片描述调完参数可以看actuator_control的FFT,查看控制输出的噪声是否在可接受的范围。
除了软件上的滤波,还需要在硬件上减少振动,例如飞控安装减震,飞机上的所有部件都安装牢固,桨叶动平衡。机架尽量用强度高,轴距小的的机架,电机用高KV值电机(高频振动更好滤除)

二、PID参数

自动调参

如果使用自动调参,需要使用新版的QGC地面站
PX4自动调参可以用hold模式调参,先起飞,然后切换到hold模式,调角速率环的话,点击下图的Autotune,飞机会自动进行roll/pitch/yaw角速率PID的调整。调整期间可以看到飞机会自动执行一些动作。请添加图片描述
调整完后,可以看到地面站提示降落飞机,自动调参的进度条提示wait for disarm,此时降落飞机
请添加图片描述
降落后可以看到地面站提示Autotune successful,说明调参成功。
请添加图片描述
角度环的自动调参同角速率环

手动调参

首先调角速率环,然后姿态环,再速度环,最后位置环。

角速率环

PX4角速率环PID流程如下
请添加图片描述
基于上图,有两种调参形式

1.并行形式
相当于K取常数
在这里插入图片描述
2.标准形式
相当于P取常值,这种形式在数学上等同于并行形式,但主要优点是它将比例增益调谐与积分和导数增益解耦。这意味着,通过利用具有类似尺寸/惯性的无人机的增益,并简单地调整K增益,就可以很容易地调整新飞机,使其正常飞行。
在这里插入图片描述
在调角速率PID时可以在自稳/特技模式下飞行,特技模式能更容易的看出调参效果,但更难操控,新手建议用自稳模式。
一开始可以把roll/pitch的PID设置成一样,等调的差不多了,然后再对roll和pitch的PID单独细调,如果飞机是对称的,则roll和pitch的PID一样就可以了。yaw的调参方法和roll/pitch类似,但是yaw的D项一般为0.

P项调节
将角速率环的I和D都置0,K置为1,然后调节P项,从小到大开始调。

P项过高:高频振荡
如下图,红色是当前角速率,绿色是期望角速率,大概以10Hz频率振荡

请添加图片描述

P项过低:对操纵反映迟缓,在特技模式下可以看到姿态的漂移。
如下图,红色是当前角速率,绿色是期望角速率,可以看到当前角速率曲线的相位明显滞后于期望的角速率
请添加图片描述

每次增加20-30%的增益,最终微调时减少到5-10%。
较好的P如下图,红色的为期望角速度,蓝色为当前角速度。相应较快,且没有明显的超调和振荡(两者还存在较大的静差,这是由于现在的I项为0)
请添加图片描述
I项调节
调好P后,就可以调节I
I项过高:低频振荡
如下图,红色是当前角速率,蓝色是期望角速率,几乎没有静差,但过高的I也会导致振荡
请添加图片描述I项过低:静差较大,如下图,红色是当前姿态,蓝色是期望姿态
请添加图片描述较好的I效果如下,没有振荡,也没有明显的静差。
请添加图片描述D项调节
D项的主要作用是抑制超调,但不宜过大,因为会放大噪声

D项过大:电机会发烫,并且电机会抽搐(听声音就是高频的忽高忽低声音),并且对操纵的反映比较迟钝。
可以看到电机的输出变化非常剧烈。
请添加图片描述D项过小:在阶跃输入后会出现超调,例如在自稳模式猛打杆后立刻将杆回中,可以看到飞机来会振荡几次后才恢复水平。此时可以调大D,直到飞机能够直接恢复水平而没有明显振荡。

姿态环

姿态环只有比例项,调参比较简单,如果P太小,操纵会比较迟钝,P太大也会出现振荡或超调,一般默认值就可以用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/448647.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

4-log打印

1.相关文件 2.示例 #include <stdbool.h> #include <stdint.h> #include <stdio.h> #include "nrf.h" #include "nrf_delay.h" #include "app_error.h" #include "nrf_log.h" #include "nrf_log_ctrl.h" …

WPF教程(九)--数据绑定(2)--绑定模式

一、绑定模式 绑定模式以及模式的使用效果。 示例如下是根据ListBox中的选中项&#xff0c;去改变TextBlock的背景色。将 TextBlock 的背景色绑定到在 ListBox 中选择的颜色。在下面的代码中针对TextBlock的 Background 属性使用绑定语法绑定从 ListBox 中选择的值。代码如下。…

typeScript的安装及基础使用示例

4.1.安装typescript npm 包&#xff1a; npm install -g typescript 2.查看安装好的版本检验&#xff1a; tsc -v 3.编译一个typescript 文件&#xff1a;tsc hello.ts 4.运行一个ts文件&#xff1a; 首先安装ts-node &#xff0c;ts-node需要在全局去安装。这里要用 npm…

【LeetCode】剑指 Offer 64. 求1+2+…+n p307 -- Java Version

题目链接&#xff1a;https://leetcode.cn/problems/qiu-12n-lcof/ 1. 题目介绍&#xff08;64. 求12…n&#xff09; 求 12...n &#xff0c;要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句&#xff08;A?B:C&#xff09;。 【测试用例】&a…

android aidl

本文只是记录个人学习aidl的实现&#xff0c;如需学习请参考下面两篇教程 官方文档介绍Android 接口定义语言 (AIDL) | Android 开发者 | Android Developers 本文参考文档Android进阶——AIDL详解_android aidl_Yawn__的博客-CSDN博客 AIDL定义&#xff1a;Android 接口…

实验五 视图与完整性约束

实验五 视图与完整性约束 目录 实验五 视图与完整性约束选择题sql评测题1、SQl视图&#xff1a;建立视图CJ\_STUDENT题目代码题解 2、SQL视图&#xff1a;建立视图AVG\_CJ题目代码 3、SQL视图&#xff1a;建立视图IS\_STUDENT题目代码题解 4、SQL视图&#xff1a;根据视图CJ\_S…

pcle接口详解用途说明

PCIE (peripheral component interconnect express) 中文名&#xff1a;高速串行计算机扩展总线标准&#xff0c;它原来的名称为“3GIO”&#xff0c;由英特尔在2001年提出。 PCIE 有 12345代 和x1/x4/x8/x16插槽 1、PCIE x1/x4/x8/x16插槽模式&#xff0c;的区别和用处 pcel …

ChatGPT 下我的焦虑

鉴于一些读者还未体验过&#xff0c;可以看一下以下 GitHub 项目&#xff0c;收集了几千个封装的 ChatGPT 网站&#xff1a; https://github.com/weekend-project-space/chatgpt-sites 在 ChatGPT 刚出的时候&#xff0c;我对 AI 不屑一顾&#xff0c;大概源自于好几年前人工智…

微服务之异步消息通信

Informal Essay By English I’m sorry that I haven’t updated the article lately because the blogger has been busy with interviews and summarizing their experience. I will create a special article to describe the recent events. Next, let’s get to the topi…

FRP 内网穿透,绕过防火墙控制内网机器

内网穿透&#xff0c;端口映射技术是一门十分古老的技术&#xff0c;他一直是一把双刃剑&#xff0c;可以绕过防火墙入侵目标服务器&#xff0c;也可以方便我们运维&#xff0c;工作。 早年的lcx 或者portmap都是比较老的工具了&#xff0c;frp这个工具比之前的lcx或者portmap都…

element-china-area-data 中国省市区级联选择器

1.安装 npm install element-china-area-data -S 2. 说明 文档&#xff1a;element-china-area-data - npm provinceAndCityData是省市二级联动数据&#xff08;不带“全部”选项&#xff09; regionData是省市区三级联动数据&#xff08;不带“全部”选项&#xff09; prov…

车载操作系统架构研究报告

目 录 前 言 ............................................... 1 1 术语定义及缩略语 ................................................................ 3 1.1 术语与定义 ................................................................. 3 1.2 缩略语 ..............…

[读书笔记] Variational AutoEncoders

小全读书笔记 《Variational AutoEncoders》 1. Generative Model &#xff08;生成式模型&#xff09;简述2. 简单生成模型 AutoEncoders![AutoEncoder结构图](https://img-blog.csdnimg.cn/46c5dcf47e754bf7b71d973a15507e0e.png#pic_center)2.1 结构2.2 不足 3. Variational…

【Vue已解决】阻止Vue在启动时生成生产提示

介绍 这里是小编成长之路的历程&#xff0c;也是小编的学习之路。希望和各位大佬们一起成长&#xff01; 以下为小编最喜欢的两句话&#xff1a; 要有最朴素的生活和最遥远的梦想&#xff0c;即使明天天寒地冻&#xff0c;山高水远&#xff0c;路远马亡。 一个人为什么要努力&a…

3 redis线程IO模型

1 IO模型 1.1 IO IO (Input/Output&#xff0c;输入/输出)即数据的读取&#xff08;接收&#xff09;或写入&#xff08;发送&#xff09;操作&#xff0c;通常用户进程中的一个完整IO分为两阶段&#xff1a;用户进程空间<–>内核空间、内核空间<–>设备空间&…

常用脚本记录

文章目录 1. shell脚本1.1 backup.sh // 目录备份&#xff08;数据备份&#xff09;1.2 check_ip.sh // 检查ip1.3 FlotMonitor.sh // 流量监控1.4 ssh_NoPasswd.sh // 集群免密 2. python脚本2.1 游戏脚本2.1.1 saolei.py // 扫雷(python3)2.1.2 Guessnum.py // 猜数字(python…

Centos7 部署单机 Minio 对象存储服务

MinIO 是一款基于 Go 语言发开的高性能、分布式的对象存储系统&#xff0c;客户端支持 Java&#xff0c;Net&#xff0c;Python&#xff0c;Javacript&#xff0c;Golang语言。 MinIO 的主要目标是作为私有云对象存储的标准方案&#xff0c;非常适合于存储大容量非结构化的数据…

基于AT89C51单片机的简易计算机设计

点击链接获取Keil源码与Project Backups仿真图&#xff1a; https://download.csdn.net/download/qq_64505944/87715642?spm1001.2014.3001.5503 源码获取 主要内容&#xff1a; 本设计是以单片机AT89C51为核心的简易计算器设计&#xff0c;要通过芯片AT89C51实现计算器程序…

Vue核心 计算属性 侦听属性

1.9.计算属性 1.插值语法实现 <!DOCTYPE html> <head><meta charset"UTF-8"><title>姓名案例_插值语法实现</title><!-- 引入Vue --><script type"text/javascript" src"../js/vue.js"></script…

linux部署jdk\redis\nginx\fastdfs

一、jdk安装及配置修改 1、本地下载jdk包 jdk-8u131-linux-x64.tar.gz&#xff0c;上传到服务器&#xff08;也可通过命令直接下载&#xff09; 2、将压缩包放服务器/usr/local路径下&#xff0c;后解压&#xff1a;tar -zxvf jdk-8u131-linux-x64.tar.gz 如之前已安装&…