基于 Simulink 的级联 H 桥(CHB)七电平逆变器载波移相调制实战教程

目录

🎯 一、 核心原理:为什么是“载波移相”?

拓扑结构

载波移相调制 (PS-SPWM)

🛠️ 二、 Simulink 详细建模步骤

第一步:搭建主功率电路

第二步:设计载波移相发生器

第三步:PWM 比较与逻辑生成

第四步:电压均衡(进阶)

📊 四、 仿真结果分析

💡 五、 进阶优化:最近电平逼近调制 (NLM)

⚠️ 六、 避坑指南


这是一份基于 Simulink 的级联 H 桥(CHB)七电平逆变器载波移相调制实战教程。

在高压大功率应用中,传统的两电平逆变器面临开关管耐压不足和输出谐波大的问题。**级联 H 桥(Cascaded H-Bridge, CHB)通过串联多个低压 H 桥单元来合成高压输出,而载波移相 SPWM(Phase-Shifted SPWM, PS-SPWM)**则是其核心调制技术。

对于七电平逆变器,我们需要3 个独立的 H 桥单元(因为电平数 $N = 2k + 1$,故 $k=3$)。本教程将教你如何利用载波移相技术,让这 3 个单元协同工作,合成出完美的阶梯正弦波。


🎯 一、 核心原理:为什么是“载波移相”?

拓扑结构

单相七电平 CHB 由 3 个独立的 H 桥单元串联而成。每个 H 桥由独立的直流电源供电(例如电池或电容)。

  • 总输出:3 个单元叠加,理论最大输出为 $\pm 3V_{dc}$,加上中间过渡,共形成7 个电平($-3V_{dc}, -2V_{dc}, ..., 0, ..., +3V_{dc}$)。
载波移相调制 (PS-SPWM)

这是 CHB 的精髓。为了让合成的波形更像正弦波,我们不让所有单元同时开关,而是让它们“错峰出行”。

  • 调制波:所有单元共用同一个正弦参考波 $V_{ref}$。
  • 载波:每个单元使用频率相同、幅值相同,但相位依次错开的三角载波。

🛠️ 二、 Simulink 详细建模步骤

第一步:搭建主功率电路

由于有 3 个 H 桥,手动连线比较繁琐,建议使用子系统或循环生成。

  1. H 桥单元
    • 使用Universal Bridge模块,设置 Number of arms 为 2。
    • 复制 3 份,分别命名为Cell 1, Cell 2, Cell 3
  2. 直流电源
    • 给每个 H 桥配置一个独立的DC Voltage Source,设为100V
  3. 串联连接
    • 将 3 个 H 桥的交流输出端(~端口)首尾相连。
    • Cell 1的负端接Cell 2的正端,Cell 2的负端接Cell 3的正端。
    • 总输出电压取自Cell 1正端和Cell 3负端之间。
  4. 负载
    • 连接一个 RLC 负载(例如 $R=10\Omega, L=5mH$)。

⚠️ 注意:务必连接powergui模块,选择Discrete,采样时间设为1e-6s

第二步:设计载波移相发生器

这是本教程的核心。我们需要生成 3 路相位互差 60° 的三角波。

MATLAB Function 代码 (carrier_generator.m):
我们可以用一个 MATLAB Function 模块直接生成 3 路载波信号,避免复杂的 Simulink 连线。

