番外篇 F05:电机控制与PID调节实战《电机控制中的PID调节:位置式/增量式算法解析与使用场景全攻略》
“这里没有理论派,只有能跑的命令和能用的方案。”
—— DoubleMpd
📌 前言
在嵌入式开发中,电机控制是一个绕不开的话题。无论是四轴飞行器的姿态控制、机器人的关节伺服,还是工业流水线上的调速系统,PID控制器都是最核心、最基础的调节手段。
有人说PID是“万能算法”,这虽然夸张,但确实反映了一个事实:在不知道用什么控制算法的时候,PID往往是最稳妥的第一选择。
但很多刚入门的嵌入式工程师会遇到这样的困惑:
位置式PID和增量式PID有什么区别?
什么时候该用位置式,什么时候用增量式?
PID参数怎么调?有没有一套能落地的方法?
本文将围绕电机控制这个场景,系统讲解PID的基本原理、两种主流算法的对比、适用场景,以及一套可以直接上手的参数整定方法。
🧠 一、PID的基本原理(一句话版)
PID控制器由三个环节组成:
| 环节 | 作用 | 通俗理解 |
|---|---|---|
| 比例(P) | 根据当前误差输出调节量 | 误差越大,输出越大 |
| 积分(I) | 消除稳态误差 | 一直有误差就持续累积 |
| 微分(D) | 预测误差变化趋势 | 提前“刹车”,防止超调 |
核心目标:让被控量(如电机转速、位置)快速、稳定地达到目标值,并且保持在那里。
⚖️ 二、位置式PID vs 增量式PID:核心区别
这是电机控制中最常被问的问题。两种算法的主要差异体现在以下几个方面:
1. 控制量形式不同
位置式PID输出的是控制量的绝对值:直接计算出当前时刻应该输出的控制量(如PWM占空比、阀门开度)
增量式PID输出的是控制量的变化量:计算出“本次应该比上次多输出多少”
举个例子:假设电机当前转速是1000 RPM,目标是15
