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.

[参考译文] TMS320F28379D:为 IPMSM 实现电机查找表的更好方法是什么

Guru**** 2448320 points
Other Parts Discussed in Thread: TMS320F28379D

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1495513/tms320f28379d-what-are-the-better-ways-to-implement-motor-lookup-tables-for-ipmsm

部件号:TMS320F28379D

工具/软件:

Hello Forms、

如何在 TMS320F28379D 控制器中使用 C 在 CCS (LAUNCHPADXL-F28379D) 中针对下表实现双向插值。

IQ 表:

ID 表:

我尝试使用以下步骤来实现下表。
1.查找 REQx 和 ReqY 的边界索引。
2.查找 REQx、ReqY 的边界值。
3.查找 Dx、Dy 和内插值(如下所示)




让 IQ 表中的 P (2900、16.65) 为

DX = 0.8、dy = 0.66、P11 = 145.1、P21= 145.1、P12 = 168.4、 P22 = 168.4.

第一个术语:P11*(1-dy)*(1-DX):

         145.1 *(1-0.66)*(1-0.8)=  36.3

第二个 术语:P12*(1-dy)*(DX) 

         168.1 *(1-0.66)*(0.8)= 42.1

第三个 任期:P21*(dy)*(1-DX):  

         145.1 *(0.66)*(1-0.8)= 36.3

第四 届:P22*(dy)*(DX) 

         168.1 *(0.66)*(0.8)= 42.1


P = 36.3+42.1+36.3+42.1 = 156.7

在没有手动输入的情况下、实施插值的建议方法是什么? 请解释该过程并建议一些用于优化大小的文件格式。

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

    您好、

    我个人对实施不同的查找表内插方法来进行电机控制没有经验(我们在示例解决方案中尚未使用它们)。 我将与一些同事讨论、看看他们是否有意见。

    我找到了这个关于这个主题的旧 TI 文档、参考以下文档可能会很有用: e2e.ti.com/.../bpra046.pdf

    此致、

    Kevin

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

    尊敬的 Kevin:

    感谢您共享 TI 文档。

    如果您遇到您一方的任何其他参考资料、请告知我们。

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

    Soumitri,  

    除了 Kevin 分享的内容之外、我认为 评估插值步骤 1 和步骤 2 的性能会很有趣。 由于 C2000 器件的架构、浮点算术运算的开销相对较低、通常为单周期。 因此,我建议将您的搜索问题转换为浮点运算问题。

    例如、您可以尝试以下方法:

    1.若要根据当前电机转速查找 IQ 表的列、Iq_column =(uint16_t)((current_motor_rpm)* 0.002f);乘法比除法便宜。 因此、将 1/500 转换为 0.002f。

    2.考虑使用一个简单的线性哈希函数,例如 ROW_INDEX = 0.04f * Requested_Torque - 1. 虽然此函数可能会有一些误差、尤其是在边界条件下、由于扭矩与电流的关系曲线具有相当高的线性度、因此插值结果不应具有明显的误差。 我建议您查看一下。

    此致、

    Bhanu

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

    尊敬的 Bhanu:

    感谢您分享的富有洞察力的信息;流程的实施理念听起来很有前景。

    我一直在努力、我也在努力 控制器目前每次迭代需要 300 微秒 。 您是否能够查看该代码并提出任何优化建议?

    此致、

    Soumitri

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

    Soumitri,

    希望您的项目进展顺利。  Bhanu 正在旅行,所以不能再犯。  很遗憾、我们无法进行一般的代码审阅。  如果您有任何具体问题或需要更多信息、请告知我们。

    此致、

    Jason

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

    谢谢 Jason。

    Soumitri、正如 Jason 提到的、我们将无法在此处进行自定义代码审核。 在没有具体细节的情况下、您能否对步骤 1、2 的搜索算法进行评论?

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

    尊敬的 Jason:

    感谢 您的输入。

    此致、  
    Soumitri。

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

    尊敬的 Bhanu:

    根据您对上述算法第 1 步和第 2 步的意见、我能够缩短时间。

    感谢您的支持。

    这就求解了。

    此致、
    Soumitri。