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-F28027:在 Simulink 上同步 ePWM 块

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/788488/launchxl-f28027-syncing-epwm-blocks-on-simulink

器件型号:LAUNCHXL-F28027

您好!

我正在研究一个非常类似于 ePWM 参考指南中的示例"三相交错式直流/直流转换器的控制"的项目、如下所示。  

我有3个 ePWM 模块、其中一个用作主模块、另两个用作从器件、相移为120度和240度。 我希望它们输出完全相同的信号、只是相移。  
我对 ePWM 模块的输入、即从三个 ADC 模块读取的电流值中获得的占空比(全部三个模块只有一个值)、以及通过闭环控制系统对这些模块进行的逐次阐述、由于我的硬件的性质而有所不同。 即使这在与 ePWM 模块相同的频率下发生变化、这两个频率看起来也不同步。 因此,三个 ePWM 模块在不同的时刻(每个时钟都有自己的定时器开始计数->timer=zero 时)读取给定的占空比值。 提供了替代选项、但没有一个选项会放置不同的 ePWM 模块与彼此相关)。 这意味着、如果 ePWM1的定时器启动和 ePWM2的定时器启动之间的占空比发生变化、后者将输出一个不同的 PWM 信号。

是否有方法可以同步所有三个 PWM 模块、以便同时读取占空比值、而不是它们以不同的相位角运行的计时器?

或者,我已经尝试通过同一 ePWM 块(主器件)触发所有3个 ADC 块,这样,当前输入以及占空比的处理后输出值不会在整个 ePWM1定时器周期(主器件)内发生变化。 但是、这种情况不起作用。 ((未使用任何中断选项)

提前感谢您的帮助、

Andrea

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

    安德烈

    您是否改变了 PWM 的频率?

    请注意、更新 PWM 的 CMPx 时、这是已知的 PWM 限制。 您必须定义一个安全周期、在此期间您可以更新 PWM 的值、并更新此周期内的所有 PWM。

    请务必使用影子加载来确保不会错过 CMPx 事件。

    此致、
    Cody

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

    不、我不改变 PWM 频率。

    我不确定这种影子加载是什么或如何激活它、但我确定我使用的设置都不是"立即而不使用影子"、如果这是您所指的。

    我如何定义一个安全周期来更新实际值?

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

    您好!

    请您参考以下帖子、看看它是否有任何线索可供您参考。

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

    安德烈

    通常情况下、用户将确定一个计数器值、已知系统将不受 PWM 配置更改的影响。 例如、如果(TBCTR <= 100)、它们只会更新那里的值、为此、它们读取 TBCTR、然后选择是否更新这些值。

    此致、
    Cody  

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

    您好、Cody、

    感谢您的回复。 如果我可以确保 PWM 函数块仅在计数器周期内的特定时刻更新该值、我会这样做。 遗憾的是、这方面的选项非常有限(CTR =零/周期/等)。 在 ePWM1的 TBCTR=0和 ePWM2的 TBCTR=0之间的任何占空比值变化将只由后者更新、这也会输出一个不同的信号。

    有趣的是、我 µs 使用恰好适合 PWM 周期的重复序列来馈送一个和多个 PWM 函数块(5个值、每个值每五个周期变化一次(=100 μ s、因为 PWM 频率= 10kHz))、如下图所示。  

    结果是、ePWM1 (较低的那个、具有0度移位的主器件)不会始终读取值5或40。 我已经用这个序列确保、如果 PWM 模块在 TBCTR 周期的完全相同点更新值、那么获取值5一次也意味着必须在下一个周期中获取它。  与序列和 PWM 周期是否同步无关、我认为情况应该是这样。
    (我已设置“Reload for Compare B Register”=“Counter equals to zero”)

    令人惊讶的是、ePWM1并不总是读取相同的值。 它似乎遵循5和40的模式、每 X 个周期重复一次、如100个周期。 µs PWM 周期(100 μ s)略小于序列周期、因此向前缓慢移动。

    这些结果使我的这些 PWM 功能块出错。

    此致、

    Andrea

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

    尊敬的 Andrea:

    我们应该能够为您提供帮助、请通过以下方式与我们联系:

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

    安德烈

    Venkatesh 是 Mathworks 专家、他应该能够在 Mathworks 网站上帮助您完成其余的 PWM 配置。

    谢谢、如果可能、请在此处发布该主题的链接、以帮助未来的人们!

    此致、
    Cody  

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

    这很简单。 首先、"主"PWM 的配置如左侧所示。 第二个和第三个 PWM 与第一个 PWM 同步、具有1/3和2/3相移。 就是这样。

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

    我写信给你,但仍未得到答复。

    此致、

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

    我们今天收到了支持渠道的请求。
    我们是否可以通过 MathWorks 支持渠道工作并在此处关闭该主题?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    当然、

    只要您在那里回复。 (:

    此致、

    Andrea