BetaFlight代码解析(5)— PID控制器

BetaFlight PID控制器解析

本文档解释了 Betaflight 中的 PID(比例-积分-微分)控制器,它是维持飞行器稳定性和响应性的核心飞行控制算法。有关如何调整 PID 设置的信息,请参阅本维基其他章节中的配置指南。

概述

PID 控制器持续计算期望飞行器姿态(设定值)与陀螺仪测量姿态之间的误差值,然后对电机施加校正动作以最小化该误差。Betaflight 的实现超越了基本的 PID 控制,还包含前馈、动态 D 项限制、反重力等高级功能。

PID控制回路架构

PID组件

Betaflight 中的 PID 控制器处理四个主要参数:

  1. P项(比例项):对偏离设定值的情况立即做出反应
  2. I 项(积分):随时间累积误差以消除稳态误差。
  3. D 项(导数):对误差变化率做出响应,提供阻尼作用。
  4. F 项(前馈):直接响应设定值的变化,提高响应能力

默认PID值

Betaflight 包含适用于大多数中型四轴飞行器的默认 PID 值:

PDF
458030120
沥青478434125
偏航45800120

PID 数据结构

Betaflight PID 控制器使用以下几个关键数据结构:

高级PID功能

Betaflight 在基本 PID 控制的基础上增加了几个高级功能:

iTerm Relax

减少快速摇杆移动期间的 I 项累积,以防止过冲和回弹。由iterm_relax(模式)和iterm_relax_type(基于陀螺仪或设定点)控制。

D-Max(动态 D 限制)

根据设定值和陀螺仪速率动态调整 D 项,以便在需要时(如在螺旋桨滑流期间)提供额外的 D 值,而不会持续产生较高的 D 值。

TPA(节气门PID衰减)

在较高的油门位置降低 PID 增益(通常是 D 项),以补偿增加的电机功率和振动。

前馈

它能在误差出现之前对摇杆动作做出快速响应,从而提高摇杆的灵敏度。其工作原理是监测设定值的变化率。

PID控制器生命周期

PID配置文件管理

Betaflight支持多个PID配置文件,这些配置文件可以存储并在运行过程中切换:

调试 PID 性能

Betaflight 提供多种调试模式,用于分析 PID 控制器性能:

调试模式描述
调试_PID循环显示PID回路的时序和性能
调试反重力显示出反重力激活和效应
DEBUG_D_MAX显示D-Max活性和效应
DEBUG_ITERM_RELAX显示 iTerm 松弛活动
调试_ACRO_TRAINER显示杂技教练介入
DEBUG_RC_SMOOTHING显示RC输入平滑效果

PID控制器配置参数

下表总结了PID控制器的主要参数:

范围目的默认范围
pidSumLimit横滚/俯仰的最大PID总和500100-1000
pidSumLimitYaw偏航角最大PID总和400100-1000
终端启动iTerm 停止运行预防800-100
iterm_rotation随着四边形旋转,iTerm 也随之旋转。离开开/关
iterm_relax快速移动时减少 iTermRP关闭/RP/RPY/RP_INC/RPY_INC
d_max最大 D 增益40/46/00-100
反重力增益反重力效应强度800-250
前馈转换靠近中杆的FF减少00-100

与其他系统的交互

概括

PID控制器是Betaflight飞行控制系统的核心,负责将飞行员的输入转化为稳定的飞行。它结合了传统的PID控制理论和众多针对飞行特性的增强功能,从而兼顾了稳定性和响应速度。了解PID控制器的组成部分和特性对于有效的飞行调优和优化至关重要。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值