ArduPilot之H743快速加减油门抬头现象分析

ArduPilot之H743快速加减油门抬头现象分析

  • 1. 源由
  • 2. 现象分析
  • 3. 改善方法
  • 4. 验证
  • 5. 总结
  • 6. 参考资料

1. 源由

最近一直折腾再ArduCopter快速加减油四轴模型抬头的问题。

具体情况详见下面视频:

    1. 猛加油,机头后仰,然后点头;
    1. 快速松油门后,机头后仰;

最关键的问题是当做空翻动作的时候,这个额外的后仰会感觉失控,操控体验非常差。

注:上述问题主要是针对Betaflight固件而言,因为BF上没有看到类似的情况。

总体期望:ArduCopter能够类似BF的操控效果。

ArduPilot Mark4 猛加油+松油门,抬头现象(throttle chop bobble or "throbble")

2. 现象分析

从黑匣子数据看:

  1. 快速加油,会导致机头后仰
  2. 快速松油门,同样机头会后仰

ArduPilot之H743快速加减油门抬头现象分析_第1张图片
根据网上大佬们的意见:

  1. PD需要增加来克服瞬时油门变化不能及时响应;
  2. BF上通过anti-Gravity特性来针对上述操控特性(当大幅度油门操作的时候,对PD进行瞬时放大,处理响应不及时问题)

Improving Throttle Chop Bobble or Throbbles

Betaflight 3.1 anti-gravity-gain EXPLAINED

从个人体验的角度,感觉0油门的时候,四轴无法维持姿态:

  1. 动力不足
  2. 油门和姿态优先级的问题

经过确认:目前ArduPilot在4.4版本会增加ATC_THR_G_BOOST(类似BF的anti-Gravity)。

3. 改善方法

从上述分析和获得的信息,改善可以从以下几个方面进行:

  1. ATC_THR_MIX_MAN来调整油门和姿态的优先度,来确保姿态的稳定性
    在这里插入图片描述

ATC_THR_MIX_MAN = 4 //会有降落不停弹跳(bounce back)的风险

  1. 增加PD值来确保大油门仍然有机会快速达到稳定姿态的可能
    ArduPilot之H743快速加减油门抬头现象分析_第2张图片

ATC_RAT_PIT_P = 0.210
ATC_RAT_PIT_D = 0.0056
ATC_RAT_RLL_P = 0.150 //增加Roll的PD,boost以后会产生振动
ATC_RAT_RLL_D = 0.0040

  1. ATC_THR_MIX_MIN提升0油门动力值,确保低油门有足够的动力维持姿态
    在这里插入图片描述

ATC_THR_MIX_MIN = 0.24 //0.18有改善,但是仍然存在动力不足,这可能是3S电池电压不足的问题,如果换4S电池,这个值就要下降

  1. ATC_THR_G_BOOST引入类似BF的anti-Gravity功能

在这里插入图片描述

ATC_THR_G_BOOST = 0.5 //做一个中间值的加强PD

  1. 参数优化

INS_FAST_SAMPLE = 3 //both IMU1 and IMU2
INS_GYRO_FILTER = 100 //100Hz
INS_GYRO_RATE = 1 //2K

INS_HNTCH_ENABLE = 1
INS_HNTCH_BW = 40 //40Hz
INS_HNTCH_FREQ = 100 //100Hz
INS_HNTCH_HMNCS = 3 //1st and 2nd harmonic frequency
INS_HNTCH_MODE = 3 //ESC Telemetry
INS_HNTCH_OPTS = 6 //Multi-Source and update at PID loop rate
INS_HNTCH_REF = 1 // RPM sensor enable harmonic notch filter

SCHED_LOOP_RATE = 800
SERVO_DSHOT_RATE = 2 //double loop rate

RC2_REVERSED = 1

SERVO_BLH_POLES = 14 //12N14P

ATC_INPUT_TC = 0.05 //very crisp
INS_HNTCH_HMNCS = 7

WP_YAW_BEHAVIOR = 3 // gps course

ACRO_RP_RATE = 360
ACRO_RP_RATE_TC = 0 //sharp response
ACRO_RP_EXPO = 0.5

ACRO_Y_RATE = 202.5
ACRO_Y_RATE_TC = 0 //sharp response
ACRO_Y_EXPO = 0

4. 验证

经过这几天的测试:

  1. ATC_THR_MIX_MIN增加最小油门起始值可以有效缓解松油门抬头现象;
  2. ATC_THR_G_BOOST可缓解瞬时全油飞机后仰问题;
  3. PD值调整会导致推油门振动问题(平时需要正常PD值,快速全油需要瞬时增加PD值来解决后仰和点头问题)

Mark4 ArduPilot ATC_THR_MIX_MIN improve pitch back while cutting throttle zero

Mark4 ArduPilot throttle chop bobble or throbble Fixed in 4.4.0-beta2

5. 总结

总的来说,ArduCopter固件在穿越机上也能非常好的飞行,且操控性与BF类似。当然还有很多细节的微调,仍然需要时间来完成。

下面有一个基础的飞行控制视频,从感觉上与BF类似,没有太多差异。

Mark4 ArduPilot 4.4.0-beta2 Anti-Gravity much more like Betaflight now

6. 参考资料

【1】Why punch/cut throttle makes drone pitch back?
【2】How to change ATC_THR_MIX_MAN value out of range?
【3】ArduPilot: throttle-boost
【4】ArduPilot开源飞控系统之简单介绍

你可能感兴趣的:(DIY,Drones,ArduPilot,ArduPilot,Mark4,飞行,ArudPilot)