news 2026/6/3 21:41:40

058、PID控制中的微分先行与滤波

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
058、PID控制中的微分先行与滤波

飞控算法从入门到精通 | 058、PID控制中的微分先行与滤波

一、一次炸机让我重新认识微分项

去年调试一架四轴,悬停时一切正常,但只要切到定高模式,电机就开始高频抖动,三秒后直接翻倒炸机。拆下日志一看,高度通道的微分项输出像心电图一样剧烈跳动,峰值达到正常值的五倍。当时我第一反应是“增益调小点”,但调低之后响应又变得迟钝,定高时高度波动超过半米。

后来才意识到,问题出在微分项对噪声的放大效应上。飞控里的高度数据来自气压计,本身就带±0.5米的随机噪声,再经过微分运算,噪声被进一步放大。更致命的是,传统PID结构里微分项直接作用于误差信号,一旦设定值发生阶跃变化(比如遥控器突然推高),微分项会瞬间输出一个巨大的尖峰,这就是所谓的“微分冲击”。

那次炸机之后,我花了整整两周研究微分先行和滤波方案。今天这篇笔记,就是把当时踩过的坑和最终落地的方案整理出来。

二、微分先行到底在解决什么问题

先看传统PID的微分项公式:

u_d = Kd * (e(k) - e(k-1)) / dt

这里的e(k) = 设定值 - 反馈值。问题出在:当设定值突变时,e(k)会瞬间跳变,微分项输出一个巨大的脉冲。在飞控里,这个脉冲会直接驱动电机加速,轻则震荡,重则炸机。

微分先行的核心思路是:只对反馈值做微分,不对设定值做微分。换句话说,微分项只关心“被控量变化有多快”,而不关心“设定值变化有多快”。公式变成:

u_d = Kd *
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/3 21:35:37

技术深度解析:OpenCore Legacy Patcher架构设计与实施全攻略

技术深度解析:OpenCore Legacy Patcher架构设计与实施全攻略 【免费下载链接】OpenCore-Legacy-Patcher Experience macOS just like before 项目地址: https://gitcode.com/GitHub_Trending/op/OpenCore-Legacy-Patcher OpenCore Legacy Patcher作为一款革命…

作者头像 李华
网站建设 2026/6/3 21:34:39

3步搞定AI音乐生成API:告别手动维护的烦恼

3步搞定AI音乐生成API:告别手动维护的烦恼 【免费下载链接】Suno-API Create Music in Seconds with SunoAPI. 项目地址: https://gitcode.com/GitHub_Trending/su/Suno-API 你是否曾经因为API令牌频繁过期而头疼?或者为了保持音乐生成服务的稳定…

作者头像 李华