无刷有感电机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算法吧。
无刷有感电机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算法吧。
举报