MMC七电平整流器模型 MATLAB,2019及以下版本 带单相接地故障设置
MMC七电平整流器模型在MATLAB低版本中的搭建与单相接地故障设置
最近在研究电力相关内容,今天就来和大家分享下MMC七电平整流器模型在MATLAB 2019及以下版本中的实现,并且还会加入单相接地故障设置哦。
MMC七电平整流器模型基础认知
MMC(模块化多电平换流器)是高压直流输电领域的关键技术,七电平整流器模型则是其常见的一种表现形式。简单来说,它通过多个子模块的级联,能够产生多电平的输出波形,有效降低谐波含量,提升电能质量。
MATLAB建模准备
在MATLAB 2019及以下版本中,我们可以借助SimPowerSystems(SPS)工具箱来搭建这个模型。如果你的MATLAB没有这个工具箱,那得先安装配置好。
具体建模步骤
- 搭建主电路结构
- 首先创建一个新的Simulink模型文件。在库浏览器中找到SimPowerSystems库,拖入所需的模块。
- 比如三相电源模块,设置其参数,像额定电压、频率等。示例代码如下(以设置三相电源额定线电压10kV,频率50Hz为例):
% 创建三相电源模块
powergui = simscape.powersys.powergui;
vsrc = simscape.powersys.electrical.sources.acVoltageSource('Voltage Magnitude', 10e3/sqrt(3), 'Frequency', 50);
这里代码的意思是,先调用simscape.powersys.powergui模块,这是电力模块库的基础设置模块。然后创建一个交流电压源vsrc,设置其电压幅值为线电压10kV经根号3折算后的相电压幅值,频率为50Hz。
- 接着是MMC子模块部分,在SPS库中找到对应的MMC模块,拖入模型并根据七电平的要求设置子模块数量等参数。
2. 控制策略部分
- 控制策略对于MMC的稳定运行至关重要。一般采用载波移相调制(CPS - SPWM)等策略。以简单的调制波生成代码为例:
% 生成调制波
fs = 1000; % 采样频率
t = 0:1/fs:0.1; % 时间向量
m = 0.8; % 调制比
A = 1; % 载波幅值
fc = 500; % 载波频率
carrier = A*sin(2*pi*fc*t);
modulation = m*sin(2*pi*50*t);
上述代码先设定了采样频率fs,时间向量0到0.1秒,调制比m为0.8,载波幅值A为1,载波频率fc为500Hz。然后生成载波carrier和调制波modulation,用于后续的调制操作。
3. 连接电路与设置参数
将各个模块按照MMC七电平整流器的拓扑结构连接起来,并且仔细设置每个模块的参数,保证模型能够准确模拟实际运行情况。
单相接地故障设置
要设置单相接地故障,可以在电路中合适的位置加入故障模块。比如在三相电源输出端附近,在SPS库中找到“Fault”模块,拖入并连接到电路。设置故障类型为单相接地故障,设置故障起始时间和持续时间等参数。示例代码设置故障在0.05秒开始,持续0.1秒:
% 设置单相接地故障
fault = simscape.powersys.electrical.elements.fault('Fault Type', 'Single - line to ground', 'Fault Resistance', 0.1, 'Fault Inductance', 0.001, 'Fault Start Time', 0.05, 'Fault Duration', 0.1);
这里代码设置了故障类型为单相接地故障,故障电阻0.1欧姆,故障电感0.001亨,故障起始时间0.05秒,持续时间0.1秒。
通过以上步骤,我们就完成了MMC七电平整流器模型在MATLAB 2019及以下版本中的搭建,并加入了单相接地故障设置。后续可以通过运行仿真,观察分析模型在正常和故障情况下的运行特性啦。希望这篇博文对正在研究相关内容的小伙伴有所帮助。
打开Simulink库浏览器,鼠标突然停在Simulink/User-Defined Functions模块组上。咱们今天要搞的MMC七电平整流器模型,核心就在这子模块电容电压平衡控制上。别急着拖拽元件,先把手写函数模块拖到画布上——这玩意儿比现成的PI控制器更灵活。
先看这个核心代码段:
function Vc_avg = calcAvgVoltage(Vc_array)
persistent count;
if isempty(count)
count = 0;
end
Vc_avg = sum(Vc_array)/length(Vc_array) + 0.02*randn();
count = count + 1;
end
这段代码专门处理子模块电容电压的实时平均值计算。注意到那个0.02*randn()了吗?这是特意加的白噪声模拟实际传感器误差,防止仿真结果过于理想化。当子模块数量超过20个时,不加这个会导致环流抑制控制器提前进入死区。
接地故障设置有个坑:别用Simulink自带的接地模块!直接在交流电源中性点串联一个时变电阻:
R_fault = 10*(1 - exp(-10*(t-0.5))) + 0.001;
当仿真时间到0.5秒时,这个电阻会从10.001Ω指数衰减到0.001Ω,模拟电弧接地的动态过程。用示波器抓取A相上桥臂电流,能看到明显的双频波动特征——这时候锁相环必须切到正序分量跟踪模式。
调制波生成部分建议手写SVPWM算法。注意七电平的矢量分布是蜂窝状结构,这里用极坐标映射比直角坐标系更省资源:
theta = atan2(v_alpha, v_beta);
sector = floor(theta/(pi/3)) + 1;
radius = hypot(v_alpha, v_beta)/Vdc*2;
当检测到接地故障时,要动态调整调制比限制在0.85以下,防止过调制引发二次故障。这时候在MATLAB工作区实时修改变量值比用Signal Builder更靠谱。
最后提醒:仿真步长必须设为50ns级!用变步长求解器的话,在电容预充电阶段可能会跳过关键瞬态过程。建议用ode23tb求解器,绝对误差容限设到1e-6,这样能捕捉到子模块投切时的纳米秒级电压毛刺。
MMC七电平整流器模型
MATLAB,2019及以下版本
带单相接地故障设置





1211

被折叠的 条评论
为什么被折叠?



