电调新人求助
本帖最后由 球球 于 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占空比的加大,电机出现刺耳的尖锐声,再加大,电机出现堵转现象。
感谢阿莫!
求指导!
谢谢!
自顶一个求帮助。。求帮助。。 坚持不懈的自顶,期待大侠的到来,小弟QQ:490753458,望帮助! 今晚我去试一下,半个月前也买了块mk电调板,
烧进去不能转,修改一下代码,恢复它屏蔽掉的test部分的代码,还真能转。
最高只设到pwm=100,电源才2a不够大,速度基本上不去
今晚用大电流的电源试一下,能不能上更高的pwm 本帖最后由 118139 于 2012-12-18 17:49 编辑
改了你里面一个代码
设PWM=200
可以运行。。。
再高点230也可以,只是才运行了几分钟,就把我的电源给运行报销了。。
标称12V 14A输出的。。
内置8M的晶振,不能上到32K的PWM吧。
你烧里面的HEX文件看看能不能正常运行
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 11:33 编辑
刺耳声音不觉的,电机在高速运行
感觉比我原先的16k的要平滑,振动要小。
板是买现成的,板上
AD的基准电压AREF是取置外置5v
电机是12极。
原版上pwm好像是用相位修正模式的吧,
还没具体细看源码,今天再弄块电源长久试试你那代码。
你那个会不会是在高速时Mos管开关跟不上或是没关尽 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: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度角换向。 如果电路是完全和MK的一样的,我记得MK的过零检测电路是每相都有加一个104的电容用来滤波的,这个会导致相位滞后。在电机空载时,转数很高,这时你检测到的过零点不是真实的,然后电机就开始鬼叫接下来就堵转了 armok 发表于 2012-12-21 10:43 static/image/common/back.gif
给楼主一个机会:
论坛管理文档(1):将会被封锁ID的行为 (版本:2012-12)
什么意思?我哪边违反管理了啊? 118139 发表于 2012-12-19 22:50 static/image/common/back.gif
我没工具测
你那个程序
pwm=230时运行的样子
嗯,谢谢,前些日子有事出去了,回来接着搞,打算买个MK的电调过来看看~
页:
[1]