【嵌入式】PID调参

PID 参数就是控制算法里的三个“调节旋钮”:P(比例)、I(积分)、D(微分)。它们决定控制器对“误差”的反应有多强、多快、多稳。

公式大致是:

其中 e(t)=目标值−实际值e(t)=目标值−实际值,u(t)u(t) 是输出控制量。
所以三个参数就是:

  • Kp:比例增益

  • Ki:积分增益

  • Kd:微分增益


1. P:比例项

看当前误差,差多少就出多大力。

  • Kp 越大:反应越快,但容易超调、振荡。

  • Kp 越小:反应迟钝,可能一直有稳态误差。

  • 作用:让系统快速靠近目标。

例子:机器人关节要转到 90°,现在在 0°,P 就是“差 90° 就输出大一点”。


2. I:积分项

看历史误差,一直差就一直加力,用来消除稳态误差。

  • Ki 越大:消除稳态误差越快,但容易超调、振荡。

  • Ki 越小:消除慢,可能永远差一点。

  • 作用:让最终值精确到达目标。

例子:电机带负载后总差 2°,I 会慢慢补偿这 2°。


3. D:微分项

看误差变化趋势,快到了就提前刹车。

  • Kd 越大:抑制超调、减少振荡,但对噪声非常敏感。

  • Kd 越小:阻尼不足,容易冲过头。

  • 作用:让系统更稳,像“阻尼器”。

例子:平衡车快倒时,D 根据倾斜速度提前给反向力。


一句话记忆

  • P:现在差多少

  • I:过去差多少

  • D:未来会差多少

调参口诀通常是:

P 负责快,I 负责准,D 负责稳。


参数增大的影响

参数响应速度超调稳态误差稳定性
Kp ↑变快变大减小变差
Ki ↑变快变大消除变差
Kd ↑略快减小无影响变好,但怕噪声

手动调参大概步骤

  1. 先只加 P:从小到大,直到系统开始等幅振荡,再往回退一点。

  2. 再加 I:从小往大,直到稳态误差消失,略有超调就停。

  3. 最后加 D:抑制超调和振荡,但注意噪声,必要时加低通滤波。

  4. 反复微调:P、I、D 会互相影响。


嵌入式/机器人里要注意

  • 采样周期要固定,离散化后常用:

  • 输出要限幅,防止执行器过载。

  • 积分要限幅,防止“积分饱和”。

  • 微分对噪声敏感,通常加滤波或“不完全微分”。

  • 不同对象调法不同:电机速度、温度、位置、平衡车,参数差别很大。

简单说,PID 参数就是调 P、I、D 三个数,让系统又快、又准、又稳。

平衡车一般不是单环 PID,而是串级 PID:

直立环(内环) + 速度环(外环) + 转向环

其中直立环是核心,通常只用PD;速度环用PI;转向环用P 或 PD。


1. 直立环:让车不倒

输入:角度、角速度
输出:电机 PWM

text

角度误差 = 目标角度 - 实际角度 直立输出 = Kp_angle * 角度误差 + Kd_angle * 角速度
  • Kp_angle:越大,回正越快,太大高频抖动。

  • Kd_angle:抑制抖动,像阻尼,太大对陀螺仪噪声敏感。

  • 一般不用 I:积分会滞后,反而容易倒。

调法:

  1. 先只给 P,从小往大加,直到车能向平衡位置回正,但会抖。

  2. 再加 D,从小往大加,直到抖动明显减弱、响应变硬。

  3. 目标角度要设成机械中值,不是 0°,因为电池、重心会影响。


2. 速度环:让车不漂

输入:编码器速度
输出:叠加到目标角度上

text

速度误差 = 目标速度 - 实际速度 速度输出 = Kp_speed * 速度误差 + Ki_speed * 积分 目标角度 = 机械中值 + 速度输出
  • Kp_speed:车漂移时把它拉回来。

  • Ki_speed:消除静差,让车真正停住。

  • 输出限幅:通常限制在 ±5° ~ ±10°,否则会干扰直立。

