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.

[参考译文] TMS570LS3137:Hercules Motorware Clarke 变换

Guru**** 2482105 points
Other Parts Discussed in Thread: MOTORWARE, TMS570LS3137

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/712810/tms570ls3137-hercules-motorware-clarke-transformation

器件型号:TMS570LS3137
主题中讨论的其他器件:MOTORWARE

大家好、我正在尝试了解 Hercules Motorware 的 clarke.h 库。 为了了解 Clarke 的技术背景、我遵循"数字电机控制软件库:目标独立数学块 v1.3.pdf"(用于 C2000)。 以下是此 pdf 中的转换公式:  

但在 Hercules Motorware clarke.h 第139行中、Ibbeta 转换不会乘以 sqrt (3)。  这种差异的原因是什么?

顺便说一下、在后续论坛上、asaygl  和  都提到了这个问题。

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

    是的、正如海晓所确认的、需要乘以1/sqrt (3)。

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

    那么这是一个错误吗?

    TMS570LS3137_sensored_speed_SMO 还使用 Hercules Motorware Clarke 库、并且两个比例因子(alpha_SF 和 beta_SF)都在 ctrl.c 中设置为1.0

     

    在 Clarke.h 中:

    
    
    内联 void clark_run_twoInput (clarke_handle、const MATH_vec2 * pInVec、MATH_vec2 * pOutVec)
    {
    clark_Obj * clarkeInput =(clark_Obj *) clarkeHandle;
    
    float beta_SF = clark->beta_SF;
    
    
    pOutvec->value[0]=(clark_Outvec<0]->Vreturn
    
    
    
    
    =(*)<pvec<vec<pvec<v0]<vec<p0]<vec<v0]<v0]<p&vec<vert_value=[0]<vert_value=[0]<vert_[vert_value])<vert<vert<vert 

    在 ctrl.c 中:

     

    Clarke_setNumSensors (Ctrl->clarkeHandle, 2);
    Clarke_setScaleFactors (Ctrl->clarkeHandle,(1.0),(1.0);

     

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    是的、这是用于计算 Ibeta 的公式中的一个错误。

    此致、
    Sunil