|
本帖最后由 球球 于 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占空比的加大,电机出现刺耳的尖锐声,再加大,电机出现堵转现象。
感谢阿莫!
求指导!
谢谢!
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
阿莫论坛20周年了!感谢大家的支持与爱护!!
曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……
|