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.

[参考译文] 微型逆变器中过零处的 PWM 问题

Guru**** 2587365 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1204292/pwm-issue-at-zero-crossing-in-micro-inverter

器件型号:TMS320F280025

大家好!

我正在开发用于并网应用的太阳能微型逆变器。 该系统由一个交错升压级、一个升压变压器和一个倍压器组成。 在交错升压级、 MOSFET S1、S2、S3和 S4 高频开关、并调制为正弦波。

我在接近过零时遇到了一些 MOSFET 的 PWM 问题。 我将生成一个70kHz (714次计数)的 PWM、并使用500ns 死区、对应于50次计数。 当电网电流控制正在工作时、过零附近的占空比计数会降至50以下、因此我没有得到任何脉冲输出(MOSFET 不会导通)。 在这种情况下、电网电流降至零、因此我的 THD 会增加。 如何纠正此情况? 附加波形。 黄色是电网电流、蓝色是 MOSFET 栅极脉冲。

此致、

Pranav Ananthakumar

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

    您好 Pranav、

    遗憾的是、最近我多次遇到此问题、但我不知道当前实施的设备端权变措施。

    首先、最重要的是、您是否有办法减少数据库、从而完全绕过此问题? 如您所见、相对于 TBPRD 较高的 DB 会出现问题、而减少 DB 会是减少对系统影响的最简单方法。  

    此致、

    Jason Osborn

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

    大家好、Jason、

    减少死区是缓解该问题的最简单方法、但我们在系统中使用的 MOSFET 具有非常高的上升和下降时间、因此我们需要使用上述死区。 如果我们使用更好、更快的 MOSFET、就可以轻松实现更低的死区时间并缓解这一问题。 我想知道是否有人可以通过固件采取任何方法来缓解这个问题? 可能会降低过零附近的开关频率等 我已经尝试过这个,但它不起作用:(

    此致、

    Pranav Ananthakumar

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

    Pranav,

    嗯,好吧,我有另一个想法,需要我再问一个问题。  您当前的动作限定器(AQ)配置是什么? 此外、如果根本使用了 CMPA/B、如何计算 CMPx 值?

    根据您的答案、我们可以调整这些值、以便在不需要使用 DB 子模块的情况下在 A/B 端 ePWM 输出之间引入死区时间。 这将允许我们降低 DBRED/FED 的值。 我相信 TRM 中已经讨论过这个想法、但我不记得其他地方。

    此致、

    Jason Osborn

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

    Jason、

    目前、在递增计数期间动作限定符(AQ)配置已清除、在递减计数期间设置。  

    我的 CMPA 通过(EPWM_TBPRD *调制指数)计算得出。 我的 EPWM_TBPRD 等于70kHz 的计数、即714和调制指数的范围(0至0.6)、该范围来自我的 PR 控制器输出。

    此致、

    Pranav Ananthakumar

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

    Pranav,

    对于 DB、您是否使用 AHC 配置?

    此致、

    Jason Osborn

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

    Jason、

    是的、我使用高电平有效互补配置。

    此致、

    Pranav Ananthakumar

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

    Pranav,

    如果您设置 CMPA =当前 CMPA 计算并同时设置 CMPB = CMPA + 50、则会将 AQ 设置为这样

    AQ (ePWMxA)=在 CMPB 向上时设置;在 CMPB 向下时清除
    AQ (ePWMxB)=在 CMPA 向上时清除;设置为 CMPA 向下

    这样您就得到一个与 AHC 波形相同的波形、尽管可能占空比计算略有不同、如果我没有弄错、我自己也没有机会自行完成这些数学计算。 此外、它根本不需要使用 DB。

    这完全避免了 DB 问题、同时仍提供了一个在边沿之间具有50 TBCLK 延迟的 AHC 波形。 (对于 CMPA/B 处于或超过 PRD 的边沿情况、AQ 操作完全已知、并记录在器件 TRM 的表17-8中)

    这对您有用吗?

    此致、
    Jason Osborn

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

    Jason、

    感谢您的建议。 它有助于消除死区模块以及由此产生的 PWM 之间的死区。 我们将在我们的硬件上对此进行测试、看看它是否有助于缓解我们的问题。

    我还尝试了另一种方法。 由于我的 CMPA 值等于(EPWM_TBPRD *调制指数)、因此如果我保持 CMPA 值、使其最小值为50个计数、会怎么样。 因此、表达式会更改为 CMPA =(50 +(uint16_t)(EPWM_TBPRD *调制指数)。 这也有助于缓解该问题。 我附上了一个相同的波形。

    请求、

    Pranav Ananthakumar

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

    Pranav,

    也能正常工作! 我很高兴看到您找到了解决方案。 如果还有其他需要我帮助的地方、请告诉我。

    此致、
    Jason Osborn