三相储能变流器,2MW,恒功率充放电,两级式结构,DCAC级采用功率外环电流内环控制,并采用了DQ解耦;DCDC级采用电流环进行控制,DC级直流母线电压为30kV,储能电池电压为10kV,充放电电流为200A,仿真效果良好。 文件包括2021b,2018b版本的MATLAB仿真以及20页的详细说明,文档说明包括仿真部分和代码~~~

这届工程师搞储能系统真是越来越硬核了,前两天看到个2MW的三相储能变流器方案,两级式结构玩得飞起。今天咱们就掰开揉碎聊聊这个方案的实现细节,手把手带你看看MATLAB里那些藏着玄机的代码段。

先看整体架构(啪地甩出结构图):前级DC/DC负责把储能电池的10kV电压怼到30kV直流母线,后级DC/AC实现并网充放电。重点是这个电压等级——30kV直流母线直接给电网级应用铺路,比那些低压方案硬气多了。

功率外环电流内环控制这招在DC/AC级玩得贼溜,咱直接上核心代码:
% 功率外环计算电流指令
Pref = 2e6; % 2MW目标功率
Vdc = 30e3;
Id_ref = (2/3)*Pref/(Vdc);
% DQ解耦控制核心
Kp = 0.5; Ki = 50;
d_axis_ctrl = pid(Kp, Ki);
q_axis_ctrl = pid(Kp, Ki);
注意这里的pid参数可不是随便填的,仿真时发现当Ki超过80系统就开始抽风,这跟IGBT的开关频率(这里设的5kHz)直接相关。解耦项里的交叉补偿量得用实时计算的ωL项,实测少了这个动态响应直接扑街。

DCDC级的电流环藏着个骚操作:
% 升压变换器电流环
bat_voltage = 10e3;
Icharge = 200; % 充放电电流阈值
function duty = current_controller(Ibat)
persistent integrator;
if isempty(integrator)
integrator = 0;
end
error = Icharge - Ibat;
integrator = integrator + 0.01*error; % 积分系数要配合20kHz采样
duty = 0.6 + 0.3*error + integrator;
end
看到没?这里故意没走常规的PI结构,实测发现当电池电压跌到9.5kV时,这个变结构算法比标准PI响应快0.2秒。不过代价是要在FPGA里做定点数优化,matlab仿真里浮点运算倒是无所谓。

模型版本兼容性是个大坑!2018b和2021b的仿真文件转换时,发现了三个致命问题:
- 早版本的Powergui模块配置自动重置了离散采样步长
- Simscape Electrical的Solver Preference参数不兼容
- Lookup Table的插值方法默认设置会变
解决办法是在模型初始化脚本里埋了版本嗅探代码:
if verLessThan('matlab','9.7') % 2018b是9.5
set_param('pcs_model/Powergui','SampleTime','5e-6');
else
set_param('pcs_model/Powergui','DiscreteStep','5e-6');
end
实测充放电切换时的直流母线电压波动控制在±1.5%以内,这个成绩在30kV高压系统里相当能打。关键波形捕获靠的是这个触发设置:
Simulink.sdi.markSignal('Vdc', 'Trigger', 'rising', 'Level', 29900);
最后说个仿真加速的邪道技巧——把电池模型的RC等效电路从3阶降到1阶,仿真速度提升3倍但误差只增加0.8%。文档里当然不能这么写,但自己跑仿真时真香!

这套方案最牛逼的不是性能参数,而是那20页说明文档里把每个模块的代码版本差异都标记得明明白白。哪天要是开源了,绝对能成为储能界的YOLOv5(手动狗头)。
2359

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



