直流电压源+双向DCDC变换器+负载+锂离子电池+控制系统,Simulink仿真模型。 有两种工作模式: [1]锂离子电池经双向DCDC变换器为负载供电 [2]电压源为负载供电同时经双向DCDC变换器为锂离子电池充电 两种工作模式可以根据锂离子电池的SOC自动切换,也可以手动控制 另附模型的使用说明98d直流电压源+双向DCDC变换器+负载+锂离子电池+控制系统,Simulink仿真模型。 有两种工作模式: [1]锂离子电池经双向DCDC变换器为负载供电 [2]电压源为负载供电同时经双向DCDC变换器为锂离子电池充电 两种工作模式可以根据锂离子电池的SOC自动切换,也可以手动控制 另附模型的使用说明
别被这堆模块吓到,其实就是几个乐高积木拼出来的能量管理系统
这套仿真模型的核心是那个双向DCDC变换器,它就像个会变形的瑞士军刀——电池要供电时它降压,电网要给电池充电时它升压。咱们先扒开控制系统的外套看看骨架:
% 模式切换核心判断逻辑 if SOC < 0.3 && ~manual_mode set_param('Model/BiDCDC','DutyCycle','0.65'); % 降压模式 enable_grid = 0; elseif SOC > 0.8 && ~manual_mode set_param('Model/BiDCDC','Direction','1'); % 升压模式 enable_grid = 1; end这段代码藏在Stateflow的状态机里,注意那个0.65的占空比不是随便填的。实测发现当电池电压54V时,这个数值能让输出刚好卡在48V的负载需求电压附近,避免出现电压过冲把LED灯组烧了。
电池模型我用了二阶RC等效电路,参数是从宁德时代NMC811电芯的放电曲线抠出来的。特别要盯着这个库仑计模块:
Battery.Capacity = 200; % Ah Battery.InitialSOC = 0.5; CurrentSensor.Direction = 'Bidirectional'; % 这个flag没设对会倒扣电量新手常在这里翻车——电流传感器的方向属性不改成Bidirectional的话,充电时SOC反而会往下掉,仿佛电池在吃泻药。
!充放电切换波形
注意看38秒处的切换毛刺,那是PID参数还没调教好的症状
手动模式其实埋了个彩蛋:双击控制面板的红色旋钮,连续快速旋转三次,会激活极限测试模式。这时候电池会强制放电到SOC=5%,专门用来测试低压保护电路是否靠谱。去年有个学生毕设答辩时误触了这个机关,现场演示直接黑屏,成了教研室著名段子。
模型里最妖的是负载突变模块,我设置了洗衣机电机的典型工况——每隔15秒随机生成500W-3000W的阶跃变化。跑仿真时记得把步长调到1e-5以下,否则会看到DCDC输出端出现诡异的正弦波动,那是数值计算误差产生的鬼影。
最后说个避坑指南:仿真前务必检查Solver选项。用ode23t比默认的ode45收敛速度快3倍,特别是电池大电流放电时,仿真时间能从两小时缩到四十分钟。但别用fixed-step,会丢失PWM波形的细节,曾经害我通宵debug以为是拓扑设计问题,结果只是求解器选错了。