STM32 直流电机闭环调速项目|位置式 / 增量式 PID 底层差异拆解,双算法可切换模块化

📅 2026/7/2 8:03:44
STM32 直流电机闭环调速项目|位置式 / 增量式 PID 底层差异拆解,双算法可切换模块化
一、前言(项目痛点与选型需求)项目硬件:直流减速电机 + 1000 线正交编码器、H 桥 L298N 驱动、STM32F103 主控开发中遇到典型问题:分不清位置 / 增量 PID,随便套用代码出现电机抖动、飞车;两种算法代码完全耦合,无法快速切换对比调试;电机启停、负载变化时转速超调严重,无防积分饱和、输出限幅处理;编码器测速与 PID 运算周期不匹配,闭环响应滞后;代码绑定电机硬件,无法复用在温控、液位控制场景。本文核心方案:通俗拆解位置式、增量式 PID 数学公式与输出本质区别;结构体封装双算法,宏定义一键切换,上层调用接口完全统一;正交编码器定时周期测速,固定周期执行 PID 保证闭环稳定;工业优化:积分限幅、输出变化量限幅、PWM 上下限保护;完整项目链路:编码器测速→PID 运算→PWM 输出驱动电机,可搭配 OLED 实时显示转速。二、位置式 / 增量式 PID 深度原理对比2.1 基础公式通俗解读位置式 PID输出直接为完整执行机构控制量(完整 PWM 数值)。特点:输出是绝对位置,每一次输出都依赖全部历史误差积分。增量式 PID输出仅为本次控制量变化值,新输出 = 上次输出 + 增量。特点:只输出变化量,无积分累加项,不存在长时间积分饱和。2.2 核心差异对照表