各位专家、您好!
我的客户想要设置力角处的最大电流。
项目是 lab10b。
是否可以与此项目中的 USER_MOTOR_MAX_CURRENT 分开设置强制角下的最大电流?
他们希望知道如何将电流设置为低于 USER_MOTOR_MAX_CURRENT 的强制角。
此致、
Sasaki
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
各位专家、您好!
我的客户想要设置力角处的最大电流。
项目是 lab10b。
是否可以与此项目中的 USER_MOTOR_MAX_CURRENT 分开设置强制角下的最大电流?
他们希望知道如何将电流设置为低于 USER_MOTOR_MAX_CURRENT 的强制角。
此致、
Sasaki
是的、 USER_MOTOR_MAX_CURRENT 适用于所有正在运行的过程。 您可能会在 lab10b.c 中找到以下代码
_IQ 为_Max_squared_pu =_IQ ((USER_MOTOR_MAX_CURRENT* USER_MOTOR_MAX_CURRENT)/\
(USER_IQ_FULL_SCALE_CURRENT_A* USER_IQ_FULL_SCALE_CURRENT_A);
_iq ID_squared_pu =_IQmpy (CTRL_getid_ref_pu (ctrlHandle)、CTRL_getid_ref_pu (ctrlHandle));
//考虑 IQ^2+ID^2 =为^2
IQ_Max_pu =_IQsqrt (IT_MAX_squared_pu-ID_squared_pu);
//设置新的最大轨迹
CTRL_setSpdMax (ctrlHandle、IQ_Max_pu);
然后添加一些如下代码、并将电流设置为 IQ_Max_FORCE_pu 以强制运行。
if (gMotorVars.Speed_krpm<_IQ (0.1))
{
CTRL_setSpdMax (ctrlHandle、IQ_Max_FORCE_pu);
}
其他
{
CTRL_setSpdMax (ctrlHandle、IQ_Max_pu);
}
您好、Luo-San、
客户已添加以下代码。 它们希望以10A 的强制角抑制电流。
USER_MOTOR_MAX_CURRENT 为20A。
--------------------------------------
_IQ 为_Max_squared_pu =_IQ ((USER_MOTOR_MAX_CURRENT* USER_MOTOR_MAX_CURRENT)/\
(USER_IQ_FULL_SCALE_CURRENT_A* USER_IQ_FULL_SCALE_CURRENT_A);
_iq ID_squared_pu =_IQmpy (CTRL_getid_ref_pu (ctrlHandle)、CTRL_getid_ref_pu (ctrlHandle));
//考虑 IQ^2+ID^2 =为^2
IQ_Max_pu =_IQsqrt (IT_MAX_squared_pu-ID_squared_pu);
_iq is_Max_squared_force_pu =_iq (10*10)/ \ (USER_IQ_FULL_SCALE_CURRENT_A* USER_IQ_FULL_SCALE_CURRENT_A);
IQ_Max_force_pu =_IQsqrt (iS_Max_squared_force_pu-ID_squared_pu);
if (gMotorVars.Speed_krpm<_IQ (0.1))
{
CTRL_setSpdMax (ctrlHandle、IQ_Max_FORCE_pu);
}
其他
{
CTRL_setSpdMax (ctrlHandle、IQ_Max_pu);
}
--------------------------------------
即使设置了 IQ_Max_FORCE_PU、它也会增加到接近 USER_MOTOR_MAX_CURRENT 中设置的电流值。
上述代码描述中是否存在错误?
此致、
Sasaki
DELAY_TIME 是一个计时器计数器、需要在每个启动电机上清除。 DELAY_TIME_SET 是更改最大电流的延迟时间。
DELAY_TIME_SET 取决于 gMotorVars.MaxAccel_krpmps、 USER_ZEROSPEEDLIMIT 和 USER_FORCE_ANGER_FREQ_Hz 的值。 您可以 根据电机和系统调整 DELAY_TIME_SET 的值。
您好、Luo-San、
感谢你的答复。
我还有一个问题。
我希望力角处的电流为10A。 以下代码是否正确?
_iq is_Max_squared_force_pu =_iq((10*10)/\
(USER_IQ_FULL_SCALE_CURRENT_A* USER_IQ_FULL_SCALE_CURRENT_A);
IQ_Max_force_pu =_IQsqrt (iS_Max_squared_force_pu-ID_squared_pu);
是否需要上述代码以外的任何代码来将强制角上的最大电流设置为10A?
此致、
Sasaki
你(们)好
我从客户那里获得了其他信息。
客户不会通过更改 CTRL_setSpdMax ()的值将强制角电流限制为10A。 您对此原因有什么了解吗?
此外、对于以下被认为与最大输出电流相关的变量、
请告诉我它用于什么角色。
此致、
Sasaki
是的、您可以尝试更改 gMotorVars.SpinTAC.VelCtlOutputMax_A 的值以限制 IQ 参考。
//设置 IQ 参考的最大值和最小值
STVELCTL_setOutputMaxums (stObj->velCtlHandle、_IQmpy (gMotorVars.SpinTAC.VelCtlOutputMax_A、_IQ (1.0/USER_IQ_FULL_SCALE_CURRENT_A))、_IQmpy (gMotorVars.SpinTAC.VelCtlOutputMin_A、_A);_1.0_USER_SCALE_CURRENT_A)
您好、Luo-San、
感谢您的特殊支持。
客户现在可以通过更改"gMotorVars.SpinTAC.VelCtlOutputMax_A"值来限制强制角期间的电流。
他们还有其他问题。
如下所示、更改 VelCtlOutMax_A 以及 IQ_Max_FORCE_pu 是否正确?
if (gMotorVars.Speed_krpm<_IQ (0.1))
{
CTRL_setSpdMax (ctrlHandle、IQ_Max_FORCE_pu);
gMotorVars.SpinTAC.VelCtlOutputMax_A = _IQ (10);
gMotorVars.SpinTAC.VelCtlOutputMin_A = _IQ (-10);
}
其他
{
CTRL_setSpdMax (ctrlHandle、IQ_Max_pu);
gMotorVars.SpinTAC.VelCtlOutputMax_A = _IQ (20);
gMotorVars.SpinTAC.VelCtlOutputMin_A = _IQ (-20);
}
此外、如果强制角的电流降低、如果 USER_MOTOR_Rs 的值偏离、则不太可能发生启动故障。
该值可以降低多少?
他们想知道是否有设置该值的标准。
此致、
Sasaki
正确。
[引用 userid="7882" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1030734/tms320f28069m-maximum-current-setting-for-force-angle/3835325 #3835325"]可以将此值降低多少?这取决于电机和增加的负载。 您可能会尝试先使用最大电流的一半、然后根据测试调整该值。