增量式PID的P/I/D物理含义,好像变了?
正点原子 原帖, 其中有段代码:https://www.amobbs.com/thread-5769294-1-1.html
/*
* @brief pid闭环控制
* @param *PID:PID结构体变量地址
* @param Feedback_value:当前实际值
* @retval 期望输出值
*/
int32_t increment_pid_ctrl(PID_TypeDef *PID,float Feedback_value)
{
PID->Error = (float)(PID->SetPoint - Feedback_value); /* 计算偏差 */
PID->ActualValue +=
(PID->Proportion * (PID->Error - PID->LastError)) /* 比例环节 */
+ (PID->Integral * PID->Error)/* 积分环节 */
+ (PID->Derivative * (PID->Error - 2 * PID->LastError + PID->PrevError));/* 微分环节 */
PID->PrevError = PID->LastError; /* 存储偏差,用于下次计算 */
PID->LastError = PID->Error;
return ((int32_t)(PID->ActualValue)); /* 返回计算后输出的数值 */
}
这里
积分环节,更像是平时的P
比例环节,更像是平时的D,
换句话说,
这个代码,
如果单纯只有积分环节,就足够让电机动起来并稳定在设定的速度,这不就是位置PID的P的功能吗?
增加比例环节,可以去除超调和震荡,这不就是位置PID的D的功能吗?
页:
[1]