我的创作纪念日(2)设置飞机进行调优

news/2024/7/10 22:22:46 标签: 开源, 无人机, 调优, Copter, ArduPilot

文章目录

        前言

2.1 电池设置

2.2 电机设置

2.3 PID控制器初始设置


前言

以下参数应根据你的飞机的规格正确设置。每一个都会影响调优过程的质量。


2.1 电池设置

确保你的 VTOL 电机的推力曲线尽可能的线性是非常重要的。一个线性的推力曲线意味着电机产生的实际推力的变化与 ArduPilot 所要求的推力成正比。如果你的推力曲线是严重的非线性,那么你将永远不会产生一个好的调优,在某些情况下,可能最终会产生一个坏的调优,你的飞行器可能会变得完全不稳定和崩溃。

导致非线性推力曲线的常见原因有 3 个:

  • 随着油门的增加,电压疲沓;
  • 在你使用的 PWM 范围内对你的电调进行不正确的端点设置(见下面的"电机设置");
  • 你的螺旋桨、电调和电机组合产生的推力的非线性问题。

从设置电压范围开始,以应对电压疲沓。参数用于线性化你的电机推力曲线

  • MOT_BAT_VOLT_MAX4.2v x 电池数量;
  • MOT_BAT_VOLT_MIN3.3v x 电池数量。

接下来设置推力表。如果你正在设置一个专业的飞机,那么你应该投资一个推力架,这样你就可以在改变油门时准确地测量你的电机/ESC/螺旋桨组合的真实推力。然后,你将随着端点(由下面的电机设置给出)调整 expo 值,使端点之间的推力尽可能的线性。不要相信制造商的推力曲线数据,因为它们经常是不准确的。有关推力比例的细节,请参见电机推力比例(Motor Thrust Scaling)。

如果你正在设置一个爱好级的飞行器,那么你可以使用下面的图表来估算你飞机的正确 MOT_THST_EXPO 值。

MOT_THST_EXPO5英寸螺旋桨为 0.55,10英寸螺旋桨为 0.6520英寸螺旋桨(或更大)为 0.75。这个参数应通过推力架测量得出,以获得最佳效果(不要相信制造商的数据)。

2.2 电机设置

电机参数定义了发送给电调的 PWM 输出范围。这对于确保飞行中使用的整个油门值范围在你的推进系统的线性范围内是至关重要的。

用于定义发送至 ESC 的输出范围的参数。

  • MOT_PWM_MAX查看 ESC 手册,了解固定范围或 2000us
  • MOT_PWM_MIN:查看 ESC 手册,了解固定范围或 1000us
  • MOT_SPIN_ARM:使用电机测试功能(motor test feature)来确定一个值,它可以可靠地启动电机以低转速旋转,作为解锁状态的指示;
  • MOT_SPIN_MAX:0.95
  • MOT_SPIN_MIN:使用电机测试功能(motor test feature)和电机测试数据,如果有的话,来设置线性推力的较低范围。默认值通常对业余用途来说是足够的;
  • MOT_THST_HOVER:0.25 或低于预期的实际悬停推力百分比(更低是安全的)。

2.3 PID控制器初始设置

下面的设置是为了使你的 PID 控制器的加速度和滤波器设置进入正确的近似范围,以适应你的飞行器。这些参数对调优过程至关重要。PID 控制器的轴 P/D/I 值的默认值对于大多数飞行器的第一次测试悬停来说通常是安全的。

  • INS_ACCEL_FILTER10Hz
  • INS_GYRO_FILTER:5英寸螺旋桨的 80Hz,10英寸螺旋桨的 40Hz20英寸螺旋桨的 20Hz(或更大);
  • ATC_ACCEL_P_MAX:10英寸螺旋桨为 11000020英寸螺旋桨为 5000030英寸螺旋桨为 20000
  • ATC_ACCEL_R_MAX:10英寸螺旋桨为 11000020英寸螺旋桨为 5000030英寸螺旋桨为 20000
  • ATC_ACCEL_Y_MAX:10英寸螺旋桨 2700020英寸螺旋桨 1800030英寸螺旋桨 9000

对于 Copter-4.1(及以后的版本):

  • ATC_RAT_PIT_FLTDINS_GYRO_FILTER / 2;
  • ATC_RAT_PIT_FLTT:INS_GYRO_FILTER / 2;
  • ATC_RAT_RLL_FLTD:INS_GYRO_FILTER / 2;
  • ATC_RAT_RLL_FLTT:INS_GYRO_FILTER / 2;
  • ATC_RAT_YAW_FLTE:2;
  • ATC_RAT_YAW_FLTTINS_GYRO_FILTER / 2。


http://www.niftyadmin.cn/n/305896.html

相关文章

RK3588平台开发系列讲解(内存篇)Linux 伙伴系统数据结构

平台内核版本安卓版本RK3588Linux 5.10Android 12文章目录 一、 页二、区三、内存节点沉淀、分享、成长,让自己和他人都能有所收获!😄 📢Linux 系统中,用来管理物理内存页面的伙伴系统,以及负责分配比页更小的内存对象的 SLAB 分配器了。 本篇将介绍伙伴系统相关数据结…

Kubernetes_容器网络_01_Docker网络原理(二)

文章目录 一、前言二、被隔离的Docker容器三、网桥Bridge四、VethPair网络对五、统一宿主机上的两个Container容器通信六、宿主机访问其上的容器七、宿主机上的容器访问另一个宿主机八、尾声 一、前言 二、被隔离的Docker容器 Linux 网络,就包括:网卡&…

Redis:哨兵集群

目录 基于pub/sub 机制的哨兵集群组成基于pub/sub 机制的客户端事件通知由哪个哨兵执行主从切换哨兵实例是不是越多越好,如果同时调大 down-after-milliseconds 值,对减少误判是不是也有好处 部署多个哨兵实例就形成了一个哨兵集群。哨兵集群中的多个实例…

解决MVC4发布在IIS7后,路径无法访问.apk文件的解决方法

随着智能手机的普及,越来越多的人使用手机上网,很多网站也应手机上网的需要推出了网站客户端,.apk文件就是安卓(Android)的应用程序后缀名,默认情况下,使用IIS作为Web服务器的无法下载此文件,那么怎么才能让…

KingbaseES 分区表修改字段类型

KingbaseES普通表修改表结构请参考:KingbaseES变更表结构表重写问题 数据类型转换重写与不重写: varchar(x) 转换到 varchar(y) 当 y>x,不需要重写。numeric(x,z) 转换到 numeric(y,z) 当 y>x,或者不指定精度类型&#xff0…

shell函数数组

shell函数数组 数组的表达方式 (30 20 10 60 50 40) #数组0 1 2 3 4 5 #下标下标从0开始,中间可以断开 一: 数组的定义方法 方法一 数组名(value0 value1 value2 ...)方法二 数组名&#xff08…

数据结构实验的实验报告--B树

访问【WRITE-BUG数字空间】_[内附完整源码和文档] 数据结构实验的实验报告–B树 环境及工具 环境:C 工具:AnyivewCL B 定义 一棵 m 阶 B 树(Balance Tree of order m), 或为空树,或满足下列的特性的 m 叉树:(本次实验采用链式存储结构) …

###复数加减(友元的应用)声明一个复数类CComplex(类私有数据成员为double型的real和image)定义构造函数,用于指定复数的实部与虚部。

###复数加减(友元的应用) 声明一个复数类CComplex(类私有数据成员为double型的real和image) 定义构造函数,用于指定复数的实部与虚部。 定义成员函数,调用该函数时,以格式realimage i的格式输…