news 2026/5/2 10:46:44

021、PID控制器的C语言实现(三):微分先行

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
021、PID控制器的C语言实现(三):微分先行

021、PID控制器的C语言实现(三):微分先行

一、一个让我熬夜到凌晨三点的现场问题

去年在调试一台高速贴片机时,遇到了一个让人抓狂的现象:设备在高速运行时,只要设定位置突然变化(比如从A点跳到B点),电机就会发出尖锐的啸叫声,然后剧烈抖动。更诡异的是,同样的PID参数在低速运行时完全正常,一上高速就崩。

我盯着示波器上的波形看了两个小时,发现每次设定值跳变时,微分项都会输出一个巨大的尖峰——这个尖峰直接让控制器饱和了。传统PID的微分项对误差的变化率敏感,而设定值突变时误差变化率瞬间爆表,微分项就像被踩了尾巴的猫一样炸毛。

这就是微分先行(Derivative on Measurement)要解决的问题。简单说:不让微分项直接看到设定值的变化,只让它盯着实际值的变化

二、微分先行的核心思想

传统PID的微分项计算的是误差的变化率:

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

其中 e(k) = setpoint - actual。当setpoint跳变时,e(k)瞬间变大,微分项输出一个巨大的脉冲。

微分先行的做法是:只对实际值做微分,不对误差做微分。公式变成:

D = Kd * (actual(k-1) - actual(k)) / dt

注意这里符号是反的——实际值减小时,微分项输出正的控制量,这和传统PID的物理意

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

如何快速打造个性化播放器:5款惊艳VLC皮肤终极指南

如何快速打造个性化播放器:5款惊艳VLC皮肤终极指南 【免费下载链接】VeLoCity-Skin-for-VLC Castom skin for VLC Player 项目地址: https://gitcode.com/gh_mirrors/ve/VeLoCity-Skin-for-VLC 厌倦了VLC播放器那个千篇一律的默认界面?&#x1f6…

作者头像 李华
网站建设 2026/5/2 10:42:30

别再死记硬背公式了!用Python模拟激光增益、损耗与自激振荡全过程

用Python动态模拟激光器中的增益、损耗与自激振荡 激光技术是现代科技的重要支柱,从医疗美容到工业切割,从光纤通信到量子计算,激光无处不在。然而,对于许多学习激光原理的学生和工程师来说,理解激光器内部的光子动力学…

作者头像 李华
网站建设 2026/5/2 10:41:25

为 Claude Code 配置 Taotoken 作为 Anthropic 兼容通道后端

为 Claude Code 配置 Taotoken 作为 Anthropic 兼容通道后端 1. 准备工作 在开始配置前,请确保已安装 Claude Code 工具链并拥有有效的 Taotoken API Key。Taotoken 提供与 Anthropic 协议兼容的 API 通道,允许开发者通过统一接口调用多种大模型服务。…

作者头像 李华
网站建设 2026/5/2 10:38:55

如何3分钟免费安装Figma中文插件:终极设计翻译指南

如何3分钟免费安装Figma中文插件:终极设计翻译指南 【免费下载链接】figmaCN 中文 Figma 插件,设计师人工翻译校验 项目地址: https://gitcode.com/gh_mirrors/fi/figmaCN 还在为Figma的英文界面而困扰吗?专业术语看不懂,菜…

作者头像 李华