42. 电机控制与 PID 实现¶
42.1 学习目标¶
从编码器计数得到轮速,理解增量 PI 怎样更新 PWM,并根据目标值、测量值和输出曲线调整参数。仅凭电机声音无法判断控制误差和稳定性。
比例—积分—微分控制(Proportional-Integral-Derivative Control, PID)根据目标值与测量值之间的误差计算控制输出。底盘速度环常使用其中的比例和积分两项,简称 PI 控制;微分项并非每个速度环都需要。本章观察的是“目标轮速 → 误差 → PWM → 实际轮速”这条闭环。
本节代码:电机控制
仓库目录:stm32/control/motor/stm32f4-stdperiph。完整文件集见 metadata/code-resource-manifests/motor.txt。验收:能定位电机映射。边界:无编译器与实机证据。
42.2 适用范围¶
直流编码器电机速度环;舵机位置环和速度/位置串级控制采用同一误差反馈思路,但参数与输出不同。
本节代码:PID 控制
仓库目录:stm32/control/pid/stm32f4-stdperiph。完整文件集见 metadata/code-resource-manifests/pid.txt。验收:能定位 PID 常量。边界:无编译器与实机证据。
42.3 闭环前置检查¶
进入闭环前先逐项检查三个最小外设实验的停止条件;任一项触发即停止,不把外设观察外推为整车控制结论。
串口实验停止条件¶
- 测得接口电平超出 MCU/USB-TTL 模块允许范围;
- TX/RX 或地线无法确认,接口接入后板卡复位、掉电或异常发热;
- 串口与下载口、主控通信口或其他外设冲突;
- 固件目标芯片、下载地址或回滚文件不能确认。
停止后断电并恢复原接线。不要用反复更换固件、提高电压或短接未知引脚来试错。
PWM 实验停止条件¶
PA0的板级用途不能确认,或它仍连接电机驱动/功率级;- 输出电压、频率或板卡温度异常;
- 探头接入导致复位、波形严重畸变或电源限流;
- 为获得波形需要取消安全使能、短接驱动器或提高供电电压。
该实验只验收 MCU 引脚波形。要进入电机实验,必须另行核对驱动器、使能、方向、限流和急停。
编码器实验停止条件¶
- 编码器输出电平或接线无法确认;
- 手动转轴阻力异常、机械结构带动轮子或其他执行机构;
- 静止计数持续快速增长,或输入幅值超出 MCU 范围;
- 需要使能电机才能观察计数,但急停、架空和限速尚未完成。
编码器实验通过后,也只能证明单个输入链路。轮号映射、减速比、轮径和完整底盘方向仍需在第 34–35 章逐轮验收。
- 编码器方向、每转计数、减速比和轮径正确。
- 电机架空测试可靠,PWM 限幅存在。
- 备份当前参数和固件。
42.4 工作原理¶
目标轮速来自逆运动学,测量轮速来自编码器。增量 PI 常写为:
比例项决定控制器对当前误差变化的反应强度,积分项累积一段时间内的误差,用于减小持续偏差。控制周期改变后,同一组参数产生的效果也会改变。程序还要限制 PWM 输出、处理低速死区,并在失能时清除积分,防止重新使能后突然输出较大控制量。
42.5 操作步骤¶
- 用固定周期记录目标速度、测量速度、误差和 PWM。
- 先确认开环方向和编码器反馈方向一致。
- 从保守参数开始做小阶跃,不在满负载下首次调参。
- 响应太慢时小幅增加比例;稳定误差明显时再增加积分。
- 出现持续振荡、噪声或过冲时回退参数,检查采样和机械问题。
- 测试停止、反向、低速和常用负载。
- 每次参数变更保存曲线和版本。
闭环调参前必须先证明 PWM 周期/占空比和编码器方向/计数可靠。STM32 串口、PWM 与编码器最小实验给出了无需使能电机的观察步骤;其中引脚和工程基线不能直接套用于其他控制板。
42.6 验收标准¶
- 各轮响应方向正确,目标和实测曲线可解释。
- 常用速度下稳定误差可接受,无持续振荡。
- 停止和失能后 PWM、积分状态安全归零。
- 电机和驱动器温升正常。
- 参数在重启后按预期加载。
42.7 故障排查¶
| 现象 | 优先检查 |
|---|---|
| 参数很小仍振荡 | 编码器方向、采样周期、机械间隙 |
| 低速长期不动后突然冲出 | 死区和积分饱和 |
| 左右轮参数差异很大 | 电机、驱动、轮胎和负载差异 |
| PWM 饱和仍达不到速度 | 供电、负载、减速比或目标不现实 |
本章代码:电机与 PID
使用 stm32/control/motor/stm32f4-stdperiph/USER/main.c 与 stm32/control/pid/stm32f4-stdperiph/USER/main.c 及完整 F4 CMSIS/StdPeriph/BSP 依赖。验收:静态核对电机映射和 PID 常量;边界:未提供编译器与实机证据。