理论分析
速度闭环控制就是根据单位时间获取的脉冲数(这里使用了M发测速)测量电机速度信息,并进行与目标经行比较,得到控制偏差,然后通过对偏差的比例、积分、微分经行控制使之去向零的过程
在我们速冻控制的闭环系统里边只使用PI控制,因此对PID控制器可简化为:
控制框图
具体参见上章(位置式PID)
C语言实现
int Incremental_PI (int Encoder,int Target)
{
static float Bias,Pwm,Last_bias;
Bias=Encoder-Target; //计算偏差
Pwm+=Velocity_KP*(Bias-Last_bias)+Velocity_KI*Bias; //增量式 PI 控制器
Last_bias=Bias; //保存上一次偏差
return Pwm; //增量输出
}
入口参数为编码器的测速值和速度控制的目标值,返回值为电机控制PWM。
第一行式相关的内部变量定义。
第二行是求出速度偏差,由测量值减去目标值。
第三行使用增量PI控制器求出PWM。
第四行保存上一次的偏差,便于下一次调用。
最后一行是返回