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.

[参考译文] LAUNCHXL-F28379D:电机驱动器的 C2000控制环路频率

Guru**** 2589275 points
Other Parts Discussed in Thread: TMDXIDDK379D, C2000WARE

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/957519/launchxl-f28379d-c2000-control-loop-frequency-for-motor-driver

器件型号:LAUNCHXL-F28379D
主题中讨论的其他器件:TMDXIDDK379DC2000WARE

你(们)好

我正在尝试为我的项目构建电机驱动器、我对这个问题有点陌生、也没有经验。 我对控制端和嵌入式端都有几个问题。 如果有经验的人能回答我的问题、我会很感激! 我的问题:1)我开发了一个模型。 使用 FOC 进行位置控制。 我的 PWM 载波频率为10kHz、我的模型的采样时间为10e-5秒 我已经检查了所有3个环路的频率响应。 检查波特图后、我发现电流环路的-3dB 带宽为500Hz、速度环路为150Hz、位置环路为14Hz。 我已经为所有这些带宽开发了 LPF。 借助这些带宽和低通滤波器、我观察到非常好的电流波形、反电动势波形以及速度和位置。 但当我检查其他工业应用时、人们说、例如、对于他们的应用、电流环路控制频率为24kHz、速度为4kHz、位置为2kHz。 对我来说似乎太多了。 这有什么问题? 我是说我从波特图中获得的带宽表示环路的控制环路频率吗? 2) 2)如前所述、模型中的采样时间为10e-5秒、即100 kHz。 当我将模型放入 F2837xD MCU 时、我的所有环路和模型时间步长必须为10kHz。 不是吗? 3) 3)我还遇到了一些有关 Matlab 中 F2837xD 的 FOC 的视频、它们看起来与我的模型稍有不同。 我自己设计了我的所有环路和块、我的意思是我没有使用任何与 F2837xD 相关的块。 完成所有这些步骤后、我将模型构建为 C 代码并进入 F2837xD MCU。 但除此之外、我还看到了一些有关我的应用的视频和文档。 有些人使用 DMC (数字电机控制)和 FCL (快速电流环路)库。 我甚至不会在我的应用中使用它们。 我是否需要这些库? 我之所以提出这个问题、是因为我尝试在 F2837xD 中运行代码、代码在启动几秒后立即中断、并且我遇到了许多与"除法"相关的错误。 正如我说过的、我在 MCU 中以10-5采样时间和10kHz 载波频率运行所有代码。 之后、我减少了采样时间、它看起来正在运行、至少不会中断。 正如我说过的、我对这个应用有些陌生、我的问题似乎太多了、但是如果你能帮我解决我的问题、我会很感激! 谢谢!

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

    要获得更高的外部环路带宽、内部环路应具有支持性。 我是说、内部环路应该具有更高的带宽。 对于电流环路、可使用 FCL 实现4kHz 带宽。 使用 FCL 时、用于控制延迟的采样大约为1微秒、可能会提供四分之一的电流环路带宽。 对于速度环路和位置环路、电机应支持更高的带宽、并受到系统惯性的严重影响。 如果电机的惯性较高、则速度环路甚至不能达到1KHz、位置环路则会进一步降低。

    建议查看有关 FCL 的 TI 用户指南以了解详情。

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

    你(们)好 我有相同的问题、但我有点困惑。 我已经检查了所有环路的所有波特图、并根据-3dB 查看了带宽。 据我了解、这些是我的控制环路频率。 例如、我在波特图中看到了电流环路的1500Hz 带宽。 它表示我在 MCU 中此环路的采样时间。 我是对的吗?

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

    是的、采样时间在这里有一定的影响。

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

    你(们)好 感谢您的回答。 对我来说、这似乎更清楚、但我无法理解您所说的"采样频率的1/4电流环路带宽"的含义。 此外、我已经看到一些应用、BLDC-FOC、就我所看到的、其中一个应用的电流控制环路看起来是24kHz。 这是一个很大的价值。 因此、据我所知、PWM 载波频率必须至少为24kHz。 如何实现这些环路速度? FCL 足够了吗?

    此外、我看到了一些代码、它们使用 DMC (数字电机控制)库块。 我已将代码编写为 C 代码。 我是说我的所有 clarkd、Park、逆向 Park、PID 和 LPFS 都是 C 代码。 我还应该使用这个 DMC 块吗? 使用它们有什么好处? 谢谢!

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

    因此、据我了解、LPF 频率不等于我的控制环路采样时间。 我是说、如果我的 LPF 电流截止频率为1500Hz、我能否在 MCU 中获得控制环路采样时间1/1500 = 6.66e-4? 或者不是? 如果没有、如何计算每个控制环路的采样时间?

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

    电流环路带宽是控制器能够在3dB 或180度相位滞后范围内响应的环路输入信号的最大频率。 对于您提到的示例、对于24kHz 电流环路带宽、PWM 频率应接近100KHz。 FCL 非常适合此类高带宽 Reqs。

    您可以使用自己的代码。 DMC 代码只是入门参考、并不一定是最佳的代码编写形式。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    感谢您的回答。 根据我的理解、如果我的电流环路带宽为24kHz、C2000中电流环路的采样时间应为24kHz。 我是对的吗? 我的意思是、我的电流环路的运行速度应该在 C2000中处于这个级别。控制环路带宽和环路工作速度之间的关系、例如采样时间、让我感到困惑。

    我已经了解了 FCL、但我找不到任何示例代码和文档看起来太短。 您能否与我分享 FCL 的代码或示例?

    此外、我已经看到 FCL 使用的是 SVPWM、但我使用的是 SPWM。 我能否在 FCL 中集成我自己的 SPWM 代码?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    不需要、对于24kHz 带宽、您至少需要两倍的样本才能捕获信号。 但是、稳定性和相位裕度限制将引发对更高采样频率的需求。 使用 FCL、我们可以用4次进行管理。

    MCSDK 中提供了用于 FCL 的示例、请查看中的项目  

    C:\ti\c2000\C2000Ware_MotorControl_SDK_3_00_01_00\solutions\tmdxiddk379d\f2837x\ccs

    SPWM 也适用于 FCL。

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

    非常感谢!

    我的问题得到了解决。

    顺便说一下、是否可以将我自己的 SPWM 代码集成到 FCL 中? 或者 Hoıw 我能否将示例 SPWM 代码集成到 FCL 中? 是否有任何相关示例或指南?

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

    您可以调用 PWM 例程、而不是 svpwm 例程。

    现在、我将关闭这个线程。