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这个例程改动的,当没有把估计的位置和速度反馈到闭环中时证明了位置估计是没问题的呀,为什么反馈回去会出现这么大变化?