在做BLDC电机转速PID控制的时候,需要检测BLDC反馈回来的实际转速,跟目标转速进行比较,通过PID算法,修改驱动PWM脉冲的占空比,实现速度闭环控制。
- 转速到频率的计算
我们假设转速用n表示,单位RPM。 RPM就是每分钟旋转了多少圈。 再假设电机的极对数用P表示,如果电机旋转一圈产生12个脉冲,那么P = 12. 那么电机一分钟旋转了n圈,产生了 n * P 个脉冲, 那么一秒钟产生了多少脉冲呢,就是 n * P / 60 . 这就是频率值,假设用f 表示,那么 f = n * P / 60 (hz),其中n的单位为RPM,f的单位hz。
多说两句:如果我们通过PID需要控制BLDC的最高转速是5000rpm,假如极对数p=12,那么频率就是f = 5000 * 12 / 60 = 1000Hz. 那么我设计的用来采样BLDC反馈速度的中断服务函数(一般是定时器中断服务函数),定时器的中断更新频率最好是这个频率的10倍,即10kHz,定时器的更新周期T = 100 us。那样基本就可以保证采样精度,不会误差很大。
- 频率到转速的计算
我们可以利用转速公式来计算转速,假如转速用n 表示, 频率 f, 电机极对数p. 那么转速的计算公式 n = 60 * f / p,f 的单位是Hz, n的单位RPM.
多说两句:实际应用中,我们会在中断中计算BLDC反馈回来的50%占空比的脉冲时间,有两种方式,一种是计算高电平的时间,然后求平均值,得到高电平滤波后的时候t,那么周期 f = 1 /2t,带入公式就可以得到BLDC当前的实际转速;另外一种是计算电机旋转一圈产生12个脉冲,即高点电平变化24次的时间,这是另外一种计算公式,这里就不说明了。