基于28335异步电机矢量控制研发
本帖最后由 topkeeping 于 2013-9-11 20:17 编辑条件:采用增量式编码器(只有ABZ信号,没有UVW);基于28335EQEP的速度和位置控制
1: EQEP配置:
EQep1Regs.QUPRD=Period_SD;
EQep1Regs.QDECCTL.bit.QSRC=00; // QEP quadrature count mode
EQep1Regs.QEPCTL.bit.FREE_SOFT=2;
EQep1Regs.QEPCTL.bit.PCRM=00; // PCRM=00 mode - QPOSCNT reset on index event
EQep1Regs.QEPCTL.bit.UTE=1; // Unit Timeout Enable
EQep1Regs.QEPCTL.bit.QCLM=1; // Latch on QPOSCNT :0, unit time out :1
EQep1Regs.QPOSMAX=0xffff;//9999;
EQep1Regs.QEPCTL.bit.QPEN=1; // QEP enable
EQep1Regs.QCAPCTL.bit.UPPS=0; // 1/1 for unit position
EQep1Regs.QCAPCTL.bit.CCPS=0; // 1/1 for CAP clock
EQep1Regs.QCAPCTL.bit.CEN=1; // QEP Capture Enable
EQep1Regs.QPOSCNT=0;
EQep1Regs.QCTMR=0;
EQep1Regs.QPOSLAT=0;
EQep1Regs.QCTMRLAT=0;
EQep1Regs.QCPRD=0xffff;
2:速度采样:无论高低速都采用M法
if(EQep1Regs.QFLG.bit.UTO==1)
{
X=EQep1Regs.QPOSLAT;
。。。。。。
T = EQep1Regs.QCTMRLAT;
}
EQep1Regs.QCLR.bit.UTO=1;
求助1:这个T的选择大家是否用的固定时间,即根据QUPRD算出的时间;
求助2:关于EQep1Regs.QPOSMAX的选取,如果使用的编码器脉冲是10000(4倍频以后),那么这个值大家选取的是9999还是65535.
求助3:低速下大家是否使用的T法来估算,另外在零速时,控制效果怎么样,电机是否不转,即固定输出一个直流量。这一点很重要,因为加进去位置环控制后,必须能够保证达到设定位置后,电机能够停止。
求助4:关于位置控制
对于异步电机的位置控制而言,是否仍然像永磁同步伺服一样,首先需要初始位置定位呢,但是编码器没有UVW该如何定位,仅仅使用Z脉冲吗。
我的理解是异步电机的磁链角是需要估算的,即电机运行后才开始估算,而同步电机的磁链角是要在电机运行之前调整好,因为转子的磁极NS是固定的(永磁铁),而异步机转子磁场是由于切割磁感线才产生的,如果是这样的话,是不是就不需要初始位置定位了,即找机械零点。
如果需要用Z脉冲找零点,是不是就是上电后先让电机运动,当发现Z脉冲时,让计数器清零。
另外附件是《伺服电机编码器与转子磁极相位对齐方法[原创] by波恩》希望大家看看能讨论一下。
你的波形是闭环矢量的吧? zhangningwy 发表于 2013-9-11 18:04
你的波形是闭环矢量的吧?
对,是闭环的 楼主,你的转子磁链给定值如何计算的?
15202499598 发表于 2019-7-15 19:18
楼主,你的转子磁链给定值如何计算的?
磁链可以用电压与转速比值求 多谢分享
页:
[1]