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:ePWM 中每个载波频率的多次采样

Guru**** 2965590 points

Other Parts Discussed in Thread: TMS320F28379D

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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/1651942/tms320f28379d-multiple-sampling-per-carrier-frequency-in-epwm

部件号: TMS320F28379D

 

大家好!

我尝试向逆变器的 IGBT 生成栅极脉冲、为此、我使用 ePWM 模块(在 CCS 中)。

我面临的问题是、我想在每个载波周期对正弦波进行多次采样(例如 (2^n))。 我无法执行此操作、因为每个载波周期仅获得一个样本。 请提供帮助。

我附上了对应于 (n=2) 的波形(来自 PLECS)、这意味着每个载波周期的 (2^2 = 4) 个样本。

如果有任何关于如何使用 ePWM 模块实现这一点的建议、我将不胜感激。

谢谢你。

image.png

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

    尊敬的 Manish:

    TMS320F28379D 通过多种互补机制在单个 PWM 载波周期内支持多个 ADC 样本。 以下是实现此目标的方法:

    方法 1:ADC 触发中继器(过采样模式)

    最直接的方法是使用 ADC 触发中继器模块。 配置中继器的 NSEL 参数以从单个 ePWM 事件生成多个背对背 SOC 触发、例如、NSEL=3 会在每个触发器生成 4 个连续样本。 使用 SPREAD 参数(以 SYSCLK 周期为单位)在整个 PWM 周期内临时分布样本、而不是将它们聚类在一起[1]。

    方法 2:双 ePWM 模块(不同频率)

    使用一个 ePWM 模块作为载波频率、使用 另一个 ePWM 作为整数倍频率、以更高的速率触发 ADC SOC。 例如、ePWM1 处于 2kHz 载波、ePWM2 以 50kHz 的频率触发 ADC、每个载波周期可提供 25 个样本[2][3]。 硬件锁定相位同步可确保模块之间的逐周期对齐[4]。

    方法 3:通过 CMPA/CMPB 事件实现双中断

    要 在每个载波周期获得两个采样点、请同步两个 ePWM 模块并链接它们的 CMPA、CMPB 和 TBPRD 寄存器。 然后配置:

    • 发生 CMPA 事件时的 ePWM1 中断(第一个采样点)
    • CMPB 事件时的 ePWM2 中断(第二个采样点)

    这会从两个模块产生相同的波形、同时在周期中的不同点生成不同的中断[5]:

    1. C2000 Academy—ADC 触发中继器
    2. C2000 Academy - DMA 实验(ePWM ADC 触发)
    3. C2000 Academy - ePWM 模块
    4. TMS320F28379D TRM - EPWM 同步
    5. TI E2E — 在 CMPA 和 CMPB 上生成 EPWM 中断

    此致、
    Harisyam

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

    尊敬的 Harisyam:  

    首先感谢您的答复。 但我的问题与 ADC 采样无关。 我指的是用于生成 PWM 的调制基准。 具体来说、我想在单个载波周期内多次更新正弦基准(例如,如图中所示,每个载波周期更新 4 次)、然后与三角载波进行比较、这与随附的 PLECS 实现类似。

    您能否建议如何使用 ePWM 模块或 F28379D 上的中断/事件来实现这一点?  

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

    尊敬的 Manish:

    您可以将第二个 ePWM 模块配置为第一个 ePWM 模块的四倍频率。 这里、第一个 ePWM 用于生成 PWM。 使用第二个 ePWM 模块生成中断并以比第一个 ePWM 模块更高的频率更新调制信号。

    谢谢您、
    Harisyam

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

    尊敬的 Harisyam:

    感谢您的意见。 我还考虑了使用中断来更新正弦值。 您建议使用第二个 ePWM 模块来实现此目的、这让实现变得更加清晰。

    我会尝试这种方法、并告诉您它是否有效。

    谢谢!

    此致、
    Manish H T

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

    感谢您的更新。

    此致、
    Harisyam

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

    尊敬的 Harisyam:

    如前所述、我使用 ePWM1 生成中断、然后这些中断用于更新 ePWM2 和 ePWM3 的正弦参考值。

    为了验证正弦基准是否根据预期的采样率更新、我运行了一个三相逆变器、并将 输出电压 FFT 与相应的仿真结果进行比较。 我的假设是、如果实现正确、则测得的 FFT 应与每个载波周期相应样本数的仿真 FFT 非常接近。

    我附上了以下两种情况的 FFT 结果(逆变器在空载条件下运行):

    1. 每个载波周期 4 个样本
    2. 每个载波周期 8 个样本

    我观察到、在 每载波周期 8 个样本的 情况下获得的 FFT 与仿真结果相当吻合。 但是、 每载波周期 4 个样本的 情况下的 FFT 与仿真结果有显著不同(我看到一些次谐波应该不存在)。  

    我还附上了相关的代码供参考。

    您能否回顾一下、让我知道在实施过程中是否有任何我可能忽视的问题? 具体而言、我想确认正弦基准是否以预期的速率更新、以及是否有任何 ePWM 配置设置可能影响该行为。

    感谢您的时间和帮助。

    请使用此链接访问图片和代码: https://drive.google.com/drive/folders/1ljcCQW_ms2Wjkh6LAadjdp6AKU9ge9EJ?usp=sharing 

    此致、

    Manish H T

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

    尊敬的 Manish:

    您正在研究什么应用程序?

    为什么需要在开关/载波周期内多次更改调制信号?

    此致、
    Harisyam

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

    尊敬的 Harisyam:

    这是为了研究目的,我正在研究一个分析解决方案,以获得谐波谱。 因此、为此、我需要每个载波周期进行多次采样。 现在、我遇到了上述代码问题、代码中有一些部分创建了这些次谐波、我正在尝试找出并修复它。  

    此致、  

    Manish H T

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

    尊敬的 Manish:

    您还可以通过 DAC 将检测值与中断中的 ADC 检测频率相同、以确认是否根据您的要求进行检测。 您也可以将几个样本存储在数组中、以将其另存为 csv 文件、从而离线检查采样值。 然后、您将能够确定 FFT 中不匹配的根本原因。

    此致、
    Harisyam

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

    尊敬的 Harisyam:

    感谢您的快速答复并抽出时间提供帮助。

    我想提醒您、我已经通过数据记录和使用 DAC 模块(如图所示)验证了调制波更新。 获得的结果确认代码按预期运行。

    根据这些意见、我相信执行工作是正确的。 但是、FFT 问题仍然无法解决(仍会出现次谐波)。

    再次感谢您的支持。

    此致、
    Manish H T

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

    尊敬的 Manish:

    感谢您的更新。

    此致、
    Harisyam

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

    尊敬的 Harisyam:

    希望你们做得好。 我发现了出现在示波器上的次谐波背后的原因。 这是由于缺少一个门控脉冲、因此占空比会发生变化、进而出现次谐波。  

    我在示波器上观察到、如图所示、F28379D Launchpad 在特定载波周期内没有生成门控信号(图像是 LaunchPad 的输出,而不是逆变器,我是在将栅极信号提供给逆变器之前测试栅极信号)。 在同一时刻、每个正弦或调制周期都会发生这种情况。 我认为这是因为载波与正弦波发生在正弦波更新期间(如图所示)、而不是在更新之前或之后。

    我尝试了不同的情况、即每个载波多次更新正弦波(比方说 6 次、10 次或 n 次)、每次在正弦波更新过程中出现载波与正弦相交的这种场景时、都没有门控信号。

    我也附上了我的代码、请您帮助我解决这个问题。

    使用此链接  查看我使用的代码:点击此处查看我使用的 CCS 代码 (我在自述文件中总结了代码)

    (如果上述内容未打开,请使用此链接:drive.google.com/.../1lKnzDKwUWMQErzT-vis0nendSC3Z1mSA   (我已在自述文件中总结了代码)

    下图是正在发生的情况的放大版:我们可以清楚地看到正弦值更新转换之间正在发生交点

    下图是该工具的缩小版本:

    下图展示了它在每个正弦周期的同一时刻发生:

    谢谢您、

    此致、

    Manish H T

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

    尊敬的 Manish:

    您能说您正在查看什么应用程序吗?  

    您在代码中使用的动作限定器配置是什么?  您是 在线路周期内更改 PWM 配置吗?

    如果您没有在两者之间更改动作限定器函数、可以在 DAC 中放入计数器比较的值、观察跳过脉冲的原因。 这应该可以帮助您缩小脉冲跳跃的原因范围。

    此致、
    Harisyam