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.

[参考译文] TMS320F28069F:[TMS320F28069F] CTRL_runTraj()未作为源代码打开?

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/667386/tms320f28069f-tms320f28069f-ctrl_runtraj-is-not-opened-as-source-code

器件型号:TMS320F28069F

尊敬的 TI 成员:

我想知道 trajHandle_ID 的 intValue 的更新逻辑、但无法通过搜索源找到。

我想它包含在  CTRL_runTraj()中,并更新 它中 trajHandle_ID 的 intValue

如果是、请告诉我如何手动更新 intValue

此致、

Hae Ryong

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您是对的,函数在 CTRL_runTraj()中被调用以更新 ID intValue。 您可以调用 TRAJ_setIntValue (obj->trajHandle_ID、ID_int_Ref)来手动设置 intValue、其中 obj 是工程中的 Ctrl 对象句柄。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    感谢您的回答。

    我想我需要知道如何计算 ID intValue,以避免与 CTRL_runTraj()设置的手动设置冲突。
    请问如何计算 CTRL_runTraj()中的 ID intValue?

    此致、
    Hae Ryong
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    ID 控制的代码类似于 ramp 控制、如 TRAJ_run ()(可在 traj.h 中找到)。您可以使用 TRAJ_setIntValue 来更改 intValue 而不会发生任何冲突、CTRL_runTraj ()除了 TRAJ_run ()外还具有一些状态控制。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我尝试按如下方式设置 intValue 以限制 refValue。

    //适当时,运行 PID ID 和 IQ 控制器
    if (CTRL_doCurrentCtrl (ctrlHandle))
    {
    _iq refValue;
    _iq fbaValue;
    _iq outMin、outMax;
    
    //读取最大电压矢量以设置电流控制器的适当限制
    _iq maxVsMag = CTRL_getMaxVsMag_pu (ctrlHandle);
    
    //重置当前计数
    CTRL_resetCounter_current (ctrlHandle);
    
    //
    //配置并运行 ID 控制器
    //计算参考值
    refValue = TRAJ_getIntValue (controller_obj->trajHandle_ID)+ CTRL_getid_ref_pu (ctrlHandle);
    if (refValue >_IQ (1.4))
    {
    refValue =_IQ (1.4);
    TRAJ_setIntValue (controller_obj->trajHandle_ID、_IQ (1.4))
    }
    
    //更新 ID 参考值
    EST_updateId_ref_pu (controller_obj->estHandle、refValue);
    
    //获取反馈值
    fbackValue = CTRL_getid_in_pu (ctrlHandle); 

    但是、refValue 返回到其原始值1.88、而不是1.4

    我不认为使用 TRAJ_setIntValue()将 refValue 修改为小值是个好主意。

    您是否有任何想法将 refValue 从1.88降低到1.4或更低的值?