用的motorware中lab13e的程序,传感器采用旋转变压器,解码芯片用的AD2S1205,把AD2S1205的A,B,NM信号接F28069的QEP端口,现在的问题是:
1.不能保证电机每次都能可靠启动,上次还运行正常的,断电重新上电,给转速后电机就有一定几率不能运转(gMotorVars.SpinTAC.PosCtlErrorID=2002),只要上电运行正常的,反复开关使能或设定不同转速都能正常工作,只要上电第一次不能正常工作的,就永远不能正常运转,不知道是什么原因?
2.在电路上,我通过SPI也在读取AD2S1205解码后的角度,但这个角度变化是每转一圈角度值从0~4095变化的,而QEP采集的角度是和电机级数有关的,如5级电机,电机每旋转一圈角度从0~1.0变化5次,问题是我想用SPI读到的角度替换QEP的角度,我该怎么做呢?
请TI的工程师或大师帮忙解惑,谢谢!
user524568:
TI的工程师能帮忙解答吗?
我试着这样改enc.enc_elec_angle=_IQ((float_t)ad2s_angle/4096.0);//ad2s_angle是SPI测得的角度,电机无法启动.
用的motorware中lab13e的程序,传感器采用旋转变压器,解码芯片用的AD2S1205,把AD2S1205的A,B,NM信号接F28069的QEP端口,现在的问题是:
1.不能保证电机每次都能可靠启动,上次还运行正常的,断电重新上电,给转速后电机就有一定几率不能运转(gMotorVars.SpinTAC.PosCtlErrorID=2002),只要上电运行正常的,反复开关使能或设定不同转速都能正常工作,只要上电第一次不能正常工作的,就永远不能正常运转,不知道是什么原因?
2.在电路上,我通过SPI也在读取AD2S1205解码后的角度,但这个角度变化是每转一圈角度值从0~4095变化的,而QEP采集的角度是和电机级数有关的,如5级电机,电机每旋转一圈角度从0~1.0变化5次,问题是我想用SPI读到的角度替换QEP的角度,我该怎么做呢?
请TI的工程师或大师帮忙解惑,谢谢!
Eric Ma:
回复 user524568:
“我试着这样改enc.enc_elec_angle=_IQ((float_t)ad2s_angle/4096.0);//ad2s_angle是SPI测得的角度,电机无法启动.”
Eric:
我的建议是,先跑一下无传感的电机控制算法,那里面会有估算的电机电角度。同时跑一下你SPI测试出来的电角度,对比一下是否一致,如果一致,那么就可以切换过来,个人感觉应该是目前的电角度转换出现问题。
用的motorware中lab13e的程序,传感器采用旋转变压器,解码芯片用的AD2S1205,把AD2S1205的A,B,NM信号接F28069的QEP端口,现在的问题是:
1.不能保证电机每次都能可靠启动,上次还运行正常的,断电重新上电,给转速后电机就有一定几率不能运转(gMotorVars.SpinTAC.PosCtlErrorID=2002),只要上电运行正常的,反复开关使能或设定不同转速都能正常工作,只要上电第一次不能正常工作的,就永远不能正常运转,不知道是什么原因?
2.在电路上,我通过SPI也在读取AD2S1205解码后的角度,但这个角度变化是每转一圈角度值从0~4095变化的,而QEP采集的角度是和电机级数有关的,如5级电机,电机每旋转一圈角度从0~1.0变化5次,问题是我想用SPI读到的角度替换QEP的角度,我该怎么做呢?
请TI的工程师或大师帮忙解惑,谢谢!
user524568:
回复 Eric Ma:
谢谢Reic的回复!
估算的电角度是通过angle_pu = EST_getAngle_pu(obj->estHandle)计算的吗?
我观察即使电机不转angle_pu的值也不停的在变化,是什么原因呢?
而用SPI和QEP的值是一样的,电机不转值也不变,它们怎么进行转换呢?