|
楼主 |
发表于 2009-9-2 09:22:44
|
显示全部楼层
回lxyppc:
恩,你是用的高边PWM调制,几乎所有商用电调都是低边PWM调制的,不过差别不是很大,我只是看掼了低边PWM调制的波形.在无刷马达的过零点检测中都是在PWM ON时进行的,在MICROCHIP的"MADE EASY"一篇中有对PWM ON和PWM OFF时检测的差别有图片说明的,在"WITH PIC16"中,也是在PWM ON时进行的.如果我们只在PWM ON时检测,那过零点要是发生在PWM OFF时怎么办?这样会使换相时间发生不可预知的抖动,对于电动自行车电机,工业伺服马达等在低速运行可能没什么影响,但对于硬盘无传感器控制,高速驱动要求等就不能满足了,这是一个矛盾,那么如何达到矛盾的转化呢?在ON时没有问题,在OFF时有问题,如何去掉OFF时的问题呢?恩,要是这个时候变成ON就好了,我们的直觉想法,但如果是ON,那还用PWM调制干嘛呢?没错,但这里有个潜藏的错误假设,都是ON了,如果我只是ON一小会会,检测到过零点后就马上OFF掉,可以吗?当然可以了,因为马达的惯性本身就可算作是一个机械滤波器,在高频PWM调制下就算丢失几个PWM脉冲都没什么影响,这样就将先前的矛盾转化为了如何在适当的时刻使用PWM ON的矛盾,矛盾发展了,我们又面对新的问题,真的是革_命的人永远年轻,穷则变,变则通.那么如何知道合适的时间呢?想想我们的目的就是要找过零点,合适的时间就是为了找过零点,那过零点又怎么确定呢?矛盾又变为怎么确定过零点了,那么什么是过零点,它和别的什么有可能沾上关系呢?毛主席说要"去粗取精,去伪存真,由此及彼,由表及里的思索","由此及彼"就是两次换相的中点时刻就是过零点(当然,如果要加上提前角定时也是很简单的).所以得出的结果就是:等待启动成功有连续的若干正常换相过程后,我们就知道换相时刻了,就象数学归纳法一样,有了这个基础,我们就可以得出下一个过零点的一个区间时刻,在那个时候,只要提前保持PWM为ON,就可以正常检测过零点了,最好是把换相时间做个简单的滤波会更好.用线性电源调压会浪费很多能量,用PWM调制效率提高了,但引入了大量噪声,这时的噪声就象敌人的拳头,你不能不当回事,怎么应付?有两种方法,要么进攻,要么防守.现在是人家进攻,单纯防守是消极的,就象外国中世纪的骑士一样,搞得象个机器人,拿着个大标枪对着撞,一根筋,在电路上的表现就是加电容滤波,MY GOD,又要考虑相移了,但我们是中国人,讲究化解之道,玩一下太极,我先躲一下,准备防御中的进攻,这就是玩IQ了,所以在程序上的表现就是在过零点到来之时,预先让PWM处于ON,直至找到过零点,找到后立即恢复应该的状态,这样我就当没有OFF这回事,也不用考虑什么瞬态过程的干扰这些麻烦事了,你觉得我的方法怎样,今天打了好多字喔!你的方法是用某相电压去减虚拟中点电压,也可以,但其中已经包含了大量的PWM噪声,如果这时候考虑滤波,会相当困难,我曾经试过德国人BERNHARD KNOZE的方法,和你的一样,但会出现经常打嗝的情况,尤其是航模电调,你不可能知道玩家会用什么样的稀奇古怪的电机,这会导致不同的电机电气特性,影响兼容性,做高级滤波比较难,我数学不好,什么数字滤波算法我现在基本就看不懂了,再说,就算有了算法,8位单片机能算得过来吗?我觉得还是从源头解决掉比较好. |
|