我正在编写PIC24FJ256GA106,通过使用霍尔传感器代替反电动势,使无刷直流电机的PIPD速度控制。目前我可以控制电机的启动、停止和旋转方向。
当我试图测量电机的当前速度时,我遇到了一个问题,因为我正在读取霍尔传感器位置变化之间的时间,这让我可以检测电机何时移动了60个机械等级。利用这个,我可以计算马达的速度,就像马达有一个恒定的速度,但这给我带来了问题,当马达加速或减速时。
在网上寻找,我发现一对夫妇从ST和Microchip的论文,他们描述了特定的ASIC如何模型BLDC电机控制工作,为计算电机的速度。Microchip的文档解释,它们简单地计算速度正如前面解释的那样,测量位置的变化之间的时间,并考虑到速度变化,如果它是线性的。
ST文件如下链接
解释说明他们使用一个单稳态电路,该电路产生由霍尔传感器脉冲的上升沿触发的固定宽度脉冲。该固定宽度脉冲形成一个方形信号,其“按时”是由单稳态电路产生的脉冲的固定宽度,并且“关闭时间”是剩余的时间,直到霍尔传感器的下一个上升沿发生。这最终使得可变占空比的方形信号,并且可以从中获得具有与电动机的速度成比例的电压的DC信号。从那时起,我可以计算电机的速度。
对于第二种方法,我不打算在我的系统中添加单稳态物理电路,但是我可以很容易地将这种行为添加到我的代码中。唯一的问题是,我的汽车的名义速度为4000 r.p.m.当我做固定的代码与适当的脉冲宽度对于这个速度,我认为这将足够窄方波信号的直流电压很低,当电动机的速度太低。结果将是相同的问题,如果我使用测量时间和计算线速度的方法,如前所述。
那么,有没有一种方法来计算速度使用霍尔传感器足够精确,有良好的速度计算时,电机是加速或减速,或不?