TI工程师,
您好!
我在使用28377sLaunchPad+DRV8301进行无位置传感器开发,程序是在有位置传感器例程MonoMtrServo_377s(参考了2803x的PM_Sensorless例程)上改的,将Buildlevel设置为4时,此时系统为速度电流双闭环控制,同时通过ADC采样出电压和电流信息,使用SMO_MACRO函数进行位置估计,使用SE_MACRO解算出速度,将估计的位置和速度与实际的位置速度对比,如下图所示:
图中上面两个是实际的位置和速度,下面是估计的位置和速度,感觉效果挺好的,误差也很小。
但是当把估计的位置和速度反馈到闭环控制中去代替实际位置速度时,整个就失控了。
如果只把估计位置反馈到Park,ipark变换,速度反馈还用实际速度,电机会反向且比速度设定值大很多旋转;
如果把估计位置和速度都反馈,电机就会因估计的速度超出范围而停止,下图左边为估计的速度和位置,右边为实际的速度和位置:
这是怎么造成的呢?我参考了C:\ti\controlSUITE\development_kits\DRV830x-HC-C2-KIT_v105\PM_Sensorless这个例程改动的,当没有把估计的位置和速度反馈到闭环中时证明了位置估计是没问题的呀,为什么反馈回去会出现这么大变化?
Igor An:个人认为出现这种现象应该是SMO估算器所用的输入信息,电流,电压有符号反向的问题。或者说估算器的输入信息正确,但电流环参考符号反向了。由于SMO是用pwm信号拟合的电压,所以在用外部传感器时,利用外部传感器所做的闭环产生的pwm拟合的电压供SMO计算是正确的,但一旦用SMO自己的结构,出来的值应该就反向了。
这问题应该就是一个符号的问题。可以尝试在Iq reference上加负号,或者在pwm 拟合电压处加负号,应该就可以解决该问题。
如果该贴帮您解决了疑惑,请点为建议答案