今天在调试的过程中发现电机的转动不平稳,产生的反电动势波形也不好看,有周期性的波动;通过示波器仔细地观察PWM波形,发现该波形有周期性的抖动;而且发生周期性波动的时候,会将电源拉低2~3V。
这种情况显然对下一步过零检测非常不利;必须排除。
仔细察看了程序,才想起来从一开始调试的时候,图省事程序写的简单,没有对计数器的时钟预分频器进行同步,而且在程序中对PWM计数器也没有同步,这种漏洞使得程序在执行过程中,会周期性的失步,最终的结果就是电机转动不平稳,有明显的抖动,波形很差,有时候会因为短路使电源输出不稳。
在找到问题以后,在每次换相的时候复位PWM计数器,在定时器中断中复位时钟的预分频器。经过这两部分的处理,电机可以很平稳的转动,波形非常好看,电源也很平稳;
愚昧了一把,浪费半天时间;
下午开始考虑过零检测部分,想明白一件事:
3相的反电动势的任意时刻滤波后的平均值正好是过零检测的0电位线!这个要结合三相的反电动势线来观察得出结果:在同一时刻,三相的电压,有在0线上的,有在0线下的,有等于0的,加起来正好在0线上。以前在资料上就是这么写的,可直到看到波形,才明白。不知道为啥看资料上那么清晰的图反而不注意。
由于单片机的OC2引脚用于驱动C相的下臂,而这个脚又是ISP编程的信号线,编程的时候会驱动C相下臂开通,配合CPU编程状态会开通上臂,造成有点短路的样子,编程经常失败,所以在过流检测那里加了个开关,编程的时候断开开关,则三相桥全部与GND断开,编程的成功率大增。
这个问题只好留到正式版再解决,现在先将就着。
明天搞过零检测。
用户1420144 2009-12-15 13:13
用户102310 2009-9-3 20:21