调法:

  1. 直立环稳定后,车会慢慢前后漂。

  2. 加速度环 P,让车能缓慢回中心。

  3. 再加 I,消除最后一点漂移。

  4. 如果出现低频前后摆动,说明速度环太强,减小 P 或 I。


3. 转向环:控制左右转

输入:遥控转向量、陀螺仪 Z 轴
输出:左右轮差速

text

转向输出 = Kp_turn * 转向误差 + Kd_turn * 转向角速度 左PWM = 直立输出 - 转向输出 右PWM = 直立输出 + 转向输出
  • Kp_turn:转向力度,太大容易甩尾。

  • Kd_turn:抑制转向过冲,让转向更稳。

  • 原地转向时注意电机死区,可加一点补偿。


4. 调参顺序

  1. 确认极性:车往前倾,轮子要往前加速;反了会直接飞车。

  2. 调直立环:先 P 后 D,直到能静止站立。

  3. 调速度环:先 P 后 I,直到不漂移。

  4. 调转向环:先 P 后 D,直到转向跟手。

  5. 联调:轻推、遥控、加负载、换地面,再微调。


5. 常见问题

  • 一上电就疯转:电机方向或角度符号反了。

  • 高频抖动:直立环 Kp 太大,或 Kd 太大引入噪声。

  • 低频前后摆:速度环太强,或直立环阻尼不够。

  • 往一边跑:机械中值没校准,或陀螺仪零偏。

  • 加速后倒:速度环输出限幅太大,或电池电压下降。

  • 积分饱和:积分项要限幅,倾倒时及时清零。


6. 代码注意

  • 采样周期固定,比如 5ms。

  • 角度用互补滤波或卡尔曼,角速度直接用陀螺仪,别用角度差分。

  • 微分项对噪声敏感,加低通滤波。

  • PWM 输出必须限幅,防止烧电机。

  • 电池电压变化会影响参数,最好做电压补偿。


经验数量级(仅参考)

以角度单位“度”、PWM 0~1000 为例:

  • 直立环:Kp ≈ 30~100,Kd ≈ 0.5~3

  • 速度环:Kp ≈ 0.5~5,Ki ≈ 0.01~0.1

  • 转向环:Kp ≈ 1~10,Kd ≈ 0~0.5

但不同电机、轮径、重量、单位差别很大,不能照抄。

相关新闻

刚刚!全球开源榜第一被小米抢走了,这次狠招不是堆参数,而是 RL

刚刚!全球开源榜第一被小米抢走了,这次狠招不是堆参数,而是 RL

刚刚!全球开源榜第一被小米抢走了,这次狠招不是堆参数,而是 RL 【免费下载链接】MiMo-V2.6-Flash-RL 项目地址: https://ai.gitcode.com/XiaomiMiMo/MiMo-V2.6-Flash-RL 这几天,AI 圈炸了一个不大不小的锅。 国外那个专门…

2026/10/20 2:06:16 阅读更多 →
隐私计算联邦查询中的密文脱敏:从安当DBG看不解密可用不可见的工程实现

隐私计算联邦查询中的密文脱敏:从安当DBG看不解密可用不可见的工程实现

一、背景:联邦查询把"脱敏"推到了密文侧 联邦查询与隐私计算的共同前提是"数据可用不可见"。在金融风控联合建模、跨院区医疗研究、集团多子公司合规统计等场景中,参与方各自持有数据,彼此不互相信任,也不愿意…

2026/10/20 2:06:16 阅读更多 →
OM1 四足机器人导航:让 Go2 自主避障走到目标点的 3 个机制

OM1 四足机器人导航:让 Go2 自主避障走到目标点的 3 个机制

OM1 四足机器人导航:让 Go2 自主避障走到目标点的 3 个机制 【免费下载链接】OM1 Modular AI HAL (Hardware Abstraction Layer) for Robots 项目地址: https://gitcode.com/GitHub_Trending/om/OM1 做四足机器人导航(让机器狗自己走到目标点、路…

