球球 发表于 2012-12-18 11:49:14

电调新人求助

本帖最后由 球球 于 2012-12-18 13:52 编辑

   阿莫里的各位朋友,之前本人一直是默默地关注着阿莫中关于电调的文章,汲取养分。在和朋友的协同下基于“写给四轴新人:无感无刷直流电机之电调设计全攻略”设计了一款电调,程序也是参照攻略中的,调试了多日,电调还未能理想转起来,想请教论坛上的各位帮个忙看看,耗得时间实在是有些久了。废话少说,先上传我的程序代码(附件中的 V041.zip)。
   我的设计是:基于MK的程序,PWM频率为32KHZ,8位快速模式,MAXPWM为255。启动时采用开环,稳定后利用ADC过零比较进入闭环换相。调速是利用ICP口的外控PPM信号。“写给四轴新人:无感无刷直流电机之电调设计全攻略”中的电机是XXD的14极的,我采用的电机是12极的(不知这点在程序设计时是否要注意)。有电流检测部分。
   程序完成后,电机空载下,设定了固定的PWM为20(占空比为20/255),电机的启动很好,旋转也较平稳,心中一阵窃喜。但是,当我将PWM加到50时,电机旋转出现很刺耳的尖锐声音。当PWM加到100时,电机出现明显的堵转现象,MOS管发烫。
刚刚已经说过,电机旋转起来的换相是通过模拟比较器进行过零检测实现的。因而我用示波器观测模拟比较器的输出,发现在不同的PWM占空比下均间隔固定的时间n出现一个较长的高或低电平。后经测试n与主程序BL_CTRL中的:
         if(CheckDelay(DrehzahlMessTimer))
                {
                        DrehzahlMessTimer = SetDelay(10);   /////////////////////////////////////////////////////////////////////////
                        SIO_Drehzahl = CntKommutierungen;      //CntKommutierungen电机每换相1次自加1,SIO_Drehzahl向串口输出的当前转速值;
                        CntKommutierungen = 0;
                        
                        //if(PPM_Timeout == 0)                // keine PPM-Signale
                              // ZeitZumAdWandeln = 1;                //换相电路检测电流的标志位
                }
代码段中的SetDelay(n)中的延迟时间一致。而这段代码中的ZeitZumAdWandeln = 1标志用于换相过程中的电流检测,BLMC.c中的换相中断服务程序SIGNAL(ANA_COMP_vect)中的if(ZeitZumAdWandeln) AdConvert()。因为换相用到模拟比较器和电流检测用的AD为复用关系,我认为是换相中的电流检测影响了正常换相,因而将ZeitZumAdWandeln = 1给注释掉了。
    完成上述工作后,我再次测试各个占空比下的模拟比较晚器的输出,上述的隔n时间的高或低电平不再出现,电机旋转起来较之前声音趋于平稳多了。但是,当PWM占空比上到70时,仍然有很尖锐的声音。
当PWM占空比上到110时再次出现堵转的现象,伴随着MOS管发烫。
  啰嗦了这么多,其实问题就是:当我的PWM值加大时(50)以上,电机空载旋转出现尖锐的刺耳声。90以上,电机伴随堵转现象,电机转速降低,mos管发烫。给电机带上浆仍然存在问题。我测试了下电调A、B、C相的输出,主要测试了三个部分:1、模拟比较器的输出;2、MOS栅极输入的PWM;3、A相输出;分别是在PWM占空比为20、50、90(占空比均要除以255)的情况下测得的:
1、PWM占空比值为20/255:
    a、模拟比较器的输出:                                              b、A相MOS管栅极输入的PWM波:
              
       
    C、A相MOS管输出:
       

   2、PWM值设为50/255时
     a、模拟比较器的输出:                                             放宽的模拟比较器的输出波形:
                 
       
     b、A相MOS管栅极输入的PWM波:                                          C、A相MOS管输出:
                   

       

3、PWM占空比为90/255时‘
   a、模拟比较器的输出:                                            b、A相MOS管栅极输入的PWM波:
             
   
     
   C、A相MOS管输出:                                               
                   
   
      以上是我测到的波形,观察波形我感觉存在问题的地方有:1、观察mos管栅极输入,波形占1/3,而MOS管的输出有效部分随着PWM占空比的加大前端影响越来越明显,整个有效部分接近1/2;
      希望能够得到大家的帮助!
      再次感谢“写给四轴新人:无感无刷直流电机之电调设计全攻略”的作者!
      再次重申的我的困境:随着PWM占空比的加大,电机出现刺耳的尖锐声,再加大,电机出现堵转现象。
      感谢阿莫!
      求指导!
      谢谢!





   






球球 发表于 2012-12-18 13:19:07

