无刷电机之有感PID调试心得

无刷有感电机PID调试心得

一、换相脉宽采集的方法
 通常来讲,换相脉宽的采集精度越高越好,但也受MCU内部资料的限制,
如果有多余的16位的定时器,那就不用犹豫了,直接用它来作换相脉宽的计数吧,
精度可高达1us,要是没有这个16位的定时器那就只能用8位的定时器然后再在定时
器中断里面自己人为累计计数值咯。

二、PID的运算时间如何定?
1、换相6次后运行一次PID
 对于无刷电机而言,由于不同电机结构之间的微小差异以及霍尔装配上的误差
等问题,通常不要每采集一个脉宽值就进行PID运算,这样容易引起电机抖动,好的
做法是:采集一个完整的运行周期(也就是6个换相周期),然后把这6个换相周期
累加取平均值,从而得出当前的转速值。一旦得到一次新的转速值,就可以进行一
次PID运算。
2、限定一个最长的强制运算PID的时间
 当在一段时间内(主要在低转速),MCU一直没有获得新的转速值,那么这时候
就需要强行进行PID运算,以重新获得新的功率值,以下为强行运算PID的参考时间:
40MS-150MS之间

三、如何消除电机的静态抖动?
1、当采集到的脉宽值与设定的脉宽值相差很小EKA1(不是零哦),不需要进行PID运算,也
就是程序直接返回,不进行算法运算。
2、当采集到的脉宽值与设定的脉宽值相差不大EKA2(EKA1 < EKA2)时,不进行PID运算,而
是进行功率值的加1或减1处理,这是个微调功率的方法。
3、当采集到的脉宽值与设定的脉宽值相差比较大EKA3(EKA2 < EKA3)时,这时候大但的调用
你的PID算法吧。

你可能感兴趣的:(算法)