降低多个 pwm 输出峰值功率的有效算法?

Efficient algorithm to reduce peak power from multiple pwm output?

我有多个功率 mosfet pwm 控制并连接到一个主电源。 这些 pwm 信号都以相同的频率运行,它们的占空因数以其他方式确定并且可能经常变化。它可以在 0 到 100% 之间变化。 我的 PWM 控制器允许我为每个信号独立选择开启时间和关闭时间。

我正在寻找一种有效的算法来确定每个通道的开启时间,以最大限度地减少从电源汲取的峰值功率。

一个简单的例子:有 10 个 mosfet,每个 mosfet 的占空比为 10%,最佳解决方案是依次打开每个 mosfet。

关于如何解决这个问题有什么想法吗? 谢谢

令脉冲宽度分数(0 和 1 之间)为 p1, ..., pn。设 s0 = 0 和 sn = sn−1 + p n 是前缀和。信号 i 应该在时间 si−1 mod 1 开启并在时间 si mod 1 结束。

这个算法在这个简单的例子上做了你想要的,因为 s0, s1, ..., sn−1, sn = 0, 1/10, ..., 9/10, 0.

举一个不那么简单的例子,假设我们有 10%、20%、30%、40%、50%、60%、70%、80%、90% 的信号。然后脉冲看起来像

1---------1---------
-22--------22-------
---333-------333----
------4444------4444
55555-----55555-----
6----666666----66666
-7777777---7777777--
888888--88888888--88
99999-999999999-9999