一、认识PID
在学习PID的时候,会猛然接触到很多概念,导致对PID认识不清。刚学习PID时会一下接触到PID、数字PID、增量式PID和位置式PID等概念,让人感觉到PID很复杂,但其实本质上PID的公式就只有一个,其他只是为了不同场合应用的变式,其本质还是一样的。
原始PID公式:
二、模拟PID和数字PID
模拟PID公式:
数字PID公式:
可以用微积分的知识来理解上面两个公式:模拟PID公式类似于求曲边梯形的面积问题,而数字PID便是将曲边梯形的面积划分为很多段矩形的面积来求和。这样看来数字PID公式便是对模拟PID的离散化。
模拟PID公式只是在理想条件下的公式,在实际应用中我们只能采用数字PID公式进行计算。虽然有些PID的代码实践看似是根据模拟PID公式而来,但其实也是数字PID的应用,只不过dt用来表示时间间隔罢了。
对比上面的公式发现:模拟PID涉及到了时间,而数字PID中不涉及时间?
其实数字PID中也是包含时间的,我们平时在应用PID时都是以固定的时间间隔来计算,因此可以在化简的过程中将时间常数算进积分系数和微分系数中。
三、增量式PID和位置式PID
网上有很多关于增量式PID和位置式PID的介绍,有一种普遍看法是对于电机应该采用增量式PID,但实际对电机的控制应用(智能小车中)中用的PID算法其实都是位置式PID。对这两种方式一直没有深刻的体会,具体的差别还需在实际应用中体验吧。位置式PID基本能满足我们的大多数需求。