011、开环控制与闭环控制概念
011、开环控制与闭环控制概念
从一次电机“抽风”说起
去年调试一个四轴机械臂的关节电机,PID参数调了三天,空载跑得丝滑,一挂负载就原地抽搐。当时我盯着示波器上那条锯齿状的电流波形,突然意识到一个很蠢的问题——我压根没确认编码器反馈信号是不是真的进了控制环路。后来发现是配置寄存器时把编码器接口的使能位漏了,电机实际上一直在开环跑,全靠电流环硬扛。
这种“你以为闭环了,其实还在开环”的坑,在嵌入式控制开发里太常见了。今天这篇笔记,咱们就把开环和闭环这两个最基础的概念掰扯清楚,顺便聊聊那些容易翻车的细节。
开环控制:只管发令,不管结果
开环控制的核心逻辑就一句话:输出只取决于输入,不关心实际结果。你给电机发一个PWM占空比,它就按这个占空比转,至于转速是不是你想要的、负载变化了怎么办,它不管。
举个最直观的例子:步进电机开环位置控制。你发1000个脉冲,理论上转子转一圈。但要是负载突然卡住,电机丢步了,控制器根本不知道——它只会继续发完剩下的脉冲,然后告诉你“位置到了”。这种场景下,你看到的“到位”信号,其实是控制器自己算出来的理论位置,不是实际位置。
代码里常见这种写法(别学):
// 开环速度控制 - 踩过坑的写法voidmotor_se