function [tri_1, tri_2, tri_3] = carrier_generator(t, f_carrier) %#codegen % t: 仿真时间 % f_carrier: 载波频率 (例如 2000 Hz) % 周期 T = 1 / f_carrier; % 基础三角波生成 (利用 sawtooth 函数或模运算) % 这里使用模运算模拟三角波: 2 * abs( (t/T) - floor(t/T + 0.5) ) % 归一化到 -1 ~ 1 范围 % Cell 1: 相位 0度 phase_1 = t / T; tri_1 = 2 * abs(phase_1 - floor(phase_1 + 0.5)); % Cell 2: 相位 60度 (即 1/6 周期) % 注意:三角波周期对应 180度电角度还是 360度取决于定义 % 对于 PS-SPWM,通常载波移相角度 = 180 / N_cells % 3个单元,移相 60度。对应时间延迟 T * (60/180) = T/3 ? % 修正:标准三相移相是 180/k。对于三角载波,平移 T/(2*k) ? % 让我们用最通用的公式:相位差 = pi / k (弧度) -> 对应时间 T_sw / (2*k) ? % 其实最简单的理解是:载波频率是 f,周期 T。 % 我们希望三个载波在时间轴上均匀分布。 % 实际上,对于 N 个单元,载波移相角度是 180/N 度(针对三角波的一个半周期而言) % 或者直接理解为时间上的错位: delay_1 = 0; delay_2 = T / (2 * 3); % 60度对应的时间偏移 (假设三角波周期对应180度重复性) delay_3 = 2 * T / (2 * 3); % 更精确的写法:利用 mod 函数构建三角波并加延时 % 这里的逻辑是:生成 0~1 的锯齿,转三角,再移位 arg1 = mod(f_carrier * t, 1); arg2 = mod(f_carrier * t + 1.0/6.0, 1); % 1/6 周期对应 60度 arg3 = mod(f_carrier * t + 2.0/6.0, 1); tri_1 = 2 * abs(arg1 - 0.5) * 2 - 1; % 归一化到 -1~1 tri_2 = 2 * abs(arg2 - 0.5) * 2 - 1; tri_3 = 2 * abs(arg3 - 0.5) * 2 - 1; end

(注:如果觉得代码复杂,也可以用 3 个Repeating Sequence模块,手动设置 Time values 来实现延时)

第三步:PWM 比较与逻辑生成
  1. 调制波
    • 使用Sine Wave模块,频率 50Hz,幅值设为2.5(调制度控制)。
  2. 比较器
    • 使用 3 个Relational Operator模块。
    • 分别将Sine Wavetri_1, tri_2, tri_3进行比较(>)。
    • 输出即为 3 个 H 桥的 PWM 驱动信号。
  3. 驱动分配
    • 将比较器的输出连接到对应 H 桥的g端口。
    • 注意:对于单极性调制或双极性调制,内部逻辑不同。对于简单的 CHB SPWM,通常直接将比较结果作为 H 桥的控制信号(Simulink 的 Universal Bridge 会自动处理互补,或者你需要自己生成互补信号)。
第四步:电压均衡(进阶)

在实际系统中,3 个直流源电压可能会不平衡。但在基础仿真中,只要保证 3 个 DC Source 参数一致即可。


📊 四、 仿真结果分析

设置仿真时间为0.1s,观察以下波形:

观察对象预期波形特征物理意义
各单元输出电压3 路 PWM 波,看起来杂乱无章,脉冲宽度不一。每个单元独立工作,受各自的移相载波控制。
总输出电压 ($V_{out}$)清晰的 7 电平阶梯波。波形呈台阶状逼近正弦。
频谱分析 (FFT)低次谐波(5, 7, 11 次)极小,主要谐波集中在6倍载波频率附近。证明了载波移相的效果:等效开关频率提升了 6 倍。
负载电流非常平滑的正弦波。即使没有大的滤波器,多电平特性也能输出高质量电流。

关键图表
建议使用 Scope 分屏:

  1. 上图:总输出电压(7 电平阶梯波)。
  2. 下图:负载电流(光滑正弦波)。

💡 五、 进阶优化:最近电平逼近调制 (NLM)

当电平数很高(如 11 电平、21 电平)时,SPWM 的效率会变低,此时通常使用最近电平逼近调制(Nearest Level Modulation, NLM)


⚠️ 六、 避坑指南

  1. 直流源隔离
    • CHB 的每个 H 桥必须由独立的直流源供电。千万不要把它们的地连在一起,否则会短路!在 Simscape 中,确保每个DC Voltage Source都是浮地的,或者正确连接各自的参考地。
  2. 载波移相角度
    • 一定要确认移相角度是180°/k而不是 360°/k。对于三角载波,180° 的周期性是关键。如果角度设错,合成波形会出现明显的缺口,THD 会变大。
  3. 求解器设置
    • 由于是多电平切换,系统存在大量不连续点。
    • 务必使用ode23tb (stiff/TR-BDF2)求解器,并适当减小最大步长(如1e-5s),否则波形可能会出现锯齿状震荡。
  4. 死区时间
    • 虽然仿真中可以忽略,但如果要下板子,必须在 PWM 信号中加入死区,防止 H 桥上下管直通。

通过这套教程,你将掌握多电平逆变器的核心技术——如何用“空间换质量”(用更多的器件换取更好的波形),这是通往高压大功率电力电子技术的必经之路。