#模型预测控制MPC仿真 基于MPC的三相T型三电平(t-type converter)逆变器并网仿真模型。 控制目标包括:电网电流,母线电容中性点以及共模电压(共模电流抑制)。 此外,开关信号结合了SVPWM;有入门级详解文档(费用+20)。 注: 仿真波形解读:0-0.2s(实现电网电流和电容电压平衡控制 无漏电流抑制效果 );0.2-0.5s(开启漏电流抑制 该功能的实现会导致电容电压波动增加,但依旧实现中性点平衡控制);后面的时间对电网电流进行改变,控制效果很好)。 matlab版本:2018b
玩过电力电子控制的都知道,三相T型三电平这玩意儿在并网时得同时处理好几个棘手的控制目标。最近用模型预测控制(MPC)折腾了个仿真模型,实测下来发现这货比传统PI控制有意思多了——毕竟能把多个控制目标打包处理,还能直接输出开关信号。
先看系统拓扑(图1):T型结构带来的三电平输出优势明显,但中性点电压波动和共模电压问题也够头疼。MPC的核心在于把控制目标转化为代价函数,这里用了三层加权:
% 代价函数核心代码片段 cost_terms = [lambda1 * (i_grid_error)^2, lambda2 * (v_neutral_error)^2, lambda3 * (v_cm)^2]; total_cost = sum(cost_terms) + lambda4 * switch_penalty;lambda系列参数就是调参工程师的快乐源泉。重点在于电网电流误差项和共模电压项的权重博弈——实测发现当lambda3超过0.7时,漏电流抑制效果显著,但电容电压波动会突然放飞自我(后文波形可见)。
开关信号生成部分结合了SVPWM,这里有个骚操作:把MPC输出的电压矢量直接映射到SVPWM的扇区计算。注意2018b版本得用传统S函数实现,新版的SVPWM模块可能会报错。
% 矢量映射关键逻辑 sector = fix(3*theta/(pi/3)); % 老版本兼容写法 duty_cycles = svpwm_lookup_table(sector, V_ref);仿真波形说人话版解读:
- 前0.2秒:电网电流THD控制在3%以内(图2a),两个母线电容电压差稳定在±5V内(图2b)。但此时共模电压还在撒欢,漏电流跟脱缰野马似的。
- 0.2秒拍下漏电流抑制开关:共模电压立马怂了(图3c),但电容电压波动幅度直接翻倍到±12V。不过中性点平衡控制依然坚挺,证明代价函数里的lambda2立功了。
- 0.5秒后电流指令突变:动态响应时间约2ms(图4d),比隔壁PI控制的案例快了近一倍。这时候所有控制目标同时在线,MPC的多目标协调能力秀得飞起。
调试时掉过的坑:
- 采样周期别低于50us,否则2018b的求解器会抽风
- 代价函数里的开关惩罚项(lambda4)别超过0.3,否则会出现"开关恐惧症"
- 离散化模型时记得用ode23tb求解器,实测比ode45稳
这个模型的实操价值在于,它展示了如何在有限开关频率下(这里设的10kHz)实现多目标平衡。对于想入门MPC的新手,建议先关掉共模电压控制单独调试——毕竟同时处理三个控制变量容易怀疑人生。完整工程文件里还藏着个彩蛋:当电网电压跌落时自动切换控制模式,这个我们下回分解。