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.

[参考译文] TMS320F2800135:用于 IPMSM 电机的 MTPA

Guru**** 2053140 points
Other Parts Discussed in Thread: C2000WARE-MOTORCONTROL-SDK
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1387613/tms320f2800135-mtpa-for-ipmsm-motor

器件型号:TMS320F2800135
主题中讨论的其他器件:C2000WARE-MOTORCONTROL-SDKC2000WARE

工具与软件:

你好、我有一个凸极比约为2的电机。 我是通过使用 LCR 表并在整个电气旋转过程中找到最小和最大 Ls 来确定这一点的。 TI 文档(SPRACF3)指出 Ld > Lq、而所有其他来源指出 Lq > Ld 使用 TI 的 LD > LQ 会导致 MTPA kconst 值为负(obj->kconst = 0.25 *(flux_wb /(ls_q_H - ls_d_H);)、当 is_ref_a 为正时 、该值在后续计算中不起作用:obj->gconst = rad->kconst /(obj->is_ref_a)、然后(obj->gconst = gaclest-);(obj->gconst = gacle-);然后(objf ->gconst (obj-)

因此、我交换了电机参数、使 Lq 的电感值更大、Ld 的电感值更小、这样就修复了 NaN 问题。 不过、尽管我的 IPMSM 电机的凸极比约为2、这相当高、但与额定磁通(0.02V/Hz 或约0.0032Wb)相比、电感非常小(0.000010uH 至0.000020uH)。 计算结果导致 gconst 约为62、这只会导致角度发生大约1度的变化、因此与 IQ_ref 相比、Id_ref 值非常小 我的 IPMSM 是否确实不会因高磁通电感比而明显受益于 MTPA?

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

    可能是一个拼写错误。 电机控制 SDK 示例实验中的 MTPA 算法使用 Lq>Ld 来计算注入电流或矢量角度。

    [报价 userid="614577" url="~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1387613/tms320f2800135-mtpa-for-ipmsm-motor ]我的 IPMSM 是否因为高磁通电感比而根本无法从 MTPA 中显著获益?

    不仅是 MTPA、您可能还必须为此添加去耦。

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

    感谢您的响应。 我将负责实现 DQ 去耦。 是否有任何示例代码可供我用作参考?

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

    尚未供参考。 你可以在网站上找到很多论文,并在你的项目中实施。

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

    我懂了。 我感到惊讶的是、这并未包含在基本代码中、这是因为它易于添加、并且提供了一种更"完整"的控制解决方案、其中有可能提高某些电机的性能。 与其他功能一样、可以使用编译器预定义符号来启用该功能。 此外、对于现有的前馈术语、代码似乎已"预接线"。 在任何情况下、这对您来说是否正确?

    // obj->Vdq_FFWD_V.value[0]= 0.0f;
    // obj->Vdq_FFWD_V.value[1]= 0.0f;

    obj->Vdq_FFWD_V.value[0]= obj->speed_rps * objUser->Ls_q_H * obj->Idq_in_A.value[1];
    obj->Vdq_FFWD_V.value[1]=-obj->speed rps *(objUser->Ls_d_H * obj->Idq_in_value[0]+ oba.User->motor_ratgpu Flux_Wb);

    谢谢。

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

    如下所示、已在通用电机实验室中实现了 DQ 去耦方法、但尚未在 IPM 电机上进行验证和测试。 您可以参考它。

    #if defined (MOTOR1_DECOUP)
    if ((obj->flagMotorIdentified == true)&&(obj->flagEnableDecoupleCtrl == true))

    float32_t speed_rps = obj->speed_Hz * MATH_two_pi;//单位为 rad/s

    obj->V_decoop_max_V = obj->adcData。 VdcBus_V * objSets->V_decop_sf;
    obj->V_decop_min_V =-obj->V_decop_max_V;

    //- WE*LQ*Iq, SI 单位: WE(rad/s)*L(H)*I(A)
    obj->Vdq_decop_V.value[0]=
    _fsat (-speed_rps * objSets->Ls_q_H * obj->Idq_in_A.value[1]、
    obj->V_decop_max_V、obj->V_decop_min_V);

    //+W*( LD*ID+FLUX ), SI 单位: WE(rad/s)*L(H)*I(A), Flux(WB)
    obj->Vdq_decop_V.value[1]=
    __fsat (speed_rps *(objSets->ls_d_H * obj->Idq_in_A.value[0]+ obj->flux_wb)、
    obj->V_decop_max_V、obj->V_decop_min_V);
    }
    设计

    obj->Vdq_disapp_V.value[0]= 0.0f;
    obj->Vdq_disapp_V.value[1]= 0.0f;
    }

    obj->Vdq_FFWD_V.value[0]+= obj->Vdq_disapp_V.value[0];
    obj->Vdq_FFWD_V.value[1]+= obj->Vdq_disapp_V.value[1];
    #endif // MOTOR1_DECOUP

    可通过以下链接在实验用户指南中找到有关该实验的详细介绍。

    C2000WARE-MOTORCONTROL-SDK: https://www.ti.com/tool/C2000WARE-MOTORCONTROL-SDK

    通用项目和实验用户指南: https://www.ti.com/lit/spruj26

    文件夹下的示例实验项目:C:\ti\c2000\C2000 Ware_Motor 200241_SDK_ \solutions\universal_motorcontrol_lab\f28002x

    或                                                        C:\ti\c2000\C2000 Ware_Motor SDK_ \solutions\universal_motorcontrol_lab\f28003x

    或                                                        C:\ti\c2000\C2000 Ware_Motor SDK_ \solutions\universal_motorcontrol_lab\f280013x

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

    感谢您学习代码片段。 我已下载最新的 MotorControl SDK (C2000SDK_362_SDK_5_02_00_00)、但在 Ware_Motor 的 universal_motorcontrol_lab 中没有看到该内容、但我会添加您发布的内容。 谢谢!