ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

无人机PID调参实战:从角速度环到位置环的完整指南

无人机PID调参实战:从角速度环到位置环的完整指南 1. 姿态控制里PID到底在调什么很多人拿到飞控第一件事就是翻参数表看到一长串PID就头大。我刚开始玩Pixhawk那会儿也一样以为PID是三个独立的旋钮调不好就来回拧结果飞机要么软绵绵像喝醉了要么抖得像得了帕金森。后来才明白姿态控制里的PID不是三个孤立参数而是一整套互相拉扯的反馈系统。1.1 从摇杆到电机一条完整的控制链路你推一下遥控器的横滚摇杆这个动作在飞控内部要经过这么一条链路遥控接收机把PWM信号传给飞控飞控把它翻译成期望的角速度然后和IMU测到的实际角速度做差这个差值就是误差。PID控制器拿到这个误差经过比例、积分、微分三项运算输出一个修正量再分配给四个电机让它们差速旋转最终产生力矩把机身转过去。这条链路里P是主力负责根据当前误差大小立刻给出修正力度I是补刀负责消除长期存在的稳态误差比如飞机总是往一边偏D是刹车负责预判误差变化趋势提前给反向修正防止过冲和震荡。三者配合不好轻则飞行手感差重则直接翻车。1.2 为什么姿态环和角速度环要分开调APM和PX4都采用串级PID结构外环是角度环内环是角速度环。很多新手不知道这个结构直接去调最外层的角度PID结果怎么调都不对。正确的做法是先调内环角速度PID再调外环角度PID。原因很简单内环是基础它决定了飞机对力矩的响应速度。如果内环都没调好外环给出的期望角速度根本没法被准确跟踪就像你让一个反应迟钝的人去接快速飞来的球他接不住你再怎么调整你的指令频率也没用。内环调好了外环只需要一个简单的P控制器就能有不错的效果。1.3 不同机架对PID的敏感度差异我飞过250mm的小穿越机也飞过680mm的六轴挂微单还试过900mm的植保机。同样的PID参数在小机上可能稳如磐石到大机上就直接震荡炸机。这里面的核心变量是转动惯量和电机响应速度。小机架转动惯量小电机稍微给点力就能快速改变姿态所以P可以给大一点D要小一点否则容易高频抖动。大机架转动惯量大电机需要更长时间才能把机身转起来P要给小D可以适当大一点来抑制过冲I也要相应减小否则积分累积太猛会导致低频摆动。这个规律不是绝对的但方向不会错。2. 调参前的硬件与固件准备我见过太多人PID调了半天没效果最后发现是机架螺丝松了或者桨叶平衡没做。调参之前硬件和固件的基础工作必须做扎实否则你调的不是PID是在跟机械振动和传感器噪声作斗争。2.1 机架与动力系统的机械检查清单在通电之前拿手把机臂挨个掰一掰看有没有松动。电机座螺丝要打螺纹胶我吃过亏飞着飞着电机座松了飞机直接空中解体。桨叶要做动平衡特别是大桨不平衡的桨叶会产生周期性振动这个振动频率如果和PID的D项作用频段重叠你会看到电机温度异常升高。电调校准也要做APM和PX4都有电调校准流程。校准不到位会导致四个电机响应不一致你调PID的时候会感觉某个轴特别难调其实就是动力不对称。电池要满电低电压下电机响应会变软PID表现和满电时完全不同。2.2 固件版本选择与参数重置APM固件现在主流是ArduCopter 4.x系列PX4则是1.13或1.14。我建议不要追最新版用社区反馈稳定的版本。比如PX4 1.14.3是我目前飞得最稳的版本1.15刚出来的时候我刷过姿态控制有改动老参数直接套用会出问题。刷完固件第一件事是恢复默认参数。很多人从别人那里拷了一份参数表就直接用结果飞机行为诡异。不同固件版本的默认值不同机架类型不同默认值也不同。正确的做法是刷固件、选机架类型、恢复默认、再做传感器校准然后才开始调PID。2.3 传感器校准中容易被忽略的细节加速度计校准要在水平面上做这个大家都知道。但磁罗盘校准很多人做得不规范。校准时要远离钢筋、手机、磁铁最好到室外空旷处做。我有个朋友在车库校准罗盘起飞后飞机一直往一个方向偏查了半天是罗盘被车库的钢结构干扰了。另外PX4的陀螺仪温度校准也值得做。特别是冬天室外飞行IMU温度变化会导致零偏漂移姿态会慢慢跑偏。做了温度校准后这个漂移会小很多。APM这边虽然没有专门的温度校准流程但可以在上电后等IMU温度稳定了再解锁起飞一般等个两三分钟。3. 角速度环PID的实战整定方法角速度环是姿态控制的内核它直接决定飞机对力矩指令的跟踪能力。这个环调好了飞机就像被一根无形的杆子撑着松杆就停推杆就走非常跟手。3.1 从默认参数出发的第一次试飞不要一上来就大改参数。先恢复默认在无风或微风的天气试飞。起飞后切到Stabilize模式轻轻推杆感受飞机的响应。如果飞机反应迟钝松杆后还在慢慢转说明P太小。如果飞机快速抖动特别是电机声音发尖说明P太大或者D太小。我第一次调一架450mm的四轴默认参数下飞机软得像面条推杆后要等半秒才有反应。我把角速度P从默认的0.135提到0.18立刻跟手了很多。但提到0.22的时候开始出现高频抖动最后定在0.19兼顾响应和稳定。3.2 P项响应速度与震荡的平衡点P项是角速度环的主力。它的作用是把当前角速度误差按比例放大后输出。P越大飞机对误差的修正越猛响应越快。但P太大会导致系统在目标值附近来回震荡因为修正力度超过了实际需要的力度。调P的时候我习惯每次增加10%到15%飞一个起落感受一下。当出现轻微高频抖动时往回退两格。比如从0.18加到0.20出现抖动那就退到0.19。这个值就是临界P实际使用可以再降5%留点余量。注意P项调好后如果飞机在悬停时缓慢漂移那是I项的问题不要继续加P。3.3 I项消除稳态误差的慢功夫I项负责累积误差只要误差存在I项就会一直增大输出直到误差消除。在角速度环里I项主要用来克服电机死区和机械摩擦带来的稳态误差。调I的时候要耐心因为I的作用是慢慢体现的。我一般先把I设为默认值的一半飞起来看悬停时飞机是否慢慢往一个方向转。如果有每次增加0.01到0.02。I太大会导致低频摆动飞机像钟摆一样左右晃。I太小则稳态误差消除不了飞机总是往一边偏。有个技巧在APM里可以看日志的PIDR.I项如果悬停时I项输出一直在增大说明I不够如果I项输出在正负之间大幅摆动说明I太大。3.4 D项抑制过冲的阻尼器D项对误差的变化率做出反应误差变化越快D项输出越大方向与误差变化相反起到阻尼作用。D项调好了飞机在快速机动后能迅速稳定下来不会来回过冲。但D项对振动非常敏感。如果机架有振动D项会把振动放大导致电机发热甚至烧毁。所以调D之前一定要确保机械振动在可接受范围内。我一般用APM的RATE.R日志看振动水平如果振动峰值超过30m/s²先解决振动问题再调D。调D的时候从默认值开始每次增加20%。当飞机在快速推杆后出现高频抖动说明D太大了。D太小则飞机在机动后会有明显的过冲比如快速横滚后飞机要晃两下才停。3.5 角速度环调参的验收标准怎么判断角速度环调好了我自己的标准是在Stabilize模式下快速推杆到极限然后松杆飞机应该迅速停止转动没有明显的过冲和震荡。用手抓住飞机快速晃动电机应该能迅速做出反向修正手感是“紧”的不是“软”的。另外悬停时电机声音应该平稳没有周期性的忽高忽低。如果电机声音像在喘气说明PID在低频震荡需要检查I项和D项。4. 角度环与位置环的联动调整角速度环调好后角度环就简单多了。角度环的输出是期望角速度输入是期望角度和实际角度的差值。因为内环已经能准确跟踪角速度指令外环只需要一个P控制器就能有很好的效果。4.1 角度环P项的快速整定角度环的P项决定了飞机从当前角度回到期望角度的速度。P越大回中越快但太大会导致过冲飞机在回中时冲过头再回来。我调角度环P的时候先把角速度环的参数固定然后从默认值开始每次增加20%。在Stabilize模式下把飞机倾斜30度然后松杆看飞机回中的过程。理想情况是飞机快速回中在水平位置附近轻微过冲一次然后停住。如果来回晃好几次说明P太大如果回中太慢说明P太小。4.2 定高与定点模式下的PID差异定高模式用到了高度环PID定点模式用到了位置环PID。这两个环的参数和姿态环是独立的不要混在一起调。高度环的P项决定飞机对高度误差的修正力度I项消除悬停时的缓慢升降。我调高度环的时候先在定高模式下悬停看飞机是否稳定在一个高度。如果飞机像坐电梯一样上下缓慢浮动说明高度环P太小或者I太大。如果飞机快速上下震荡说明P太大。位置环的调参更复杂因为涉及到GPS和光流的速度估计。我一般先调速度环再调位置环。速度环的P项决定飞机对速度误差的修正力度位置环的P项决定飞机对位置误差的修正力度。这两个环调不好飞机在定点模式下会画圈或者漂移。4.3 前馈控制在姿态响应中的作用前馈控制是进阶话题但值得提一下。前馈的作用是在误差产生之前就给出修正量提高系统的响应速度。在姿态控制里前馈通常用在遥控杆量到期望角速度的映射上。PX4支持前馈参数APM这边也有类似的机制。我试过在PX4上给横滚和俯仰加前馈飞机对杆量的响应明显更快感觉像换了一架更灵敏的飞机。但前馈加太多会导致飞机对杆量过于敏感稍微碰一下杆飞机就大幅动作不适合新手。前馈的调整方法先不加前馈调好PID。然后慢慢增加前馈值每次增加5%直到飞机对杆量的响应让你满意。如果飞机开始出现自激震荡说明前馈太大了。5. 试飞验证与常见问题排查参数调好了最终要在实际飞行中验证。我习惯用几个标准动作来测试悬停、快速横滚、快速俯仰、急停。每个动作做三遍看飞机的一致性。5.1 悬停稳定性与电机温度的检查悬停是最基本的测试。飞机应该在微风中保持位置和高度没有明显的漂移和震荡。悬停一分钟后降落用手摸电机。电机应该是温热的不是烫手的。如果电机烫手说明PID在震荡电机在频繁正反转。我遇到过一架飞机悬停时看起来挺稳但电机温度很高。查日志发现角速度环的D项在振荡虽然幅度不大但频率很高电机一直在做高频修正。把D项降了20%后电机温度正常了。5.2 快速机动后的震荡问题定位快速横滚后飞机来回晃这是典型的D项不足或者P项过大。先检查D项适当增加。如果增加D项后震荡频率变高说明是P项太大了需要降P。还有一种情况是快速机动后飞机往一个方向偏这是I项在机动过程中累积了误差。可以适当降低I项或者开启I项限幅防止积分饱和。5.3 不同飞行模式下的参数适配Stabilize、AltHold、Loiter、Auto等模式对PID的要求不同。Stabilize模式最考验姿态环AltHold考验高度环Loiter考验位置环Auto考验航点跟踪。我一般先在Stabilize下调好姿态环然后在AltHold下调高度环最后在Loiter下调位置环。不同模式之间切换时如果飞机行为突变说明某个环的参数不匹配。比如从Stabilize切到Loiter飞机突然开始画圈那是位置环的问题不是姿态环的问题。5.4 日志分析用数据代替感觉调参不能只靠感觉要看日志。APM的日志可以用Mission Planner下载分析PX4的日志可以用Flight Review上传分析。我重点看几个量角速度跟踪曲线、PID各项输出、电机输出、振动水平。角速度跟踪曲线里期望值和实际值应该贴合得很好。如果实际值总是滞后于期望值说明P不够或者D不够。如果实际值在期望值附近高频震荡说明P太大或者D太大。PID各项输出里如果某项一直在极限值附近说明该项饱和了需要调整。振动水平用FFT分析看主要振动频率在哪里。如果振动频率和电机转速一致那是桨叶或电机的问题。如果振动频率是电机转速的整数倍那是机架共振。解决振动问题后再调PID事半功倍。6. 我踩过的那些坑调PID这些年炸过的机比飞过的起落还多。说几个典型的坑希望大家别重复我的错误。第一个坑在室内调PID。室内有地面效应和墙壁反射飞机行为和在室外完全不同。我在客厅调好的参数到室外飞直接翻车。后来学乖了再小的飞机也去室外调。第二个坑用自动调参后不验证。APM和PX4都有自动调参功能但自动调参的结果不一定适合你的飞行风格。我有次用自动调参后直接飞飞机稳是稳但响应太慢做动作像慢动作回放。后来在自动调参的基础上手动改了P和D才达到我想要的手感。第三个坑忽略电池电压对PID的影响。满电时调好的参数电池降到3.5V时飞机开始抖。因为电压降低后电机响应变慢同样的PID参数下修正力度不够。解决办法是开启电压补偿或者用高压电池。第四个坑不同桨叶混用。我有次炸机后换了不同品牌的桨参数没改飞机抖得厉害。不同桨叶的重量和平衡特性不同换桨后最好重新检查振动必要时微调PID。第五个坑迷信别人的参数。网上有人分享“完美参数”我直接拿来用结果飞机差点飞丢。每个人的机架、电机、桨叶、重量都不同参数只能参考不能照搬。调参这件事没有捷径只能自己一步步试。7. 给新手的三个实用建议如果你刚开始接触飞控调参我建议你按这个顺序来先把机械和传感器基础打好再调角速度环最后调角度环和位置环。不要跳步不要贪快。第一个建议每次只改一个参数。同时改多个参数你根本不知道是哪个参数起了作用。我习惯用表格记录每次改动的参数和飞行表现这样能快速定位问题。第二个建议在微风中调参。无风天气可遇不可求但大风天气绝对不要调参。我一般选清晨或傍晚风小的时候去飞。如果风速超过3m/s只做验证飞行不做参数调整。第三个建议保持耐心。调参是个慢活一架飞机调好可能需要十几个起落。我见过有人一个下午就想调好结果越调越乱。慢就是快每次飞行只解决一个问题积累下来就是一套好参数。最后说一句PID调参没有标准答案只有适合你的答案。别人的参数可以参考但最终要你自己飞得舒服。多飞、多记、多分析你也能成为调参高手。
返回列表