首页 / 资讯中心 / 文章详情

PX4调参必读:50个关键参数与避坑指南

PX4调参必读:50个关键参数与避坑指南 ★ FEATURED ARTICLE
做飞控调参这几年我见过太多人拿着PX4地面站面对密密麻麻的参数页直接发怵几千个参数到底哪些该动哪些是出厂就别碰的我问了一圈身边搞飞控的工程师答案五花八门但越聊越发现有几组参数几乎所有人都改过、都踩过坑。这就是我整理“PX4最重要的50个参数”的起因。这次不写源码分析也不堆文档按实际调参经验筛出跟飞行安全、飞行品质直接挂钩的50个参数按控制、导航、安全、配置四类讲清楚。适合刚入门的调参新手也适合想让飞机手感更细、少炸机的老飞手。核心就一句话参数不是越多越有用你知道哪些参数不该乱动往往比知道哪些参数能改更重要。1. 先说清楚PX4的参数体系到底长什么样1.1 参数不是越多越好而是有层级在PX4里参数通常由“前缀_名字”组成前缀决定了它属于哪个模块MC_开头是旋翼控制MPC_开头是多旋翼位置控制EKF2_开头是导航滤波器BAT_开头是电池FW_开头是固定翼。读懂前缀你基本就能在地面站里少翻一半页面。很多新手一上来就想把所有参数抄一遍实际上没意义。PX4的参数有很强的层级逻辑内环决定了你能不能站稳外环决定了你飞得好不好看导航和安全参数决定了你炸不炸机。我筛这50个参数正是按这个逻辑走的姿态控制10个位置环15个安全失效保护10个传感器与系统配置15个加起来正好50个。1.2 我筛选50个参数的三条标准筛选标准只有三条第一改动后对飞行行为的影响能不能直接感知。那些改了以后你肉眼看不出变化的参数对绝大多数项目来说优先级很低。第二是不是调试、装机、试飞中反复要用到的。装机一次、试飞一次、返修一次基本绕不开的参数才是高频参数。第三是不是事故排查时的关键变量。很多炸机后的日志分析最后都归到某几个参数上这种参数如果不熟悉排查效率会非常低。按这三条筛下来很多冷门参数自然被排除掉了。比如一些与机架外形相关的命名参数除非你做特别刁钻的混控否则默认值就是对的再比如日志精细采样率它不影响飞行品质只影响排障时的数据质量虽然我也建议关注但优先级往后放。真正重要的永远是那些能让你“多稳住一秒、少飘一米、晚炸一分钟”的参数。2. 姿态控制与角速率环飞机稳不稳全靠这一层2.1 内环参数角速率PID是调参的第一站旋翼机姿态控制分成两个环内环角速率环外环姿态环。角速率环拿陀螺仪数据跟期望角速度做差输出电机指令是整个飞行控制里最贴身的一层。它调不好外环参数再漂亮也白搭。MC_ROLLRATE_P、MC_PITCHRATE_P和MC_YAWRATE_P是旋翼机三个轴的角速率P增益。P值太小时飞机会感觉“肉”打杆以后反应慢甚至在小扰动里来回晃P值太大时飞控会跟陀螺仪噪声较劲机身出现高频抖。我在一些普通四旋翼上实测P从0.1往上加每加0.05都能明显感到机身偏硬的差异。角速率I增益负责消除稳态误差比如重心偏置或桨效不一致导致的持续侧倾把I加上去以后悬停时摇杆回中就不会再慢慢滑。角速率环没有绝对的标准答案但有一个通用的调试手感打杆以后飞机应该果断响应松开杆后机身应该在一两秒内收敛而不是来回摆动。如果收敛慢先加P如果振荡不止先减I再回头查P和D。2.2 D项是双刃剑别乱加角速率D项是很多人容易过敏的参数。D项本质是“预测误差趋势”可以提前抑制过冲很多工程师为了手感好就猛加D结果就是电机发烫、噪声变大、甚至出现高频啸叫。我的经验是D项一定要跟陀螺仪滤波一起看先确认机身的振动基线小再加D。如果机架振动本身就大加D等于把振动送进控制器得不偿失。另一个容易被忽略的点是D项对电机响应速度很敏感。老式模拟电调带宽低D加猛了容易造成电调跟不上控制指令飞行中表现为某一轴突然“咯噔”一下。换数字电调或者提高PWM更新率以后D项可以适当放宽但前提依旧是振动基线可控。2.3 外环姿态参数别靠加P解决一切问题外环姿态参数MC_ROLL_P、MC_PITCH_P、MC_YAW_P对应期望姿态角到期望角速度的换算。很多人一遇到“慢半拍”的问题就加姿态P其实问题可能在内环。姿态环P的合理区间我常保持在5到8之间过大的姿态P会让飞机在航线中不停修正看起来是抖实际是前后环打架。我常用的一个判定方法是在GPS位置模式下手动往一个方向推杆然后松杆观察机身恢复水平的动作。如果恢复过程中能明显看到机身“越过水平再拉回来”的振荡那多半是姿态P偏大或者内环D偏小。先把姿态P降回临界点附近再决定要不要通过增加角速率D来提升阻尼这比盲目加大P要稳得多。下面是我常用的姿态环参数速查表。注意这只是典型调参范围不同固件版本的默认值有差异看官方文档永远比硬背数字靠谱。参数名作用我常用的调参范围MC_ROLL_P横滚姿态P5.0 ~ 8.0MC_PITCH_P俯仰姿态P5.0 ~ 8.0MC_YAW_P偏航姿态P5.0 ~ 9.0MC_ROLLRATE_P横滚角速率P0.1 ~ 0.3MC_ROLLRATE_I横滚角速率I0.05 ~ 0.2MC_ROLLRATE_D横滚角速率D0.002 ~ 0.01MC_PITCHRATE_P俯仰角速率P0.1 ~ 0.3MC_PITCHRATE_I俯仰角速率I0.05 ~ 0.2MC_PITCHRATE_D俯仰角速率D0.002 ~ 0.01MC_YAWRATE_P偏航角速率P0.2 ~ 0.5关于这些参数的调整顺序我会在第6章重点强调。现在只需记住内环优先级高于外环。先内环调到“打杆果断不摆动”再动外环不然问题很难定位。3. 位置与速度控制参数决定航线好不好看3.1 水平XY通道的逻辑位置环参数主要集中在MPC_XY开头的参数里。MPC_XY_P是水平位置控制器P增益它决定飞机离目标水平位置的修正强度。MPC_XY_VEL_P是水平速度控制器的P增益它决定飞机追踪设定速度的力度。这两个参数一个管“你在哪里”一个管“你走多快”加在一起才构成完整的水平通道。调这两项时最常见的误诊是把“位置超调”归罪于MPC_XY_P过大。实际上很多项目里水平位置超调是速度环阻尼不够导致的。你看日志里的位置误差和速度误差就能发现位置误差已经归零但速度还在冲这时候修的是速度环不是位置环。3.2 限幅参数性价比最高的调参项MPC_XY_CRUISE决定巡航速度MPC_XY_VEL_MAX决定最大水平速度MPC_XY_ACC_MAX决定最大水平加速度MPC_JERK_MAX决定最大加加速度。这四个限幅参数是我个人在飞行品质调优里最优先看的。为什么因为它们直接定义了飞机“多激进”。在实际项目中我通常把巡航速度设在5到8米每秒限幅速度比巡航高10%到20%。加加速度如果太小航线转弯时会感觉拖泥带水太大又会让人明显感觉到生硬的甩尾。这个没有标准答案跟机架的尺寸、任务类型都有关。大载重机肯定要缓一点敏捷型小机则可以给得更大一些。3.3 垂直Z通道与悬停油门MPC_Z_P、MPC_Z_VEL_P和MPC_Z_VEL_I一起决定高度保持的好坏。MPC_THR_HOVER是悬停油门它的意义远不止一个校准值它让飞控知道维持悬停大概需要多少输出在小幅度高度偏差时能立刻给出补偿而不是等高差大到再去启动积分器。悬停油门怎么测最稳的方式是在无风、光线稳定的环境下手动悬停看日志里的实际输出均值。很多工程师用默认0.5也能飞但低电量时尤其是电池压降明显的机型用固定默认值容易出现“低电掉高”的情况。我建议每次换电池或改负载后重新看一眼悬停油门均值并更新这个参数。位置环参数汇总如下参数名作用常用参考MPC_XY_P水平位置P1.0 ~ 1.5MPC_XY_VEL_P水平速度P1.5 ~ 2.5MPC_XY_VEL_I水平速度I0.02 ~ 0.1MPC_XY_VEL_D水平速度D0.01 ~ 0.05MPC_XY_CRUISE巡航速度4.0 ~ 8.0 m/sMPC_XY_VEL_MAX最大水平速度6.0 ~ 10.0 m/sMPC_XY_ACC_MAX最大水平加速度4.0 ~ 8.0 m/s²MPC_JERK_MAX最大加加速度4.0 ~ 8.0 m/s³MPC_Z_P高度位置P2.0 ~ 4.0MPC_Z_VEL_P垂直速度P3.0 ~ 6.0MPC_Z_VEL_I垂直速度I0.5 ~ 2.0MPC_Z_VEL_MAX_UP最大上升速度2.0 ~ 4.0 m/sMPC_Z_VEL_MAX_DN最大下降速度1.0 ~ 2.0 m/sMPC_THR_HOVER悬停油门0.2 ~ 0.6MPC_LAND_SPEED降落速度0.5 ~ 0.8 m/s试飞时如果发现高度保持“一上一下”地喘先别急着动PID把MPC_THR_HOVER调准往往效果立竿见影。4. 安全与失效保护参数把炸机概率摁下去4.1 返航参数要配合起来读遥控失联、电量过低、卫星信号丢失这些情况都可能触发返航或者落地。PX4里返航高度相关参数很容易让人误解很多工程师只改RTL_ALT结果返航路径因为撞障碍物仍然出事。RTL_ALT决定返航时的巡航高度RTL_RETURN_ALT决定飞行器多高时就地返航RTL_DESCENT_ALT决定回到返航点上空后的下降目标高度NAV_RCL_ALT则是遥控信号丢失后的目标高度。这几个参数必须搭配使用。我见过一个案例只把RTL_ALT设成80米但RTL_DESCENT_ALT还留在20米以下结果飞机返航到家附近后直接下沉到树顶高度才开始水平移动差点撞上障碍物。返航高度不是越高越好也不是越低越好要按实际作业区域里的障碍物最高点来取。4.2 电池三级保护不能拍脑袋BAT_LOW_THR、BAT_CRIT_THR、BAT_EMERGENCY_THR三个阈值定义了三级保护低电量提示、临界电量、紧急迫降。很多飞手的误区是把LOW设得过高导致飞行器频繁进入返航或者把CRIT设得过低等飞控检测到了电压已经撑不到降落。我建议按电池类型实测放电曲线。做法是在悬停状态下持续输出记录从满电到空电的电压跌落轨迹用实际数据反推阈值。一般低电量阈值放在剩余30%到40%临界电量放在15%到25%紧急电量放在5%到10%。不同电池内阻差异很大尤其是老化和低温环境内阻升高会让电压在最后一分钟断崖式下跌阈值就得更保守。4.3 失效保护动作参数COM_FAIL_ACT是重要参数它定义了姿态估计错误等严重故障时的动作。调试期间我强烈建议你把它的动作设为“仅提示”或者“原地降落”并确保不会在无卫星环境里自动进入依赖定位的返航。因为没有定位源时往返航点飞等于让飞控闭着眼找路风险反而更大。安全类参数汇总如下参数名作用常用参考MIS_TAKEOFF_ALT自动起飞目标高度1.0 ~ 3.0 mRTL_ALT返航巡航高度30 ~ 60 mRTL_RETURN_ALT返航阶段最低保持高度必须低于RTL_ALTRTL_DESCENT_ALT到返航点后的下降目标高度10 ~ 20 mNAV_RCL_ALTRC失联后的目标高度30 ~ 50 mCOM_FAIL_ACT严重故障保护动作按任务场景选择COM_DISARM_LAND落地后自动解锁延迟默认即可不建议设0BAT_LOW_THR低电量阈值0.3 ~ 0.4BAT_CRIT_THR临界电量阈值0.15 ~ 0.25BAT_EMERGENCY_THR紧急电量阈值0.05 ~ 0.15. 传感器、导航与系统配置参数5.1 EKF2参数和传感器融合EKF2_EN决定扩展卡尔曼滤波器是否启用主状态估计。别看它好像是个开关实际上它决定你用IMU、GPS、气压计、磁力计还是视觉的融合逻辑。EKF2_HGT_MODE是高度源选择EKF2_AID_MASK是传感器辅助源掩码。这些参数在装配了GPS、视觉或外部传感器的机身上一定要核对默认值适合通用场景但不一定适合你的专用载荷。我遇到过一架飞机外部视觉定位已经装好了但没检查EKF2_AID_MASK导致滤波器一直没用视觉辅助位置漂移特别大。打开融合开关以后定位精度立刻好了几个量级。这类参数平时不起眼一旦出问题特别隐蔽日志不会直接告诉你“视觉没开”。5.2 磁力计与GPS声明参数SYS_HAS_MAG和SYS_HAS_GPS是系统级的传感器声明。这两个参数初学者容易忽略它的意义在于告诉飞控“这个世界里有没有这个传感器”一旦与实际不符飞控可能花很长时间尝试融合一个根本不存在的传感器导致起飞前一直显示未就绪。另外如果有多个磁力计SENS_MAG_MODE决定怎么融合或投票外部安装偏差大的传感器要单独校准。5.3 采样率、日志和机架配置IMU_GYRO_RATEMAX和IMU_ACC_RATEMAX影响IMU数据进入控制器的频率。如果你换了高更新率的电调或飞控适当提高这些参数能让整个控制带宽更好但代价是CPU占用增加。SDLOG_MODE控制日志记录行为。调试期间建议开启日志并保留完整采样否则出了问题没有数据只能盲猜。SYS_AUTOSTART定义机架类型和应用编队。很多工程师在试飞前一分钟才开始找机架参数其实这应该是装机后第一件事。机架类型错了混控输出通道顺序和正负方向都会出问题这种错误经常导致通电瞬间电机猛转。5.4 遥控器通道映射COM_RC_IN_MODE决定遥控信号的接收模式和丢失判断RC_MAP_ROLL、RC_MAP_PITCH、RC_MAP_YAW、RC_MAP_THROTTLE定义遥控器摇杆通道映射。通道映射反了飞控在解锁前可能就警告甚至解锁后炸机我见过不止一次。尤其是换了新遥控器或者接收机以后一定要在地面站里推一遍摇杆确认输入方向与姿态响应对应。传感器与系统配置参数汇总如下参数名作用常用参考EKF2_ENEKF2主状态估计开关默认开启EKF2_HGT_MODE高度源选择视配置而定EKF2_AID_MASK传感器融合辅助源掩码默认即可专机调整SYS_HAS_MAG机身是否配有磁力计按实装配SYS_HAS_GPS机身是否配置GPS按实装配SENS_MAG_MODE多个磁力计的融合模式视传感器布局而定IMU_GYRO_RATEMAX陀螺仪数据最大速率与电调更新率匹配IMU_ACC_RATEMAX加速度计数据最大速率与电调更新率匹配SDLOG_MODESD卡日志记录模式调参期间建议开启SYS_AUTOSTART机架与应用配置装机先设COM_RC_IN_MODE遥控接收模式按遥控协议RC_MAP_ROLL滚转摇杆通道按遥控器RC_MAP_PITCH俯仰摇杆通道按遥控器RC_MAP_YAW偏航摇杆通道按遥控器RC_MAP_THROTTLE油门摇杆通道按遥控器这15个参数虽然不如控制参数那么“过瘾”但排障时几乎必查。6. 调参顺序与常见问题速查6.1 推荐的调参顺序先说结论传感器校准机架与通道配置悬停油门内环角速率外环姿态位置速度安全保护。不要反过来。很多人上来就调位置速度忽略了内环导致数据看起来位置误差正常但机身一直在小抖最后把所有责任推给PID。具体路径上第一步把传感器校准做了第二步确认SYS_AUTOSTART和遥控映射第三步拆掉桨叶或者在小场地试悬停记录MPC_THR_HOVER第四步在悬停状态下小幅增加或减小角速率增益观察响应直到打杆后振荡能在一两秒内收敛第五步再进入GPS模式下测试航线最后设置返航高度和电量保护。6.2 常见问题速查表调参现场最常遇到的情况我整理成一个简表现象可能原因排查建议悬停中高频抖动角速率D过大、陀螺仪振动降低D、检查减震与桨平衡打杆后机身来回晃动角速率P过大、内外环带宽不匹配降低P或先升角速率环P高度一上一下喘气MPC_THR_HOVER不准重新测量悬停油门航线转弯拖沓MPC_JERK_MAX或加速度限幅过低按任务适当放宽限幅低电压后突然下沉电池保护阈值设置过高实测放电曲线调整BAT_*阈值航向缓慢漂移磁力计校准不佳或受干扰重做罗盘校准检查安装位置无法进入返航RTL_*高度配置不当或RTK未锁定查看日志确认状态机6.3 一轮实测下来的体会参数调优这事没有银弹。同一套参数在同一个机架上换一套桨或换一块电池表现可能完全不一样。我个人的习惯是每一次改动都记在表格里试飞后截图日志否则三五个版本下来你根本不知道现在飞的是谁的参数。另外一个很少人提的小技巧先把D全部设为0把P调到边界再退回一点然后再一点点加D消除过冲。这样能快速找到一个相对稳定且可重复的起点比自己东一榔头西一棒子快得多。从悬停到航线从空载到满载建议每次只改一个变量这也是我最想分享给飞控工程师的经验。
阅读完成 · 觉得有帮助?
咨询建站