2026/10/20 2:05:16 阅读更多 →

最新新闻

别让向量检索背锅:GraphRAG与Agent调度器重塑RAG检索架构

别让向量检索背锅:GraphRAG与Agent调度器重塑RAG检索架构

做RAG项目的同学,最焦虑的时刻往往不是模型回答错了,而是检索回来的上下文看起来都对,模型却给出了一个完全编造的数字。最近我把一整套知识问答系统的检索层重构了一遍,核心思路就是标题里那句话:别让向量检索背上所有…

2026/10/20 2:50:44 阅读更多 →
AI Agent落地避坑:从架构治理到成本控制的实战指南

AI Agent落地避坑:从架构治理到成本控制的实战指南

“龙虾”这个比喻是我在一个技术群里看到的。当时有人吐槽自家公司的大模型Agent项目:GPU买了、算法团队扩了、Prompt调了一版又一版,结果线上效果越来越差,账单却越来越厚。评论区一句话总结——“像养龙虾,越养越贵,…

2026/10/20 2:50:44 阅读更多 →
模型轻量化与高效部署实战:剪枝、量化、蒸馏全流程解析

模型轻量化与高效部署实战:剪枝、量化、蒸馏全流程解析

写周报这件事,我不知不觉坚持到了第三十九期。从最开始记录一些基础论文的阅读笔记,到后来逐渐转向实验复现、工程踩坑、性能调优,这三十几周的内容基本就是我一个人从入门到能独立做一些模型落地工作的完整轨迹。这一期我不想写那种罗列了一…

2026/10/20 2:50:44 阅读更多 →
从零开发网页版“大鱼吃小鱼”:玩法、AI与性能优化实战

从零开发网页版“大鱼吃小鱼”:玩法、AI与性能优化实战

如果你小时候在网页上玩过“大鱼吃小鱼”,应该还记得那种既紧张又爽快的体验:拼命寻找比自己小的鱼,又时不时瞥见一条大一圈的家伙缓缓游来,手心冒汗。这个经典玩法放到今天依然不过时,它天然具备快速反馈和成长快感&a…

2026/10/20 2:50:44 阅读更多 →
图片转Excel全流程拆解:OCR批量处理与表格结构还原实战

图片转Excel全流程拆解:OCR批量处理与表格结构还原实战

图片转Excel,真的能去掉“手敲键盘”的命吗?干了这么多年数据处理,我电脑里几乎每天都有人发来这种玩意儿:一张表格照片、一份截图、甚至是一整页扫描件,然后附一句——“帮我把这个弄成Excel呗”。搁几年前&#xff0…

2026/10/20 2:50:44 阅读更多 →
SpeedTree 10 + Nanite 植被工作流:告别纸片树冠,实现透射与季相重构

SpeedTree 10 + Nanite 植被工作流:告别纸片树冠,实现透射与季相重构

做场景美术这些年,每次听到“这棵树的树冠跟纸片似的”,心里都咯噔一下。传统游戏植被的做法大家心知肚明:树冠就是几张交叉的面片加Alpha Test贴图,远远近近的LOD一级比一级“扁”,最后几乎只能看到一个剪影。逆光的时…

2026/10/20 2:49:43 阅读更多 →

日新闻

CLRC663芯片Pin-to-Pin替代实战:从评估到量产全记录

CLRC663芯片Pin-to-Pin替代实战:从评估到量产全记录

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:01:30 阅读更多 →
ESP32舵机控制指南:原理、多路驱动与避坑实战

ESP32舵机控制指南:原理、多路驱动与避坑实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:01:30 阅读更多 →
位移法实现一阶低通滤波:单片机ADC采样降噪实战

位移法实现一阶低通滤波:单片机ADC采样降噪实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:01:30 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/19 10:02:04 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/19 17:32:41 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/20 2:50:50 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/19 2:54:50 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/19 9:10:22 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 12:16:16 阅读更多 →