Skip to content

rotorliu/AutoTune

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AutoTune - Betaflight 自动 PID/Rate 调参工具

一款基于 Python + PySide6 开发的桌面工具,通过 USB/串口连接 Betaflight 飞控,实现 PID 参数Rate 参数 的自动调优。

✨ 功能特点

🚀 自动调参

  • PID 自动调优: 融合时域规则引擎 + 频域传递函数估计,自动计算最优 PID 参数
  • Rate 自动调优: 分析操纵杆输入与角速率响应,自动调整 RC Rate/Super Rate/Expo
  • 滤波器自动调优: 基于陀螺仪噪声分析,自动推荐滤波器截止频率
  • 双重模式支持: Blackbox 日志分析 + 实时遥测采集
  • 飞行场景适配: 航拍 / 花飞 / 竞速 / 新手 / 穿越五种预设,自动调整调参激进程度

📊 数据分析

  • 实时陀螺仪数据监控
  • Welch 传递函数估计: 分帧加窗谱估计,输出闭环 Bode 图(幅频 + 相频)
  • 相干性检验: 评估飞行数据质量,自动标记不可靠的分析结果
  • 频域指标提取: 闭环带宽、相位裕度、谐振峰值、灵敏度函数
  • FFT 频谱分析(低频 / 中频 / 高频能量分布)
  • 阶跃响应分析(上升时间、超调量、稳态误差)
  • 飞行质量评分系统

💾 方案管理

  • 调参方案保存/加载
  • 方案对比功能
  • 一键备份/恢复配置

🔌 飞控连接

  • 自动识别 Betaflight 设备
  • 支持多种串口波特率
  • 飞控信息显示(型号、固件版本、目标)

🛠️ 技术栈

模块 技术 说明
语言 Python 3.11+ 核心开发语言
GUI PySide6 Qt 跨平台桌面框架
串口 pyserial MSP 协议通信
信号处理 numpy, scipy Welch 谱估计、FFT、滤波、阶跃响应
可视化 pyqtgraph 实时数据图表
打包 PyInstaller 生成独立可执行文件

📦 安装方法

方法一:运行源代码

# 克隆仓库
git clone <repository-url>
cd AutoTune

# 安装依赖
pip install -r requirements.txt

# 运行程序
python main.py

方法二:使用预编译版本

下载对应平台的可执行文件:

  • Windows: AutoTune.exe
  • macOS (M1): AutoTune.app

🚀 快速开始

  1. 连接飞控: 使用 USB 线连接 Betaflight 飞控,在"连接"选项卡中选择串口并连接
  2. 备份配置: 在"自动调参"选项卡中点击"备份当前配置"
  3. 选择模式: 选择"实时遥测"或"Blackbox 日志文件"
  4. 执行调参: 点击"开始自动调参",等待分析完成
  5. 应用结果: 查看调参结果,确认后点击"应用调优结果到飞控"

📁 项目结构

AutoTune/
├── main.py                    # 程序入口
├── requirements.txt           # Python 依赖
├── resources/
│   └── styles.qss             # 暗色主题样式
├── autotune/
│   ├── msp/                   # MSP 协议层
│   ├── fc/                    # 飞控高层接口
│   ├── acquisition/           # 数据采集模块
│   ├── analysis/              # 信号分析模块
│   ├── tuning/                # 调参算法模块
│   ├── ui/                    # 用户界面模块
│   └── utils/                 # 工具模块
└── tests/                     # 单元测试

📖 使用说明

PID 调优原理

  1. 数据采集: 收集陀螺仪数据和操纵杆输入
  2. FFT 分析: 识别高频振荡和低频漂移
  3. 阶跃响应分析: 计算上升时间、超调量、稳态误差
  4. 规则引擎: 根据分析结果应用调参规则
    • 超调过大 → 降低 P 或增加 D
    • 响应过慢 → 增加 P
    • 低频漂移 → 增加 I
    • 高频振荡 → 增加 D 或降低 P

Rate 调优原理

  1. 分析操纵杆输入与角速率响应关系
  2. 评估当前 Rate 是否达到目标角速率
  3. 自动调整:
    • 中心灵敏度 → RC Expo
    • 最大角速率 → Super Rate
    • 线性度 → RC Rate

⚠️ 注意事项

  1. 飞行安全: 调参结果仅供参考,建议在试飞前进行充分测试
  2. 保守模式: 首次使用建议勾选"保守模式",参数变化更小更安全
  3. 配置备份: 在写入飞控前建议备份当前配置
  4. 串口驱动: 确保已安装正确的串口驱动(如 CP210x、STM32 VCP)

📝 许可证

Apache 2.0 License - 详见 LICENSE 文件

🤝 贡献

欢迎提交 Issue 和 Pull Request!

📧 联系方式

如有问题或建议,欢迎反馈。

About

一款基于 Python + PySide6 开发的桌面工具,通过 USB/串口连接 Betaflight 飞控,实现 **PID 参数** 与 **Rate 参数** 的自动调优。

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages