5电平三相MMC的VSG控制及其MATLAB-Simulink仿真模型:调频调压效果验证

张开发
2026/4/8 19:44:10 15 分钟阅读

分享文章

5电平三相MMC的VSG控制及其MATLAB-Simulink仿真模型:调频调压效果验证
模块化多电平变流器/MMC/的VSG控制/虚拟同步发电机控制/MATLAB–Simulink仿真模型 5电平三相MMC采用VSG控制。 受端接可编辑三相交流源直流侧接无穷大电源提供调频能量。 设置频率波动和电压波动的扰动可以验证VSG控制的调频调压效果最近在搞MMC的VSG控制仿真发现这玩意儿调起来真是酸爽。今天咱们就拿5电平三相MMC开刀用MATLAB-Simulink搭个能抗频率电压波动的VSG系统。先说重点这套系统直流侧直接怼了个理想电源当能量池交流侧接的可编程三相源能随便改参数造故障方便咱们验证VSG的调节能力。先看主电路结构图1。MMC每个桥臂4个子模块上下桥臂各两个电容电压均衡策略直接用的最近电平逼近。重点是这个VSG控制模块——它得模拟同步发电机的机械特性。核心代码部分长这样function [E_ref, theta] VSG_Controller(P_set, Q_set, V_meas, f_meas) persistent J D Kp_V Kq_f; if isempty(J) J 0.2; % 虚拟转动惯量 D 5; % 阻尼系数 Kp_V 0.05; % 电压调节系数 Kq_f 0.8; % 频率调节系数 end % 有功-频率下垂 delta_f (P_set - P_meas)/Kq_f; omega 2*pi*(50 delta_f) - D*(omega - 2*pi*f_meas)/J; % 无功-电压下垂 E_ref V_set (Q_set - Q_meas)*Kp_V; theta cumsum(omega)*Ts; % 相位积分 end这段代码实现了VSG的核心算法J和D这两个参数直接决定系统惯性。J值调太小的话系统响应快但容易震荡D值太大虽然稳定却会导致调节速度变慢建议先按同步发电机典型参数试再微调。仿真里设置了两个狠活儿1秒时给交流源突然加5Hz频率扰动1.5秒时甩20%电压跌落。看波形的时候重点盯住PCC点的电压和频率曲线图2。没VSG的时候系统直接崩了有VSG的情况下频率在0.3秒内拉回50Hz电压恢复时间大概0.5秒——这说明转动惯量参数起作用了。模块化多电平变流器/MMC/的VSG控制/虚拟同步发电机控制/MATLAB–Simulink仿真模型 5电平三相MMC采用VSG控制。 受端接可编辑三相交流源直流侧接无穷大电源提供调频能量。 设置频率波动和电压波动的扰动可以验证VSG控制的调频调压效果子模块电容电压均衡是个容易翻车的地方。这里用了排序法均压代码里有个骚操作把子模块投切状态和电容电压打包成结构体用冒泡排序搞定。虽然算法简单但实测在5电平下完全够用function [SM_States] Balance_SM(SM_Voltages, I_arm) [~, index] sort([SM_Voltages], descend); if I_arm 0 SM_States index(1:ceil(numel(index)/2)); % 上桥臂投入 else SM_States index(end-floor(numel(index)/2)1:end); % 下桥臂投入 end end这个排序逻辑妙在同时考虑了电流方向和电压均衡。实际跑起来电容电压波动控制在±3%以内比那些花里胡哨的预测算法也不差。最后说个坑Simulink的变步长求解器在MMC仿真里容易炸。建议固定步长50us用ode3算法。仿真跑完后别急着关用Workspace里的数据画个三维相图图3能直观看到VSG在功率振荡时的阻尼效果——那些螺旋收敛的轨迹线就是阻尼系数D在发力。这套模型文件我扔GitHub了需要调试的兄弟注意两点1. 别动步长2. 改VSG参数时记得J和D要配对调。下次咱们聊聊怎么把这个VSG控制移植到FPGA上跑实时仿真。

更多文章