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.

[参考译文] TMS320F28069M:力角的最大电流设置

Guru**** 2529560 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1030734/tms320f28069m-maximum-current-setting-for-force-angle

器件型号:TMS320F28069M

各位专家、您好!

我的客户想要设置力角处的最大电流。

项目是 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);

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你(们)好,罗圣

    感谢您的信息。

    我将通过此信息联系客户。

    此致、
    Sasaki

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、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

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您可以在条件代码上添加一个时间延迟、如下所示、以确保力角过程完成。

    if (gMotorVars.Speed_krpm<_IQ (0.1))&&(DELAY_TIME > DELAY_TIME_SET)

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    感谢您的支持。

    我应该为 DELAY_TIME  DELAY_TIME_SET 设置哪些值

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    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 (ctrlHandle、IQ_Max_pu);

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你(们)好

    我从客户那里获得了其他信息。

    客户不会通过更改 CTRL_setSpdMax ()的值将强制角电流限制为10A。 您对此原因有什么了解吗?

    此外、对于以下被认为与最大输出电流相关的变量、
    请告诉我它用于什么角色。

    • VelCtlHandle  cfg.OutMax、
    • GMotorVars.SpinTAC.VelCtlOutputMax_A

    此致、
    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"]是否正确地按如下方式更改 VelCtlOutMax_A 以及 IQ_Max_FORCE_pu?

    正确。

    [引用 userid="7882" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1030734/tms320f28069m-maximum-current-setting-for-force-angle/3835325 #3835325"]可以将此值降低多少?

    这取决于电机和增加的负载。 您可能会尝试先使用最大电流的一半、然后根据测试调整该值。