执行器是无人机飞行控制系统的最终输出环节负责将飞控算法产生的控制指令转化为真实的物理动作。混控系统则是连接控制器与执行器的桥梁它将滚转、俯仰、偏航和油门的控制量分配到各个执行器上。本章将深入讲解ESC协议、混控矩阵数学原理、多种构型配置以及执行器标定方法。9.1 电调ESC协议PWM/DShot/OneShot电子调速器Electronic Speed ControllerESC是无刷电机的驱动核心。它接收飞控发出的控制信号将其转换为三相交流电流驱动电机旋转。ESC的性能和协议直接影响飞行器的响应速度、控制精度和可靠性。9.1.1 ESC基本概念与作用无刷直流电机BLDC是多旋翼无人机最常用的动力源。与有刷电机不同BLDC电机没有机械换向器需要电子换向来驱动三相绕组。ESC的核心功能包括• 三相换向按特定顺序为电机三相绕组提供交流电流产生旋转磁场• 转速控制根据输入信号调节电机转速通常通过PWM占空比或数字协议指令• 反电动势保护电机旋转时产生反向电动势ESC必须处理这些电压尖峰• 电流保护监测电机电流防止过流损坏电机或ESC本身• 制动功能部分ESC支持主动制动快速降低电机转速ESC的核心组件包括微控制器MCU、三相MOSFET桥、栅极驱动器和电流采样电阻。市场上常见的ESC芯片方案包括BLHeli_32、AM32和BLHeli_S等。BLHeli_32采用32位ARM处理器支持DShot、串口通信和可变死区时间是目前最主流的方案。AM32是开源固件支持多种硬件平台社区活跃。BLHeli_S是8位MCU上的经典固件支持OneShot和PWM但不支持DShot。SimonK是早期广泛使用的8位固件已逐渐淘汰。9.1.2 PWM协议详解PWM脉宽调制是最传统的ESC控制协议。它通过脉冲信号的高电平持续时间来传递油门值。标准航模PWM信号范围为1000μs到2000μs其中1000μs对应最低转速2000μs对应最高转速。信号参数• 脉冲宽度范围1000μs - 2000μs• 信号周期通常为20ms50Hz部分ESC支持更高频率• 电平标准3.3V或5V逻辑电平• 分辨率约1000个离散步进值1μs精度PWM协议的最大优点是兼容性好几乎所有ESC都支持。但它存在明显局限性更新速度慢50Hz时每20ms才更新一次精度受限于定时器精度和信号噪声无双向通信能力且无校验机制。表9-1 PWM输出配置参数参数名称默认值范围说明PWM_MAIN_MIN11000μs800-1400主输出通道1最小脉宽PWM_MAIN_MAX12000μs1600-2200主输出通道1最大脉宽PWM_MAIN_DIS11000μs800-2200解除武装输出值PWM_MAIN_FAIL11000μs0-2200失败安全输出值PWM_MAIN_RATE50Hz50-400主输出PWM频率PWM_AUX_MIN11000μs800-1400辅助输出通道1最小脉宽PWM_AUX_MAX12000μs1600-2200辅助输出通道1最大脉宽9.1.3 OneShot协议OneShot是PWM的高速替代方案通过缩短脉冲宽度范围来提高更新频率。OneShot125的脉冲范围为125μs-250μs缩短了8倍允许更新频率可达2kHz以上。OneShot42的脉冲范围为42μs-83μs缩短24倍更新频率可达4kHz以上。OneShot协议的优势在于使用与PWM相同的硬件接口标准GPIO定时器仅需软件配置即可切换。但它仍然是模拟信号没有校验机制在电磁干扰环境下可能出现信号偏移。在实际应用中OneShot125是最常用的版本而OneShot42由于对定时精度要求更高使用较少。9.1.4 DShot协议DShotDigital Shot是一种全数字化的ESC协议通过编码方式而非脉冲宽度来传递信息。每个数据帧包含16位数据11位油门值0-2047范围、1位特殊命令标志和4位CRC校验和。油门值0为停转1-47为特殊命令如转向、警报48-2047为有效油门范围。表9-2 DShot协议版本对比版本比特率帧时长最高更新率应用场景DShot150150kbit/s106.7μs4kHz低速兼容模式较长线缆DShot300300kbit/s53.3μs8kHz标准应用平衡速度与可靠性DShot600600kbit/s26.7μs16kHz高性能应用竞速机DShot12001.2Mbit/s13.3μs32kHz极速响应需硬件支持DShot的主要优势包括数字信号不受电压波动和电磁干扰影响CRC校验可检测和丢弃错误帧无需ESC行程标定通过BDShot可以读取ESC转速数据用于RPM滤波和转速闭环控制。9.1.5 协议对比与选型表9-3 ESC协议综合对比特性PWMOneShot125DShot300DShot600信号类型模拟脉宽模拟脉宽数字编码数字编码更新频率50-400Hz≤2kHz≤8kHz≤16kHz分辨率~1000步~1000步2000步2000步CRC校验无无有有双向通信无无BDShotBDShot标定需求需要需要不需要不需要抗干扰低低高高硬件兼容性所有ESCBLHeli_SBLHeli_32BLHeli_32提示对于大多数PX4应用场景推荐使用DShot300或DShot600。如果ESC不支持DShotOneShot125是最佳备选。仅在兼容性要求下才使用标准PWM。在PX4中配置SC协议的方法# 通过NSH配置ESC协议类型nsh param set PWM_MAIN_TIM0 100 # 设置主输出组0的协议# 可用值0PWM, 1OneShot125, 2OneShot42# 3DShot150, 4DShot300, 5DShot600, 6DShot1200nsh param set PWM_AUX_TIM0 4 # 辅助输出组0使用DShot3009.2 电机混控矩阵与力矩分配混控Mixing是将飞行控制器产生的抽象控制量滚转力矩、俯仰力矩、偏航力矩和总升力转换为各个执行器具体输出值的过程。混控矩阵是这个转换的数学核心。9.2.1 混控的基本原理飞行控制器的输出是四个抽象控制量滚转力矩Roll控制纵轴旋转俯仰力矩Pitch控制横轴旋转偏航力矩Yaw控制竖轴旋转总升力Thrust控制总体升力大小。混控关系可表示为矩阵形式[output] [Mixer_Matrix] × [control_input]。其中control_input是4×1向量[Roll, Pitch, Yaw, Thrust]^TMixer_Matrix是N×4混控矩阵output是N×1执行器输出向量。每一行对应一个执行器每一列对应一个控制轴的贡献系数。9.2.2 四旋翼混控矩阵X型四旋翼的电机布局为电机1前右顺时针CW、电机2后左CW、电机3前左逆时针CCW、电机4后右CCW。对角电机旋向相同相邻电机旋向相反确保偏航力矩平衡。表9-4 X型四旋翼混控矩阵电机RollPitchYawThrust电机1前右CW-1111电机2后左CW1-111电机3前左CCW11-11电机4后右CCW-1-1-11该矩阵的物理含义Roll控制通过左侧电机加速、右侧减速实现向右滚转Pitch控制通过后侧加速、前侧减速实现前俯Yaw控制利用CW和CCW电机的反扭矩差异Thrust控制则所有电机同时增减。9.2.3 六旋翼/八旋翼混控矩阵六旋翼和八旋翼拥有更多执行器混控矩阵是超定的行数多于列数。六旋翼冗余度为2八旋翼冗余度为4允许单电机失效后仍可控制。力矩分配更均匀单个电机负担更小。当某个电机失效时PX4的混控器自动重新计算混控矩阵将失效电机的贡献分配到其余电机上。这是多旋翼无人机实现单电机失效安全降落的关键机制。9.2.4 PX4 control_allocator模块PX4使用control_allocator模块作为统一控制分配器替代了早期版本中分散的混控逻辑。其优势包括统一接口、动态重分配、约束处理和可配置性。工作流程如下• 1. 接收控制输入从姿态控制器获取所需力矩和升力• 2. 矩阵乘法使用混控矩阵计算初始执行器输出• 3. 约束检查检查输出是否超过执行器物理限制0-1范围• 4. 饱和处理如果某些输出饱和使用优化算法重新分配• 5. 发布输出通过actuator_outputs主题发布最终执行器命令control_allocator的核心C语言接口如下// control_allocator 核心数据结构与力矩分配struct ControlAllocatorParams {matrix::Matrixfloat, NUM_ACTUATORS, 4 mixing_matrix;float actuator_min[NUM_ACTUATORS];float actuator_max[NUM_ACTUATORS];float slew_rate_limit[NUM_ACTUATORS];};bool allocate_control(const matrix::Vector4f desired,const ControlAllocatorParams params,matrix::Vectorfloat, NUM_ACTUATORS output) {output params.mixing_matrix * desired; // 矩阵乘法bool saturated false;for (int i 0; i NUM_ACTUATORS; i) {if (output(i) params.actuator_min[i]) {output(i) params.actuator_min[i]; saturated true;}if (output(i) params.actuator_max[i]) {output(i) params.actuator_max[i]; saturated true;}}if (saturated) { optimize_redistribution(desired, params, output); }return true;}9.2.5 力矩分配的数学原理**伪逆法Pseudo-Inverse**使用Moore-Penrose伪逆计算最小二乘解使得执行器输出的总能量最小。计算简单但不考虑约束条件。**直接分配法**当所有输出均在约束范围内时使用标准混控矩阵当某个输出超出约束时按比例缩放。**重分配法**将饱和执行器的剩余控制量转移到未饱和的执行器上。这是PX4 control_allocator采用的主要策略。PX4中混控矩阵的参数配置示例# PX4 混控矩阵参数 (X型四旋翼)nsh param set CA_ROTOR0_PX 0.15 # 前右CW, X位置(m)nsh param set CA_ROTOR0_PY 0.15 # Y位置(m)nsh param set CA_ROTOR0_KM -0.05 # 偏航力矩系数nsh param set CA_ROTOR1_PX -0.15 # 后左CWnsh param set CA_ROTOR1_PY -0.15nsh param set CA_ROTOR2_PX 0.15 # 前左CCWnsh param set CA_ROTOR2_PY -0.15nsh param set CA_ROTOR2_KM 0.05nsh param set CA_ROTOR3_PX -0.15 # 后右CCWnsh param set CA_ROTOR3_PY 0.15nsh param set CA_ROTOR3_KM 0.05提示PX4推荐使用CA_ROTOR参数来配置混控矩阵而不是早期的.mix混控文件。新的参数化配置支持QGroundControl图形化配置。9.3 多旋翼/固定翼/VTOL构型配置PX4支持多种无人机构型每种构型有其独特的混控逻辑和参数配置。本节介绍三种主要构型的配置方法。9.3.1 多旋翼构型多旋翼是PX4支持最广泛的构型包括三旋翼、四旋翼、六旋翼、八旋翼等。所有电机都用于升力产生和姿态控制没有单独的升力或控制面。表9-5 多旋翼构型对比构型电机数冗余度单电机失效容错典型应用三旋翼30不可控小型航拍四旋翼40部分可控消费级无人机六旋翼62可控专业航拍/测绘八旋翼84完全可控重型负载/农业多旋翼的关键配置参数包括SYS_AUTOSTART选择机型编号、SYS_CTRL_ALLOC启用控制分配器、CA_AIRFRAME构型类型、CA_ROTOR_COUNT电机总数以及MPC_*系列控制器参数。配置流程为设置机型编号→配置电机布局→配置ESC协议→检查电机方向→调整PID。9.3.2 固定翼构型固定翼无人机使用翼型产生升力通过副翼、升降舵、方向舵控制姿态。固定翼的混控逻辑与多旋翼有本质区别舵面通常只控制一个轴的运动。表9-6 固定翼混控矩阵示例执行器RollPitchYawThrust左副翼1000右副翼-1000升降舵0100方向舵0010油门0001固定翼的关键参数包括FW_*系列控制器参数、FW_AIRSPD_TRIM修平飞行空速最重要的参数之一、FW_THR_TRIM油门修平值以及FW_P_LIM_MIN/MAX俯仰角限制。9.3.3 VTOL构型VTOL垂直起降固定翼结合多旋翼和固定翼优势可垂直起降并高效巡航。PX4支持三种VTOL构型倾转旋翼型Tiltrotor电机可倾转、倾转翼型Tailsitter整体切换姿态和标准VTOLStandard VTOL独立升力和推进电机。VTOL的飞行阶段分为MC模式垂直起飞和悬停、过渡阶段Transition模式切换和FW模式前飞巡航。混控配置需同时定义多旋翼和固定翼两套混控矩阵。# VTOL构型配置示例 (Standard VTOL)# 升力电机 0-3 用于垂直起降nsh param set CA_ROTOR0_PX 0.2nsh param set CA_ROTOR0_PY 0.2nsh param set CA_ROTOR0_TYPE 0 # 0升力电机# 前推电机 4 用于前飞nsh param set CA_ROTOR4_PX 0.0nsh param set CA_ROTOR4_TYPE 1 # 1前推电机# 舵面配置nsh param set CA_SV_CS0_TYPE 1 # 左副翼nsh param set CA_SV_CS1_TYPE 1 # 右副翼注意VTOL过渡阶段是最危险的飞行环节。必须确保过渡空速参数VT_ARSP_TRANS设置正确。9.3.4 构型参数配置总结表9-7 不同构型关键参数对比参数类别多旋翼固定翼VTOLSYS_AUTOSTART4001-49992000-299913000-13999控制器前缀MC_*FW_*MC_* FW_*混控方式CA_ROTOR*CA_SV_CS*CA_ROTOR*两套混控特殊参数MPC_*FW_AIRSPD_*VT_*过渡控制无无VT_ARSP_*典型应用航拍/巡检长航时巡航复合任务9.4 执行器输出测试与标定执行器的测试和标定是飞行前的关键步骤。正确的标定确保控制器输出被正确映射到执行器的实际动作上避免飞行事故。9.4.1 输出测试方法PX4提供多种执行器测试方法。QGroundControl的Vehicles Actuators页面提供图形化测试界面可选择通道并使用滑块设置输出值。NSH命令行提供更精细的控制# NSH命令行测试电机输出 (确保安全!)nsh actuator_test -m 1 -p 0.3 # 电机1输出30%nsh actuator_test -m 2 -p 0.3 # 电机2输出30%nsh actuator_test -a -p 0.15 # 所有电机15%nsh actuator_test -a -p 0.0 # 停止测试# 监听输出状态nsh listener actuator_outputs通过监听actuator_outputs主题可实时观察执行器输出值输出范围为-1.0到1.0归一化值PWM模式对应1000-2000μsDShot模式对应48-2047。9.4.2 ESC标定ESC标定让ESC学习输入信号的范围。对于PWM和OneShot协议是必要的DShot使用数字信号不需要标定。标定流程拆下螺旋桨→断开信号线→设置最大油门→接通ESC电源→设置最小油门→断电完成。# 设置ESC标定参数nsh param set PWM_MAIN_MIN1 1000 # 最小脉宽nsh param set PWM_MAIN_MAX1 2000 # 最大脉宽nsh param set PWM_MAIN_MIN2 1000nsh param set PWM_MAIN_MAX2 2000nsh param save9.4.3 舵机标定固定翼和VTOL的舵机标定包括确定中位Trim、最大偏转角度和偏转方向。标定流程确定舵面中位→调整最大偏转→检查偏转方向→设置反转如需要。表9-8 舵机标定参数参数说明典型值PWM_MAIN_TRIM1通道1中位脉宽1500μsPWM_MAIN_MIN1最小脉宽最大反向偏转1000μsPWM_MAIN_MAX1最大脉宽最大正向偏转2000μsPWM_MAIN_REV1反转标志0(正常)/1(反转)PWM_MAIN_DIS1解除武装输出值1500μs9.4.4 故障排查表9-9 执行器常见故障与排查故障现象可能原因排查方法电机不转无信号/无电源/ESC损坏检查连线、电源、万用表电机抖动时序错误/磁极不匹配检查三相线序、重新标定转速不稳信号干扰/PID参数检查信号线屏蔽、调PID舵机报错卡死/过载/连线检查机械连接、更换舵机单电机过热负载不均/桨叶问题检查桨叶平衡、混控矩阵偏航漂移反扭系数错误校准KM参数、检查方向输出异常混控配置错误检查CA_ROTOR*参数执行器故障诊断的C语言示例// 执行器输出监控与故障检测void actuator_health_check(void) {struct actuator_outputs_s outputs;int sub orb_subscribe(ORB_ID(actuator_outputs));if (orb_copy(ORB_ID(actuator_outputs), sub, outputs) PX4_OK) {for (int i 0; i outputs.noutputs; i) {float cmd outputs.output[i];if (cmd -1.01f || cmd 1.01f) {PX4_ERR(“Actuator %d out of range: %.3f”, i, (double)cmd);}// 检测卡死static float last_cmd[16] {0};static int stuck_count[16] {0};if (fabsf(cmd - last_cmd[i]) 0.001f) {stuck_count[i];if (stuck_count[i] 1000) {PX4_WARN(“Actuator %d stuck at %.3f”, i, (double)cmd);}} else { stuck_count[i] 0; }last_cmd[i] cmd;}}orb_unsubscribe(sub);}安全提示执行器测试时必须拆除螺旋桨确保电源可随时断开保持安全距离。高速旋转的螺旋桨可能造成严重伤害。9.4.5 执行器状态监控与数据记录在飞行过程中监控执行器状态对故障诊断和性能优化非常重要。PX4日志系统记录所有执行器输出数据可通过Flight Review工具回放分析。关键监控指标包括各电机输出均衡性、长期极限输出情况、响应延迟和ESC温度等。通过分析飞行日志中的执行器数据可以发现多种问题。例如如果某个电机长期输出明显高于其他电机可能表明重心偏移或桨叶不平衡。如果所有电机频繁地达到最大输出可能表明飞行器超载或电池电压不足。在QGroundControl中可以通过MAVLink Inspector实时查看执行器输出。在NSH中使用listener actuator_outputs命令可查看当前输出值。建议在每次飞行前检查执行器响应是否正常。9.5 本章小结本章深入介绍了PX4执行器与混控系统的各个方面。我们首先学习了ESC协议包括PWM、OneShot和DShot三种主要协议的工作原理和对比。DShot作为数字协议具有CRC校验、无需标定和双向通信等优势是目前的推荐选择。然后我们讨论了混控矩阵的数学原理包括四旋翼、六旋翼和八旋翼的混控矩阵设计。PX4的control_allocator模块提供了统一的控制分配框架支持动态重分配和故障容错。接着我们介绍了多旋翼、固定翼和VTOL三种构型的配置方法以及SYS_AUTOSTART参数、CA_ROTOR*参数等关键配置项。最后我们讲解了执行器测试、ESC标定、舵机标定和故障排查的实用方法。这些知识是安全飞行的重要保障。
