STM32 PID控制
一、PID简介
开环控制与闭环控制:
开环:写出了代码,并且执行完之后,对它就不管不顾,对它当前的状态也不了解。
闭环:输出东西给目标,同时获取它的反馈,控制器直到被控对象的执行状态,可以根据反馈修改输出值。
二、PID公式
误差:目标值—实际值
PID输出值(最后一个):Ki是Kp除以Ti,Kd是Kp乘Td。
out(t)这三项分别叫做:P比例、I积分、D微分。Kp、Ki、Kd是每项的权重。三个K是在程序中直接给的,是PID调节参数重要调节的值。
假设你在驾驶汽车:
- Kp:方向盘灵敏度(误差大时快速转向)
- Ki:持续偏离车道时逐渐加大转向力度
- Kd:预判弯道趋势,提前调整方向盘
参数调整口诀
- Kp 调响应:先增大 Kp 至系统出现轻微振荡
- Ki 消余差:加入较小 Ki 消除稳态误差
- Kd 减震荡:微调 Kd 抑制超调,提高稳定性
离散形式PID:
上式也称为位置式PID
同样的也有增量式PID:
区别: 位置式PID是直接将需要的值给被控对象
增量式PID是得到输出值的增量或减量,需要被控对象内部有积分功能才能得到输出值。
三、位置式PID程序实现
四、增量式PID程序实现
(本代码是直接输出的全量,可以直接赋值给被控对象),和上面的位置式实现功能一样。