自己根据TI的例程写了个永磁同步电机的矢量控制程序。先用了个小的伺服电机测试,直流母线电压给100V左右。在测试过程发现几个问题:
第一次测试时,电机无反应,在进入PWM中断后,电机会抖动一下,并没有转动。在交换了电机的其中两相后,电机能够转动。
但是交换相序前后,转子定位都没有实现。调过转子定位,电机转起来的时候卡顿感也很强烈,而且转速也对应不上。请问有可能是什么原因造成的?下面贴上转子定位的程序。转子定位没有在PWM中断中做,而是单独做了个子程序进行。
void LockRotor() {Udq_to_Ualphabeta.Ds = 200;//转子定位给定初始d轴电压为60VUdq_to_Ualphabeta.Qs = 0;//q轴电压给定为0Udq_to_Ualphabeta.theta = 0;//转角给定为0三个参数给定可以得到一个确定的磁链Udq_to_Ualphabeta.calc(&Udq_to_Ualphabeta);Svpwm.Ualpha = Udq_to_Ualphabeta.Alpha;Svpwm.Ubeta = Udq_to_Ualphabeta.Beta;Svpwm.Vdc = 540;//直流母线电压Svpwm.T = Ts;Svpwm.calc(&Svpwm);epwm_init.Duty1A = Svpwm.Tcmpa;epwm_init.Duty2A = Svpwm.Tcmpb;epwm_init.Duty3A = Svpwm.Tcmpc;epwm_init.update(&epwm_init);LockRotor_OK_flag = 1; }
Jason CHOU:
希望了解的前辈们可以指点一二