ESPlane
  • Introduction
  • 语言/language
    • 中文
    • English
  • Operater Guide
    • 01 ESPlane Operater Get Started
    • 02 CFclient User Guid
    • 03 Calibration And Commissioning Methods
    • 04 Flight Mode Introduction
    • 05 Pid Tuning
    • 06 Multi-user Mode
    • 07 Load And Endurance Test
  • Developer Guide
    • 01 ESPlane Developer Get Started
    • 02 Code Architecture And Startup Process
    • 03 Sensor Angle Fusion
    • 04 Sensor Calibration
    • 05 Control System
    • 06 Gyro and Accelerometer MPU6050 Driver
    • 07 Laser Sensor Vl53l1x Driver
    • 08 Barometer MS5611 Driver
    • 09 Magnetic Compass HMC5883l Driver
    • 10 Brushed Motor Driver
    • 11 Optical Flow Sensor Pmw3901 Driver
    • 12 Variable Unified Management
    • 13 Crtp Protocol Introduction
    • 14 Crtp Protocol Library - Cflib
    • 15 Compatible With ESPilot APP
    • 16 Height-hold Mode Development
    • 17 Positon-hold Mode Development
  • Research on Crazyflie
    • 01 Crazyflie Project Preview
    • 02 Crazyflie Source Preview
    • 03 Crazyflie Code Modularization Method
    • Discussion On Private-Improvement Scheme
    • Private-1.0 Code Debug Record
    • Private-Research On Commercial Micro Drone Products
    • Well-Known Drone Open Source Solutions
  • ESP32 Development notes
    • ESP32 Chip Naming Rules
    • ESP32 Pin Resource Allocation And Usage Recommendations
    • 01 ESP32-Hardware Preparation-ESP32-DevKitC V2 board
    • 02 ESP32-Environment Setup-Compilation And Programming
    • 03 ESP-IDF-Directory Structure-Template Engineering Analysis Notes
    • 04 ESP32-Code Debugging-Summary Of Several Debugging Methods
    • 05 ESP32 Event Loop
    • 14 ESP32 SPI Use Memo
    • 15 ESP32 GPIO Use Memo
  • Reference
    • bitcraze.io
    • esp-idf-release-v3.3
由 GitBook 提供支持
在本页
  • 一、PID参数整定流程
  • 二、 PID调试问题记录191025:
  • 1. 逆时针慢速的转向抖动
  • 2. 电机输出值上下波动过大

这有帮助吗?

  1. Operater Guide

05 Pid Tuning

版本

时间

备注

V0.1

发布于2019-10-24 14:26:02

初始版本

V0.2

更新于2019-12-23 15:10:16

回答191025问题

一、PID参数整定流程

crazyflie Rate PID调整过程 1. 先调整Rate模式,将rollType,pitchType 和 yawType都调整为RATE 2. 将 ATTITUDE模式对应的 roll, pitch 和 yaw的KP,KI和KD调整为0.0,仅保留Rate相关的参数 3. 将RATE模式对应的 roll, pitch 和 yaw 的KI和KD调整为0.0,先调整比例控制KP 4. 烧写代码,使用cfclient的param功能开始在线进行KP的调整

  1. 注意,使用cfclient修改后的参数,掉电是不保存的.

  2. 注意安全,因为在PID调整期间会出现超调的情况

  3. 先固定住飞行器,让其只能进行pitch轴的翻转.逐渐增加pitch对应的KP,直到飞机出现前后的震荡(超调)

  4. 当出现严重的震荡时,可以稍微降低KP( Once you reach the point of instability, tune it down 5-10 points),然后即可确定KP参数

  5. 同样的方法调整 roll

  6. 最后同样的方法调整yaw

  7. 下面调整 KI,该参数用于消除稳态误差,因为如果不引入该参数,只有比例调整的话,飞机受到重力等干扰会在0位置上线摆动.设置 KI的初始值为KP的50%.

  8. 当KI增大到一定程度,也会导致飞机不稳定的晃动,但是KI造成的晃动频率会相比KP带来的震动,频率更小.然后以造成这个状态的 KI为基础确定 KI的值(This is your critical KI, and so tune down 5-10 points.)

  9. 同样的方法调整 roll 和 yaw

  10. yaw axis, except KI is usually around 80%+ of KP.

以上完成了Rate模式参数的调整

下面开始调试 Attitude PID

  1. 确保Rate PID调整已经完成.

  2. 将rollType,pitchType 和 yawType都调整为ANGLE,意味着飞机已经进入attitude mode.

  3. 改变 roll和pitch的KI和KD为0.0,将Yaw 的 KP``KI``KD都设置为0.0 .

  4. 烧写代码,使用cfclient的param功能开始在线进行KP的调整.

  5. 将roll和pitch的KP设置为3.5,寻找任何不稳定性,例如振荡.持续增加KP,直到达到极限.

  6. 如果您发现KP导致不稳定,如果此时已经高于4,需要将RATE模式的 KP和KI稍微降低5-10点.这使您在调整姿势模式时更加“自由”

  7. 要调整KI,请再次缓慢增加KI.不稳定性的状态是产生低频振荡.

二、 PID调试问题记录191025:

1. 逆时针慢速的转向抖动

起飞1秒后,飞机出现逆时针转动和机身摇晃(多次测试均是逆时针慢速的转向),但能看到在pitch和roll方向有修正作用,但是存在上下的颠簸. 先说下最终解决方法:发现最主要原因为飞行模式选错,姿态按照X型进行计算,但是电机输出确实按照+型计算,两者冲突,将电机输出也改成X型,解决问题!!!

2. 电机输出值上下波动过大

电机输出值上下波动过大,在前后两个控制周期里,同一个电机输出可能出现最小值到最大值的波动. TODO: 需要检查源码,是否有控制分量占比过大,导致最终拟合给电机输出波动太大 191025修正:输出给mos管的pwm频率从1.4kHz提高到300kHz,crazyflie原工程为328Khz.ESPlane1.0 arduino代码pwm频率为1.4khz.修正原因 191030再次修正:将电机输出改为了30kHz(8bit分辨率),在300kHz会出现PWM输出异常 191220再次修正:将电机输出改为了15kHz(8bit分辨率),电机输出基本不再出现问题

上一页04 Flight Mode Introduction下一页06 Multi-user Mode

最后更新于5年前

这有帮助吗?