自顶一个求帮助。。求帮助。。

球球 发表于 2012-12-18 13:53:12

坚持不懈的自顶,期待大侠的到来,小弟QQ:490753458,望帮助!

118139 发表于 2012-12-18 14:21:45

今晚我去试一下,半个月前也买了块mk电调板,
烧进去不能转,修改一下代码,恢复它屏蔽掉的test部分的代码,还真能转。
最高只设到pwm=100,电源才2a不够大,速度基本上不去
今晚用大电流的电源试一下,能不能上更高的pwm

118139 发表于 2012-12-18 17:47:50

本帖最后由 118139 于 2012-12-18 17:49 编辑

改了你里面一个代码
设PWM=200
可以运行。。。
再高点230也可以,只是才运行了几分钟,就把我的电源给运行报销了。。
标称12V 14A输出的。。
内置8M的晶振,不能上到32K的PWM吧。


你烧里面的HEX文件看看能不能正常运行

球球 发表于 2012-12-19 09:55:21

118139 发表于 2012-12-18 17:47 static/image/common/back.gif
改了你里面一个代码
设PWM=200
可以运行。。。


谢谢仁兄!
刚刚灌了你的teset.hex进我的板子,仍然是出现了堵转的现象,mos管发烫。你的板子是直接买的板子吗?用我传的那个程序,pwm=200时电机会出现刺耳的声音吗?我这个板子是自己搞的,难道是硬件上有些问题?是不是我电流检测部分的蛇形走线的阻值测的有问题?可是我在换相中断的时候关闭了电流检测,应该没有影响的啊。还有,你的电机是12极的吗?MK程序好像是针对14极的电机设计的,不知这个是不是有影响的。
M8内部8M晶振,定时器不分频,PWM为快速模式,8M/256刚好是32KHZ的,这个我用示波器观测过的。
谢谢!

118139 发表于 2012-12-19 10:16:13

本帖最后由 118139 于 2012-12-19 11:33 编辑

刺耳声音不觉的,电机在高速运行
感觉比我原先的16k的要平滑,振动要小。
板是买现成的,板上
AD的基准电压AREF是取置外置5v
电机是12极。
原版上pwm好像是用相位修正模式的吧,
还没具体细看源码,今天再弄块电源长久试试你那代码。

你那个会不会是在高速时Mos管开关跟不上或是没关尽

球球 发表于 2012-12-19 15:07:59

118139 发表于 2012-12-19 10:16 static/image/common/back.gif
刺耳声音不觉的,电机在高速运行
感觉比我原先的16k的要平滑,振动要小。
板是买现成的,板上


嗯,听你这么一说我想应该是问题出现在硬件上了,下午也买块MK的1.2板子回来看看。
你方便测试下某相MOS管的输出吗?上个图看看,这是资料中说应该出现的波形啊:,我在PWM设为20时接近这样的波形,但是当PWM高于50左右时,就失真了。

118139 发表于 2012-12-19 22:50:21

本帖最后由 118139 于 2012-12-19 22:55 编辑

球球 发表于 2012-12-19 15:07 static/image/common/back.gif
嗯,听你这么一说我想应该是问题出现在硬件上了,下午也买块MK的1.2板子回来看看。
你方便测试下某相MOS ...

我没工具测
你那个程序
pwm=230时运行的样子

http://www.tudou.com/v/e1npDSbr1mI/&rpid=92647848&resourceId=92647848_04_05_99/v.swf

32k比16k平滑的多,我以后也用32k来做
现在的问题是,用大的pwm运行mos管发热太厉害了,手都不能碰
它里面换向是直接换没有延时30度角,这应该也是造成发热的原因吧
我现在正要改成向论坛上其人说的在换向时计时,来记录换向的时间。再来延时30度角换向。

qycc566 发表于 2012-12-21 10:35:01

如果电路是完全和MK的一样的,我记得MK的过零检测电路是每相都有加一个104的电容用来滤波的,这个会导致相位滞后。在电机空载时,转数很高,这时你检测到的过零点不是真实的,然后电机就开始鬼叫接下来就堵转了

armok 发表于 2012-12-21 10:43:01

球球 发表于 2012-12-24 16:49:43

armok 发表于 2012-12-21 10:43 static/image/common/back.gif
给楼主一个机会:

论坛管理文档(1):将会被封锁ID的行为 (版本:2012-12)


什么意思?我哪边违反管理了啊?

球球 发表于 2012-12-24 16:57:20

118139 发表于 2012-12-19 22:50 static/image/common/back.gif
我没工具测
你那个程序
pwm=230时运行的样子


嗯,谢谢,前些日子有事出去了,回来接着搞,打算买个MK的电调过来看看~
页: [1]
查看完整版本: 电调新人求助