mmc模块化多电平换流器仿真(整流逆变均有),7电平闭环控制,外环控直流电压,有功,无功均有,已单独加了电容电压平衡和二倍频环流抑制,采用载波移相调制。 可供学习参考。

最近在研究 MMC(模块化多电平换流器),发现它在电力系统领域那可是相当重要的存在。今天就来跟大家分享一下我做的 MMC 模块化多电平换流器仿真,整流逆变都涵盖,而且是 7 电平闭环控制的哦。
整体架构与关键控制环节
MMC 的结构就像一个精心搭建的积木城堡,每个模块都不可或缺。在这次仿真里,外环控制着直流电压,有功和无功功率也都在掌控之中。这就好比给换流器安上了一个聪明的大脑,让它知道该怎么调整自己的"行为"。
电容电压平衡与二倍频环流抑制
为了让这个"城堡"更加稳固,单独添加了电容电压平衡和二倍频环流抑制。电容电压平衡就像是给城堡的每一层都铺上了平整的基石,保证各个电容的电压稳定,不然电压忽高忽低,整个系统可就乱套了。而二倍频环流抑制则像是给城堡周围挖了条护城河,把那些捣乱的二倍频环流阻挡在外。
载波移相调制
采用载波移相调制,这就像是给整个系统找到了一个精准的指挥家。通过载波移相调制,各个子模块的动作被协调得有条不紊,让输出的波形更加完美。
代码实现与分析
下面咱们来看一些关键代码片段,以载波移相调制为例。
python
# 定义载波移相调制相关参数
num_submodules = 3 # 子模块数量,对于7电平可能这里是3
carrier_freq = 1000 # 载波频率
omega = 2 * np.pi * carrier_freq
t = np.linspace(0, 1 / carrier_freq, 1000) # 时间向量
# 生成载波信号
carriers = []
for i in range(num_submodules):
carrier = np.sin(omega * t + i * 2 * np.pi / num_submodules)
carriers.append(carrier)
# 这里简单示意调制波与载波比较生成脉冲
modulation_signal = np.sin(2 * np.pi * 50 * t) # 假设50Hz的调制波
pulses = []
for carrier in carriers:
pulse = np.where(modulation_signal > carrier, 1, 0)
pulses.append(pulse)
在这段代码里,首先我们定义了一些关键参数,像子模块数量,载波频率等。然后通过循环生成了不同相位的载波信号,这里的相位差就是根据载波移相调制的原理来设定的,每个载波之间有一定的相位偏移。接着假设了一个 50Hz 的调制波,通过将调制波和每个载波进行比较,就生成了相应的脉冲信号,这些脉冲信号最终会用来控制子模块的开通和关断,实现我们想要的电压输出波形。
关于闭环控制
外环控制直流电压这块代码相对复杂一些,简单来说,大致思路是这样:
python
# 假设获取到的直流电压测量值
measured_dc_voltage = get_dc_voltage_measurement()
desired_dc_voltage = 1000 # 设定的期望直流电压值
error = desired_dc_voltage - measured_dc_voltage
kp = 0.1 # 比例系数
ki = 0.01 # 积分系数
integral = integral + error * dt
control_signal = kp * error + ki * integral
# 根据这个控制信号去调整相关参数影响换流器输出
这里通过获取测量的直流电压和设定的期望直流电压作差得到误差,然后利用比例积分(PI)控制器,根据比例系数和积分系数计算出控制信号,这个控制信号会去调整换流器的一些参数,使得直流电压朝着我们期望的值靠近,实现闭环控制。

这次的 MMC 模块化多电平换流器仿真研究,从理论到代码实现,都经历了不少探索。希望分享的这些内容能给大家在学习 MMC 相关知识时提供一些参考,一起在电力电子的世界里探索更多奥秘。
