Part Number:LAUNCHXL-F28069M
使用lab13b位置环例程;驱动一个0.18mH的电机,FOC频率30k;常常出现报错 2002 ,有什么应对措施吗
Green Deng:
你好,我会与电机控制的专家沟通一下这个错误的原因和解决方案,还请耐心等待。
,
Green Deng:
你好,对方回复:
报错的原因应该是位置误差超过最大值。 你可以增加带宽以减少位置误差,或者使轮廓速度、加速度和加加速度变慢。
有关为 SpinTAC 定义的错误的更多详细信息,请参阅 Instaspin 用户指南。http://www.ti.com/lit/ug/spruhj1h/spruhj1h.pdf
,
Shaoxiong Guo:
好的,谢谢;另,再请教一下,
请问使用lab13b位置环例程是不是不需要整定Iq的参考值呢? 那么力矩环参考输出是怎么来的呢
,
Green Deng:
Lab13b使用位置控制,参考转矩电流来自SpinTAC位置控制回路的输出,所以不需要参考Iq,只需要按照实验室指南配置SpinTAC移动参数。
,
Shaoxiong Guo:
请问lab13b运行时,有时因为FOC频率不足,会出现报错:frequency low;
请问代码程序中是怎么判断出FOC频率不足的呢?这种判断的依据是什么
有相应的数学公式吗,这样话根据自己的电机实际参数,可以更好适配给出FOC的频率
,
Green Deng:
错误代码是多少?正常的话错误描述都可以在这个文档里面找到,但是里面没有frequency low的说明https://www.ti.com/lit/ug/spruhj1h/spruhj1h.pdf
,
Shaoxiong Guo:
USER_ErrorCode_ctrlFreq_Hz_low错误代码;上述userguide手册中没有找到相关描述;
请问代码程序中是怎么判断出FOC频率不足的呢?这种判断的依据是什么
有相应的数学公式吗,这样话根据自己的电机实际参数,可以更好适配给出FOC的频率
,
Green Deng:
我去咨询一下instaSPIN的专家,看看他是怎么说的
,
Green Deng:
可以在 user.c 中找到以下代码,并相应地更改相关参数以避免错误。
if(((float_t)USER_CTRL_FREQ_Hz < USER_IQ_FULL_SCALE_FREQ_Hz) ||((float_t)USER_CTRL_FREQ_Hz < USER_OFFSET_POLE_rps) ||((float_t)USER_CTRL_FREQ_Hz < 250.0) ||((float_t)USER_CTRL_FREQ_Hz <= (2.0 * USER_IQ_FULL_SCALE_FREQ_Hz * USER_MOTOR_MAX_CURRENT / (128.0 * USER_IQ_FULL_SCALE_CURRENT_A)))){USER_setErrorCode(pUserParams, USER_ErrorCode_ctrlFreq_Hz_Low);}
if((USER_MOTOR_Rs != 0.0) && (USER_MOTOR_Ls_d != 0.0) && (USER_MOTOR_Ls_q != 0.0)){if(((float_t)USER_CTRL_FREQ_Hz <= (USER_MOTOR_Rs / (USER_MOTOR_Ls_d + 1e-9))) ||((float_t)USER_CTRL_FREQ_Hz <= (USER_MOTOR_Rs / (USER_MOTOR_Ls_q + 1e-9)))){USER_setErrorCode(pUserParams, USER_ErrorCode_ctrlFreq_Hz_Low);}}
,
Shaoxiong Guo:
依据您的指点,我已经找到了关键影响的判断条件;
((float_t)USER_CTRL_FREQ_Hz <= (USER_MOTOR_Rs / (USER_MOTOR_Ls_d + 1e-9))) || ((float_t)USER_CTRL_FREQ_Hz <= (USER_MOTOR_Rs / (USER_MOTOR_Ls_q + 1e-9)))
满足上述条件中一条就会出现FOC频率过低的error
然而我先现在手上有一款电机参数:Rs=15ohm Ls=37uH
这样就要求我的USER_CTRL_FREQ_Hz>= 15/(10e-9+37e-6)=405K
跑这么高的FOC控制频率显然是不可能的,请问为了使InstaSPIN电机库可以控制,我可以在电机的三相环路间人的串入电感器吗?或者您那边是否有相似的应用案例呢?想看看您那边有没更好的建议。